Linux
從 MXF 文件創建 CBR TS 文件
我正在尋找一種從高比特率 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影片比特率的 %。