我一直在使用以下命令进行两次传递编码
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 scale
更改第二遍的分辨率ffmpeg -i <input> -vf scale=720:-2 -c:v libx265 -x265-params pass=2 <output>
我得到了
[错误] CU-tree帧类型87与实际帧类型0不匹配。
`
编辑1: x264和x265多年来一直没有找到解决方案/黑客使用不同分辨率的第一次传递的统计数据来获得多个输出分辨率,至少比特率分布看起来相同我推测
答案 0 :(得分:1)
您需要使用与第一次传递相同的分辨率,fps和持续时间。像x265这样的编码器将帧分成片,片本身由CTU组成,CTU具有一定的像素大小。通过更改分辨率,第一遍中计算的统计数据不会与第二遍中的分区匹配。