如何保證ffmpeg轉碼速度高於1x

如何保證ffmpeg轉碼速度高於1x

我正在嘗試使用 hls 串流電視。我的設定是 ffmpeg 和 nginx(帶有用於 hls 流的 nginx-tx 模組)。我使用下面的命令將視訊縮放到 320 的高度,並使用預設值銳化它。我正在使用下面的命令。

ffmpeg -report -f mpegts -i <input> -vf "scale=trunc(oh*a/2)*2:320,unsharp=lx=3:ly=3:la=1.0" -vcodec libx264 -crf 24 -preset medium -acodec aac -b:a 50k -f mpegts <output>

問題是這個命令給了我不同的速度。最初它開始很高,例如 5 倍,然後減慢到 0.6 倍。當我在一段時間後重新啟動它時,它會開始很高然後減慢但保持在 1x 以上。那麼,如何保證速度始終在1x以上呢?

如果速度低於 1 倍,我的直播效果就不太好,我在瀏覽器上使用的 videojs 會一直緩衝。

編輯:我還應該說,由於我正在串流 3 個不同的頻道,因此我運行了 3 個 ffmpeg 實例。第一個還可以,一直在1x以上。但後者是我遇到非確定性行為問題的地方(有時>1x,其他<1x速度)

有任何想法嗎?

相關內容