diff options
Diffstat (limited to 'server/tests')
-rw-r--r-- | server/tests/api/videos/video-transcoder.ts | 70 |
1 files changed, 33 insertions, 37 deletions
diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts index ce0dd14d5..13b3530b1 100644 --- a/server/tests/api/videos/video-transcoder.ts +++ b/server/tests/api/videos/video-transcoder.ts | |||
@@ -27,13 +27,14 @@ import { | |||
27 | root, | 27 | root, |
28 | ServerInfo, | 28 | ServerInfo, |
29 | setAccessTokensToServers, | 29 | setAccessTokensToServers, |
30 | uploadVideo, | 30 | uploadVideo, uploadVideoAndGetId, |
31 | waitJobs, | 31 | waitJobs, |
32 | webtorrentAdd | 32 | webtorrentAdd |
33 | } from '../../../../shared/extra-utils' | 33 | } from '../../../../shared/extra-utils' |
34 | import { join } from 'path' | 34 | import { join } from 'path' |
35 | import { VIDEO_TRANSCODING_FPS } from '../../../../server/initializers/constants' | 35 | import { VIDEO_TRANSCODING_FPS } from '../../../../server/initializers/constants' |
36 | import { FfprobeData } from 'fluent-ffmpeg' | 36 | import { FfprobeData } from 'fluent-ffmpeg' |
37 | import { VideoFileMetadata } from '@shared/models/videos/video-file-metadata' | ||
37 | 38 | ||
38 | const expect = chai.expect | 39 | const expect = chai.expect |
39 | 40 | ||
@@ -470,61 +471,56 @@ describe('Test video transcoding', function () { | |||
470 | it('Should provide valid ffprobe data', async function () { | 471 | it('Should provide valid ffprobe data', async function () { |
471 | this.timeout(160000) | 472 | this.timeout(160000) |
472 | 473 | ||
473 | const videoAttributes = { | 474 | const videoUUID = (await uploadVideoAndGetId({ server: servers[1], videoName: 'ffprobe data' })).uuid |
474 | name: 'my super name for server 1', | ||
475 | description: 'my super description for server 1', | ||
476 | fixture: 'video_short.webm' | ||
477 | } | ||
478 | await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes) | ||
479 | |||
480 | await waitJobs(servers) | 475 | await waitJobs(servers) |
481 | 476 | ||
482 | const res = await getVideosList(servers[1].url) | 477 | { |
478 | const path = join(root(), 'test' + servers[1].internalServerNumber, 'videos', videoUUID + '-240.mp4') | ||
479 | const metadata = await getMetadataFromFile<VideoFileMetadata>(path) | ||
483 | 480 | ||
484 | const videoOnOrigin = res.body.data.find(v => v.name === videoAttributes.name) | 481 | // expected format properties |
485 | const res2 = await getVideo(servers[1].url, videoOnOrigin.id) | 482 | for (const p of [ |
486 | const videoOnOriginDetails: VideoDetails = res2.body | 483 | 'tags.encoder', |
484 | 'format_long_name', | ||
485 | 'size', | ||
486 | 'bit_rate' | ||
487 | ]) { | ||
488 | expect(metadata.format).to.have.nested.property(p) | ||
489 | } | ||
487 | 490 | ||
488 | { | 491 | // expected stream properties |
489 | const path = join(root(), 'test' + servers[1].internalServerNumber, 'videos', videoOnOrigin.uuid + '-240.mp4') | ||
490 | const metadata = await getMetadataFromFile(path) | ||
491 | for (const p of [ | 492 | for (const p of [ |
492 | // expected format properties | 493 | 'codec_long_name', |
493 | 'format.encoder', | 494 | 'profile', |
494 | 'format.format_long_name', | 495 | 'width', |
495 | 'format.size', | 496 | 'height', |
496 | 'format.bit_rate', | 497 | 'display_aspect_ratio', |
497 | // expected stream properties | 498 | 'avg_frame_rate', |
498 | 'stream[0].codec_long_name', | 499 | 'pix_fmt' |
499 | 'stream[0].profile', | ||
500 | 'stream[0].width', | ||
501 | 'stream[0].height', | ||
502 | 'stream[0].display_aspect_ratio', | ||
503 | 'stream[0].avg_frame_rate', | ||
504 | 'stream[0].pix_fmt' | ||
505 | ]) { | 500 | ]) { |
506 | expect(metadata).to.have.nested.property(p) | 501 | expect(metadata.streams[0]).to.have.nested.property(p) |
507 | } | 502 | } |
503 | |||
508 | expect(metadata).to.not.have.nested.property('format.filename') | 504 | expect(metadata).to.not.have.nested.property('format.filename') |
509 | } | 505 | } |
510 | 506 | ||
511 | for (const server of servers) { | 507 | for (const server of servers) { |
512 | const res = await getVideosList(server.url) | 508 | const res2 = await getVideo(server.url, videoUUID) |
513 | 509 | const videoDetails: VideoDetails = res2.body | |
514 | const video = res.body.data.find(v => v.name === videoAttributes.name) | ||
515 | const res2 = await getVideo(server.url, video.id) | ||
516 | const videoDetails = res2.body | ||
517 | 510 | ||
518 | const videoFiles = videoDetails.files | 511 | const videoFiles = videoDetails.files |
519 | for (const [ index, file ] of videoFiles.entries()) { | 512 | .concat(videoDetails.streamingPlaylists[0].files) |
513 | expect(videoFiles).to.have.lengthOf(8) | ||
514 | |||
515 | for (const file of videoFiles) { | ||
520 | expect(file.metadata).to.be.undefined | 516 | expect(file.metadata).to.be.undefined |
517 | expect(file.metadataUrl).to.exist | ||
521 | expect(file.metadataUrl).to.contain(servers[1].url) | 518 | expect(file.metadataUrl).to.contain(servers[1].url) |
522 | expect(file.metadataUrl).to.contain(videoOnOrigin.uuid) | 519 | expect(file.metadataUrl).to.contain(videoUUID) |
523 | 520 | ||
524 | const res3 = await getVideoFileMetadataUrl(file.metadataUrl) | 521 | const res3 = await getVideoFileMetadataUrl(file.metadataUrl) |
525 | const metadata: FfprobeData = res3.body | 522 | const metadata: FfprobeData = res3.body |
526 | expect(metadata).to.have.nested.property('format.size') | 523 | expect(metadata).to.have.nested.property('format.size') |
527 | expect(metadata.format.size).to.equal(videoOnOriginDetails.files[index].metadata.format.size) | ||
528 | } | 524 | } |
529 | } | 525 | } |
530 | }) | 526 | }) |