从不同的日子开始,我试图在h264
中实现两次传递编码ffmpeg
,但没有成功。据我所知,在第一遍中,我需要使用stats_out
中的统计信息创建一个文本文件。这个步骤是从ffmpeg
内部实现的,所以我需要设置第一个传递并将数据放在stats_out
中,然后我需要去传递2。
现在我试图以不同的方式激活pass 1,在codecContext中添加标志:
CodecCtx->flags |= AV_CODEC_FLAG_PASS1;
和/或在创建上下文之前设置选项:
av_opt_set(CodecCtx, "pass", "1", 0);
但无论如何我都有相同的结果,stats_out总是(null)。
同样在调查中我发现这个似乎被弃用的FF_API_STATS_BIT
:
/* statistics, used for 2-pass encoding */
attribute_deprecated
int mv_bits;
attribute_deprecated
int header_bits;
attribute_deprecated
int i_tex_bits;
attribute_deprecated
int p_tex_bits;
attribute_deprecated
int i_count;
attribute_deprecated
int p_count;
attribute_deprecated
int skip_count;
attribute_deprecated
int misc_bits;
/** @deprecated this field is unused */
attribute_deprecated
int frame_bits;
所以我对如何实现这个过程有点模棱两可,相关帖子太旧而且不是很有用。
有没有人有过这方面的经验?