Linux

從 MXF 文件創建 CBR TS 文件

  • September 4, 2017

我正在尋找一種從高比特率 MXF 輸入文件創建 CBR TS 文件的方法。我曾嘗試使用 ffmpeg,但顯然它在創建 CBR 輸出文件方面做得不好,所以現在我對我可以使用什麼一無所知。我曾嘗試使用:

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

我只想添加一些餡料。我還嘗試使用以下命令對影片進行轉碼:

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

但它也沒有成功。我希望輸出完全平坦。這可以通過將 muxrate 設置為更高的值或通過實現完全 CBR 影片比特率來完成。我試過的ffmpeg是3.2.4。

我找到了一種方法,可以通過 10-15% 的填充來實現相當漂亮和平滑的輸出 CBR。不幸的是,它需要對原始文件進行轉碼:

$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

此命令將從輸入文件創建完整的 CBR TS。這裡重要的是影片比特率 (b:v) 等於影片最大和最小影片比特率,muxrate 必須比設置的影片比特率高 10-15%,包括音頻比特率和 buffsize 大約為 70影片比特率的 %。

引用自:https://unix.stackexchange.com/questions/390195