FFMPEG / x264:我可以使用一個編碼會話中的通道 1 作為另一個編碼會話的通道 2 嗎?

FFMPEG / x264:我可以使用一個編碼會話中的通道 1 作為另一個編碼會話的通道 2 嗎?

問題:

使用一種解析度/位元速率的來源視訊的「pass 1」編碼作為同一來源的「pass 2」編碼的輸入是否合法?不同的解析度/比特率?我嘗試過並且它參見eeeeems工作,但我完全不確定它會在一般情況下:流配置文件(I/P/B 幀選擇等)看起來與在兩次傳遞中使用相同的參數不同,但也看起來“足夠好”。

我現在正需要一個權威的答案來解決這個問題。

為什麼陷入困境 1你會這麼做嗎?

因為兩次編碼修復了FFMPEG(實際上是x264)中的一個令人抓狂的錯誤,該錯誤可能不會很快得到修復:根據機器的速度,視頻的前1 秒左右通常會出現非常不合適的錯誤。這可以通過在非常快的機器(例如EC2 c4.8xlarge)。閒置的 i7 四核心 MacBook Pro不是足以重現此錯誤。

它將是非常高的:

  • 單程 CBR,無VBV指定的

    (忽略沒有 VBV 的 CBR根本不是 CBR

或太低:

  • 單程 CBR 具有VBV
  • 單通VBR:量表VBV和最大速率

VIFp 和 SSIM 品質測量都表明,較低/高位元率確實對應於不必要的降低/增加的品質(即位元率不應該更高或更低)。

進行兩遍 CBR 編碼工作偉大的並解決問題...如果你有時間的話。不幸的是,我無法承受單一解析度的兩次編碼的延遲。

那你想做什麼?

我目前正在以較低的解析度(480)執行初始轉碼。這將覆蓋盡可能多的播放設備。我想用它作為我的 pass 1。

然後我想用480通行證1訊息並且在我的較高分辨率下僅通過 2。在 CBR/VBV 情況下,這將是:

ffmpeg -i source.mp4 -pass 1 -vf  scale=852:480 -c:v libx264 -b:v 1000k ... 480.mp4
ffmpeg -i source.mp4 -pass 2 -vf scale=1280:720 -c:v libx264 -b:v 2500k ... 720.mp4

巴尼·谷歌

相關內容