diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index f88c59f0d..817d9faf2 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts @@ -486,7 +486,9 @@ describe('Test video transcoding', function () { '360p': true, '480p': true, '720p': true, - '1080p': true + '1080p': true, + '1440p': true, + '2160p': true }, webtorrent: { enabled: true }, hls: { enabled: true } @@ -567,6 +569,34 @@ describe('Test video transcoding', function () { } }) + it('Should transcode a 4k video', async function () { + this.timeout(200000) + + const videoAttributes = { + name: '4k video', + fixture: 'video_short_4k.mp4' + } + + const resUpload = await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) + const videoUUID = resUpload.body.video.uuid + + await waitJobs(servers) + + const resolutions = [ 240, 360, 480, 720, 1080, 1440, 2160 ] + + for (const server of servers) { + const res = await getVideo(server.url, videoUUID) + const videoDetails: VideoDetails = res.body + + expect(videoDetails.files).to.have.lengthOf(resolutions.length) + + for (const r of resolutions) { + expect(videoDetails.files.find(f => f.resolution.id === r)).to.not.be.undefined + expect(videoDetails.streamingPlaylists[0].files.find(f => f.resolution.id === r)).to.not.be.undefined + } + } + }) + after(async function () { await cleanupTests(servers) }) diff --git a/server/tests/fixtures/video_short_4k.mp4 b/server/tests/fixtures/video_short_4k.mp4 new file mode 100644 index 000000000..e17e03e6f Binary files /dev/null and b/server/tests/fixtures/video_short_4k.mp4 differ