我正在开发一个使用 libx264 的应用程序。在进行 2 遍编码时,如果启用了 mbtree 选项,则第 1 遍似乎不会将任何内容放入 stats 文件中:
x264_1345845358591.L.mbtree.temp (size of 0)
x264_1345845358591.L.temp
$ cat x264_1345845358591.L.temp
#options: 288x162 fps=2997/100 timebase=100/2997 bitdepth=8 cabac=0 ref=3
deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00
mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11
fast_pskip=1 chroma_qp_offset=-2 threads=48 sliced_threads=0 nr=0
decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0
weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40
rc=abr mbtree=1 bitrate=210 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4
ip_ratio=1.40 aq=1:1.00**
当我为第二遍执行 x264_encoder_open() 时,我收到失败消息:
x264 [error]: ratecontrol_init: can't open stats file
x264 [error]: x264_encoder_open failed
所以它似乎在第一次通过时失败了。如果我关闭 mbtree,2pass 工作正常。只要关闭mbtree,我就可以使用预设或调整参数运行它。什么参数(见上面的列表)可能使 mbtree 在第一次通过时失败?