两遍编码FFMpeg C / C ++

时间:2018-05-20 09:01:26

标签: c++ c encoding ffmpeg h.264

从不同的日子开始,我试图在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

如果FF_API_STAT_BITS

/* 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;

ENDIF

所以我对如何实现这个过程有点模棱两可,相关帖子太旧而且不是很有用。

有没有人有过这方面的经验?

0 个答案:

没有答案