我正嘗試使用ffmpeg將源VBR SPTS MPEG-2 TS文件轉換爲CBR。我使用的代碼如下:ffmpeg VBR - > CBR轉換和MPEG-2 TS視頻流的流式傳輸
#!/bin/bash
pkill ffmpeg
ffmpeg \
-re -i source.ts -c copy \
-muxrate 18000K \
-f mpegts \
udp://destination_ip:1234?pkt_size=1316
源VPID比特率爲〜10Mbps,APID爲296Kbps。所以根據我的理解,這個代碼應該提供18Mbps的CBR,其中所有PID的複用率和比特率之間的差值用空包填充。
問題是,輸出遠非完美。整體比特率最好是半CBR。它的範圍在12Mbps和15Mbps之間,我看到很多PCR準確度和PCR重複錯誤以及VPID和APID上的CC錯誤。
嗯,我的ffmpeg版本是2.8.11-0ubuntu0.16.04.1。明天我可以嘗試從源代碼安裝最新版本。但是在我目前的版本中,我沒有任何填充,並且比特率在很大程度上波動。儘管我已經使用tsplay獲得了更好的結果。並且流式傳輸相同的TS文件實際上會產生更少的PCR錯誤。 –
@GeorgеStoyanov如果你想快速檢查最新的沒有編譯嘗試最近[靜態構建](https://johnvansickle.com/ffmpeg/)。 – LordNeckbeard
@GeorgеStoyanov如果您想要實現真正的H.264 CBR而不是插入NULL數據包,還有另一種方法。 – aergistal