2017-05-28 102 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