X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Ftranscoding%2Fdefault-transcoding-profiles.ts;h=f4771881926cf5a6c963106ff9c72b7ce691a7d9;hb=508c1b1e9f3b26752a961e945b7fa59b72b30827;hp=ba98a11ca3b47c5142f3a77f5985a7967c9c0ae3;hpb=28dca0a2211524bbf3ad17666c607eb6325763b8;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/transcoding/default-transcoding-profiles.ts b/server/lib/transcoding/default-transcoding-profiles.ts index ba98a11ca..f47718819 100644 --- a/server/lib/transcoding/default-transcoding-profiles.ts +++ b/server/lib/transcoding/default-transcoding-profiles.ts @@ -49,7 +49,7 @@ const defaultX264LiveOptionsBuilder: EncoderOptionsBuilder = (options: EncoderOp return { outputOptions: [ - ...getCommonOutputOptions(targetBitrate), + ...getCommonOutputOptions(targetBitrate, streamNum), `${buildStreamSuffix('-r:v', streamNum)} ${fps}`, `${buildStreamSuffix('-b:v', streamNum)} ${targetBitrate}` @@ -76,11 +76,14 @@ const defaultAACOptionsBuilder: EncoderOptionsBuilder = async ({ input, streamNu logger.debug('Calculating audio bitrate of %s by AAC encoder.', input, { bitrate: parsedAudio.bitrate, audioCodecName }) + // Force stereo as it causes some issues with HLS playback in Chrome + const base = [ '-channel_layout', 'stereo' ] + if (bitrate !== -1) { - return { outputOptions: [ buildStreamSuffix('-b:a', streamNum), bitrate + 'k' ] } + return { outputOptions: base.concat([ buildStreamSuffix('-b:a', streamNum), bitrate + 'k' ]) } } - return { outputOptions: [ ] } + return { outputOptions: base } } const defaultLibFDKAACVODOptionsBuilder: EncoderOptionsBuilder = ({ streamNum }) => { @@ -271,11 +274,11 @@ function capBitrate (inputBitrate: number, targetBitrate: number) { return Math.min(targetBitrate, inputBitrateWithMargin) } -function getCommonOutputOptions (targetBitrate: number) { +function getCommonOutputOptions (targetBitrate: number, streamNum?: number) { return [ `-preset veryfast`, - `-maxrate ${targetBitrate}`, - `-bufsize ${targetBitrate * 2}`, + `${buildStreamSuffix('-maxrate:v', streamNum)} ${targetBitrate}`, + `${buildStreamSuffix('-bufsize:v', streamNum)} ${targetBitrate * 2}`, // NOTE: b-strategy 1 - heuristic algorithm, 16 is optimal B-frames for it `-b_strategy 1`,