2017-05-28 111 views
0

我一直在使用下面的命令用於二階段編碼ffmpeg多通道編碼; x264和x265是否可以在第二階段更改分辨率?

ffmpeg -i <input> -c:v libx265 -x265-params pass=1:crf=22 -f mp4 /dev/null 
ffmpeg -i <input> -c:v libx265 -x265-params pass=2 <output> 

如果我嘗試在第二次與VF規模

ffmpeg -i <input> -vf scale=720:-2 -c:v libx265 -x265-params pass=2 <output> 

我得到`

[錯誤]改變分辨率CU-樹幀類型87不匹配實際幀類型0

`

編輯1: X264和X265已經很多年沒有人沒有找到一個解決方案/劈死其使用從第一階段的統計,在不同的分辨率多輸出分辨率,至少碼率分配看起來相同的I假設

回答

1

您需要使用相同的分辨率,FPS和持續時間用於第一遍。像x265這樣的編碼器將幀分解成片,它們本身由具有特定像素大小的CTU組成。通過改變分辨率,第一階段計算的統計數據將不會與第二階段的分區數據匹配。

+0

X264和X265已經出現幾年了也沒有人找到一個解決方案/劈死其使用從第一階段的統計,在不同的分辨率多輸出分辨率,至少碼率分配看起來同我相信。 –

+0

比特率分佈不是控制因素。拍攝框架左上角的足球圖像。在640x360時,左上角的64x64塊會包含球的一部分背景和弧的位。在第一遍期間,編碼器將根據此場景和細節生成統計數據。如果您在1080p版本上執行2nd-pass,則64x64的左上角的CTU將包含不同的圖像數據,例如只有背景。 – Mulvya