add test for script printing command
This commit is contained in:
parent
0984960345
commit
7185dab3ff
2 changed files with 37 additions and 0 deletions
|
@ -4,6 +4,7 @@ import './create-transcoding-job'
|
||||||
import './optimize-old-videos'
|
import './optimize-old-videos'
|
||||||
import './peertube'
|
import './peertube'
|
||||||
import './plugins'
|
import './plugins'
|
||||||
|
import './print-transcode-command'
|
||||||
import './prune-storage'
|
import './prune-storage'
|
||||||
import './reset-password'
|
import './reset-password'
|
||||||
import './update-host'
|
import './update-host'
|
||||||
|
|
36
server/tests/cli/print-transcode-command.ts
Normal file
36
server/tests/cli/print-transcode-command.ts
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
|
||||||
|
|
||||||
|
import 'mocha'
|
||||||
|
import * as chai from 'chai'
|
||||||
|
import { execCLI } from '../../../shared/extra-utils'
|
||||||
|
import { getTargetBitrate, VideoResolution } from '../../../shared/models/videos'
|
||||||
|
import { VIDEO_TRANSCODING_FPS } from '../../initializers/constants'
|
||||||
|
import { getVideoFileBitrate, getVideoFileFPS } from '@server/helpers/ffprobe-utils'
|
||||||
|
|
||||||
|
const expect = chai.expect
|
||||||
|
|
||||||
|
describe('Test create transcoding jobs', function () {
|
||||||
|
it('Should print the correct command for each resolution', async function () {
|
||||||
|
const fixturePath = 'server/tests/fixtures/video_short.webm'
|
||||||
|
const fps = await getVideoFileFPS(fixturePath)
|
||||||
|
const bitrate = await getVideoFileBitrate(fixturePath)
|
||||||
|
|
||||||
|
for (const resolution of [
|
||||||
|
VideoResolution.H_720P,
|
||||||
|
VideoResolution.H_1080P
|
||||||
|
]) {
|
||||||
|
const command = await execCLI(`npm run print-transcode-command -- ${fixturePath} -r ${resolution}`)
|
||||||
|
const targetBitrate = Math.min(getTargetBitrate(resolution, fps, VIDEO_TRANSCODING_FPS), bitrate)
|
||||||
|
|
||||||
|
expect(command).to.includes(`-y -acodec aac -vcodec libx264 -filter:v scale=w=trunc(oh*a/2)*2:h=${resolution}`)
|
||||||
|
expect(command).to.includes('-f mp4')
|
||||||
|
expect(command).to.includes('-movflags faststart')
|
||||||
|
expect(command).to.includes('-b:a 256k')
|
||||||
|
expect(command).to.includes('-r 25')
|
||||||
|
expect(command).to.includes('-level:v 3.1')
|
||||||
|
expect(command).to.includes('-g:v 50')
|
||||||
|
expect(command).to.includes(`-maxrate ${targetBitrate}`)
|
||||||
|
expect(command).to.includes(`-bufsize ${targetBitrate * 2}`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in a new issue