jackly8831040 发表于 2018-4-23 16:58:01

关于ffmpeg-3.4.x编解码不能实时输出的问题

各位大神好!
使用ffmpeg-3.4.x与ffmpeg-3.3.x进行Mpeg2实时编、解码,调用ffmpeg视频解码api函数:avcodec_decode_video2两个版本具有不同的输出结果:
(1)使用ffmpeg-3.3.x,调用旧接口avcodec_decode_video2可以实时输出解码后的结果;
(2)使用ffmpeg-3.4.x,调用旧接口avcodec_decode_video2,不能输出解码后的结果,其行为类似于有一帧的延迟;
(3)使用ffmpeg-3.4.x,调用新接口avcodec_send_packet与avcodec_receive_frame,很明显有1帧延迟,在第1帧pkt输入后,avcodec_receive_frame返回AVERROR(EAGAIN);
请教各位大神:是否有办法在ffmpeg-3.4.x上实现0延迟的输出?

孙悟空 发表于 2018-4-23 17:08:11

能否回溯到某一个git提交?

jackly8831040 发表于 2018-4-23 17:11:03

所使用的是ffmpeg-3.3.3、ffmpeg-3.4.1,ffmpeg主页上的链接

孙悟空 发表于 2018-4-23 17:19:36

jackly8831040 发表于 2018-4-23 17:11
所使用的是ffmpeg-3.3.3、ffmpeg-3.4.1,ffmpeg主页上的链接

3.3.3和3.4.1之间有很多次提交的

jackly8831040 发表于 2018-4-24 10:07:17

ffmpeg-3.3.3用的是2017.4.13的版本,对应的git应该是https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/42163d4c551d1e1b1f18c0489aa8feb2cd9f8092
ffmpeg-3.4.2用的是2018.4.21的版本,对应的git应该是
https://git.ffmpeg.org/gitweb/ffmpeg.git/tag/72cc23520e308c66cffe869b138c0e3ce90664fc

孙悟空 发表于 2018-4-24 10:36:36

jackly8831040 发表于 2018-4-24 10:07
ffmpeg-3.3.3用的是2017.4.13的版本,对应的git应该是https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/42 ...

两个提交之间,相差2515次提交,帮不了你了,需要自己找一下哪次提交引发的问题

jackly8831040 发表于 2018-4-24 11:06:42

貌似找到了,跟解码器一个设置相关
当ffmpeg-3.4.x,解码器设置,AVCodecContext中的flag设置包含CODEC_FLAG_TRUNCATED,问题就出现了,当注释掉这个,问题就没了。
3.3.3没有这个问题。
页: [1]
查看完整版本: 关于ffmpeg-3.4.x编解码不能实时输出的问题