X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fvideos%2Fvideo-transcoder.ts;h=85795d2edac11472165527223ddb85ff6a55cda0;hb=0b2f03d3712f438f67eccf86b67acd047284f9b4;hp=0ce5197eaf7f03ba2d99acfd3de89cb846272b1f;hpb=71e318b4fe66175d03c7c82357d60062eb68af81;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index 0ce5197ea..85795d2ed 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts @@ -18,7 +18,8 @@ import { ServerInfo, setAccessTokensToServers, uploadVideo, - webtorrentAdd + webtorrentAdd, + generateHighBitrateVideo } from '../../utils' import { join } from 'path' import { waitJobs } from '../../utils/server/jobs' @@ -123,7 +124,7 @@ describe('Test video transcoding', function () { expect(videoDetails.files).to.have.lengthOf(4) const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4') - const probe = await audio.get(ffmpeg, path) + const probe = await audio.get(path) if (probe.audioStream) { expect(probe.audioStream[ 'codec_name' ]).to.be.equal('aac') @@ -154,7 +155,7 @@ describe('Test video transcoding', function () { expect(videoDetails.files).to.have.lengthOf(4) const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4') - const probe = await audio.get(ffmpeg, path) + const probe = await audio.get(path) expect(probe).to.not.have.property('audioStream') } }) @@ -179,9 +180,9 @@ describe('Test video transcoding', function () { expect(videoDetails.files).to.have.lengthOf(4) const fixturePath = buildAbsoluteFixturePath(videoAttributes.fixture) - const fixtureVideoProbe = await audio.get(ffmpeg, fixturePath) + const fixtureVideoProbe = await audio.get(fixturePath) const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4') - const videoProbe = await audio.get(ffmpeg, path) + const videoProbe = await audio.get(path) if (videoProbe.audioStream && fixtureVideoProbe.audioStream) { const toOmit = [ 'max_bit_rate', 'duration', 'duration_ts', 'nb_frames', 'start_time', 'start_pts' ] expect(omit(videoProbe.audioStream, toOmit)).to.be.deep.equal(omit(fixtureVideoProbe.audioStream, toOmit)) @@ -283,29 +284,13 @@ describe('Test video transcoding', function () { } }) - const tempFixturePath = buildAbsoluteFixturePath('video_high_bitrate_1080p.mp4', true) it('Should respect maximum bitrate values', async function () { this.timeout(160000) + let tempFixturePath: string + { - const exists = await pathExists(tempFixturePath) - if (!exists) { - - // Generate a random, high bitrate video on the fly, so we don't have to include - // a large file in the repo. The video needs to have a certain minimum length so - // that FFmpeg properly applies bitrate limits. - // https://stackoverflow.com/a/15795112 - await new Promise(async (res, rej) => { - ffmpeg() - .outputOptions([ '-f rawvideo', '-video_size 1920x1080', '-i /dev/urandom' ]) - .outputOptions([ '-ac 2', '-f s16le', '-i /dev/urandom', '-t 10' ]) - .outputOptions([ '-maxrate 10M', '-bufsize 10M' ]) - .output(tempFixturePath) - .on('error', rej) - .on('end', res) - .run() - }) - } + tempFixturePath = await generateHighBitrateVideo() const bitrate = await getVideoFileBitrate(tempFixturePath) expect(bitrate).to.be.above(getMaxBitrate(VideoResolution.H_1080P, 60, VIDEO_TRANSCODING_FPS))