I am looking for a way to create CBR TS file from a high bitrate MXF input file. I have tried to use ffmpeg, but apparently it doesn't do a good job of creating CBR output file so right now I am a bit clueless what I can use. I have tried to use:

ffmpeg -i input.mxf -copyts -c copy -muxrate 200M -f mpegts output.ts

I only want to add some stuffing. I have also tried to transcode the video with the command:

ffmpeg -i input.mxf -vcodec libx264 -b:v 150M -minrate:v 150M -maxrate:v 150M -bufsize:v 140M -acodec mp2 -ac 2 -b:a 192k -f mpegts output.ts

but it didn't work out either. I want the output to be completely flat. This could be done by setting the muxrate to a much higher value or by achieving completely CBR video bitrate. The ffmpeg with which I have tried is 3.2.4.


I found a way to achieve rather nice looking and smooth output CBR with 10-15% of stuffing. Unfortunately it requires transcoding of the original file:

$ffmpeg -i input.mxf \
-c:v libx264 \
-x264opts nal-hrd=cbr \
-b:v 30M -minrate:v 30M -maxrate:v 30M -muxrate 35M -bufsize:v 25M \
-acodec aac -ac 2 -b:a 128k \
-f mpegts output.ts

This command will create completely CBR TS from an input file. Here it is important the video bitrate (b:v) to be equal to the video maximal and minimal video bitrate, the muxrate has to be 10-15% higher than the set video bitrate including the audio bitrate and the buffsize to be around 70% of the video bitrate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.