mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
| /* 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(`-vf scale=w=-2:h=${resolution}`)
 | |
|       expect(command).to.includes(`-y -acodec aac -vcodec libx264`)
 | |
|       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}`)
 | |
|     }
 | |
|   })
 | |
| })
 |