Fix bitrate tests

This commit is contained in:
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) await waitUntilLivePublishedOnAllServers(servers, liveVideoId)
const bitrateLimits = { const maxBitrateLimits = {
720: 5000 * 1000, // 60FPS 720: 6500 * 1000, // 60FPS
360: 1100 * 1000, 360: 1250 * 1000,
240: 600 * 1000 240: 700 * 1000
}
const minBitrateLimits = {
720: 5500 * 1000,
360: 1000 * 1000,
240: 550 * 1000
} }
for (const server of servers) { for (const server of servers) {
@ -560,7 +566,8 @@ describe('Test live', function () {
const probe = await ffprobePromise(segmentPath) const probe = await ffprobePromise(segmentPath)
const videoStream = await getVideoStreamFromFile(segmentPath, probe) 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.torrentUrl, HttpStatusCode.OK_200)
await makeRawRequest(file.fileUrl, HttpStatusCode.OK_200) await makeRawRequest(file.fileUrl, HttpStatusCode.OK_200)

View File

@ -11,7 +11,6 @@ import {
doubleFollow, doubleFollow,
generateHighBitrateVideo, generateHighBitrateVideo,
generateVideoWithFramerate, generateVideoWithFramerate,
getFileSize,
makeGetRequest, makeGetRequest,
PeerTubeServer, PeerTubeServer,
setAccessTokensToServers, setAccessTokensToServers,
@ -617,8 +616,8 @@ describe('Test video transcoding', function () {
const file = video.files.find(f => f.resolution.id === r) const file = video.files.find(f => f.resolution.id === r)
const path = servers[1].servers.buildWebTorrentFilePath(file.fileUrl) const path = servers[1].servers.buildWebTorrentFilePath(file.fileUrl)
const size = await getFileSize(path) const bitrate = await getVideoFileBitrate(path)
expect(size, `${path} not below ${60_000}`).to.be.below(60_000) 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 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 () { it('Should print the correct command for each resolution', async function () {
const fixturePath = buildAbsoluteFixturePath('video_short.webm') const fixturePath = buildAbsoluteFixturePath('video_short.webm')
@ -21,7 +21,7 @@ describe('Test create transcoding jobs', function () {
VideoResolution.H_1080P VideoResolution.H_1080P
]) { ]) {
const command = await CLICommand.exec(`npm run print-transcode-command -- ${fixturePath} -r ${resolution}`) 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(`-vf scale=w=-2:h=${resolution}`)
expect(command).to.includes(`-y -acodec aac -vcodec libx264`) expect(command).to.includes(`-y -acodec aac -vcodec libx264`)

View File

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