Fix bitrate tests

pull/4626/head
Chocobozzz 2021-10-12 09:18:54 +02:00
parent 41085b1583
commit 9f430a53be
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 17 additions and 11 deletions

View File

@ -517,10 +517,16 @@ describe('Test live', function () {
await waitUntilLivePublishedOnAllServers(servers, liveVideoId)
const bitrateLimits = {
720: 5000 * 1000, // 60FPS
360: 1100 * 1000,
240: 600 * 1000
const maxBitrateLimits = {
720: 6500 * 1000, // 60FPS
360: 1250 * 1000,
240: 700 * 1000
}
const minBitrateLimits = {
720: 5500 * 1000,
360: 1000 * 1000,
240: 550 * 1000
}
for (const server of servers) {
@ -560,7 +566,8 @@ describe('Test live', function () {
const probe = await ffprobePromise(segmentPath)
const videoStream = await getVideoStreamFromFile(segmentPath, probe)
expect(probe.format.bit_rate).to.be.below(bitrateLimits[videoStream.height])
expect(probe.format.bit_rate).to.be.below(maxBitrateLimits[videoStream.height])
expect(probe.format.bit_rate).to.be.at.least(minBitrateLimits[videoStream.height])
await makeRawRequest(file.torrentUrl, HttpStatusCode.OK_200)
await makeRawRequest(file.fileUrl, HttpStatusCode.OK_200)

View File

@ -11,7 +11,6 @@ import {
doubleFollow,
generateHighBitrateVideo,
generateVideoWithFramerate,
getFileSize,
makeGetRequest,
PeerTubeServer,
setAccessTokensToServers,
@ -617,8 +616,8 @@ describe('Test video transcoding', function () {
const file = video.files.find(f => f.resolution.id === r)
const path = servers[1].servers.buildWebTorrentFilePath(file.fileUrl)
const size = await getFileSize(path)
expect(size, `${path} not below ${60_000}`).to.be.below(60_000)
const bitrate = await getVideoFileBitrate(path)
expect(bitrate, `${path} not below ${60_000}`).to.be.below(60_000)
}
})
})

View File

@ -9,7 +9,7 @@ import { VideoResolution } from '../../../shared/models/videos'
const expect = chai.expect
describe('Test create transcoding jobs', function () {
describe('Test print transcode jobs', function () {
it('Should print the correct command for each resolution', async function () {
const fixturePath = buildAbsoluteFixturePath('video_short.webm')
@ -21,7 +21,7 @@ describe('Test create transcoding jobs', function () {
VideoResolution.H_1080P
]) {
const command = await CLICommand.exec(`npm run print-transcode-command -- ${fixturePath} -r ${resolution}`)
const targetBitrate = Math.min(getMaxBitrate({ resolution, fps, ratio: 16 / 9 }), bitrate)
const targetBitrate = Math.min(getMaxBitrate({ resolution, fps, ratio: 16 / 9 }), bitrate + (bitrate * 0.3))
expect(command).to.includes(`-vf scale=w=-2:h=${resolution}`)
expect(command).to.includes(`-y -acodec aac -vcodec libx264`)

View File

@ -78,7 +78,7 @@ function calculateBitrate (options: {
for (const toTestResolution of resolutionsOrder) {
if (toTestResolution <= resolution) {
return resolution * resolution * ratio * fps * bitPerPixel[toTestResolution]
return Math.floor(resolution * resolution * ratio * fps * bitPerPixel[toTestResolution])
}
}