1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-03 17:59:37 +02:00

Move b frame strategy in transcoding profile

We may use a too high value for some encoders and it allows to specify
custom values/strategy
This commit is contained in:
Chocobozzz 2021-12-14 10:39:52 +01:00
parent 9234110650
commit 14857212f1
No known key found for this signature in database
GPG key ID: 583A612D890159BE
2 changed files with 26 additions and 19 deletions

View file

@ -287,8 +287,8 @@ async function getLiveTranscodingCommand (options: {
addDefaultEncoderParams({ command, encoder: builderResult.encoder, fps: resolutionFPS, streamNum: i })
logger.debug(
'Apply ffmpeg live video params from %s using %s profile.', builderResult.encoder, profile, builderResult,
{ fps: resolutionFPS, resolution, ...lTags() }
'Apply ffmpeg live video params from %s using %s profile.', builderResult.encoder, profile,
{ builderResult, fps: resolutionFPS, resolution, ...lTags() }
)
command.outputOption(`${buildStreamSuffix('-c:v', i)} ${builderResult.encoder}`)
@ -314,8 +314,8 @@ async function getLiveTranscodingCommand (options: {
addDefaultEncoderParams({ command, encoder: builderResult.encoder, fps: resolutionFPS, streamNum: i })
logger.debug(
'Apply ffmpeg live audio params from %s using %s profile.', builderResult.encoder, profile, builderResult,
{ fps: resolutionFPS, resolution, ...lTags() }
'Apply ffmpeg live audio params from %s using %s profile.', builderResult.encoder, profile,
{ builderResult, fps: resolutionFPS, resolution, ...lTags() }
)
command.outputOption(`${buildStreamSuffix('-c:a', i)} ${builderResult.encoder}`)
@ -368,10 +368,6 @@ function addDefaultEncoderGlobalParams (options: {
command.outputOption('-max_muxing_queue_size 1024')
// strip all metadata
.outputOption('-map_metadata -1')
// NOTE: b-strategy 1 - heuristic algorithm, 16 is optimal B-frames for it
.outputOption('-b_strategy 1')
// NOTE: Why 16: https://github.com/Chocobozzz/PeerTube/pull/774. b-strategy 2 -> B-frames<16
.outputOption('-bf 16')
// allows import of source material with incompatible pixel formats (e.g. MJPEG video)
.outputOption('-pix_fmt yuv420p')
}
@ -627,8 +623,8 @@ async function presetVideo (options: {
logger.debug(
'Apply ffmpeg params from %s for %s stream of input %s using %s profile.',
builderResult.encoder, streamType, input, profile, builderResult,
{ resolution, fps, ...lTags() }
builderResult.encoder, streamType, input, profile,
{ builderResult, resolution, fps, ...lTags() }
)
if (streamType === 'video') {
@ -734,7 +730,7 @@ async function runCommand (options: {
command.on('start', cmdline => { shellCommand = cmdline })
command.on('error', (err, stdout, stderr) => {
if (silent !== true) logger.error('Error in ffmpeg.', { stdout, stderr, ...lTags() })
if (silent !== true) logger.error('Error in ffmpeg.', { stdout, stderr, shellCommand, ...lTags() })
rej(err)
})