C 如何在没有解析器的情况下成功解码带有http超时的ffmpeg帧
我面临的情况是,连接问题导致ffmpeg生成错误/混乱的工件(帧),这与手册中的状态相反 我们使用C 如何在没有解析器的情况下成功解码带有http超时的ffmpeg帧,c,ffmpeg,libav,C,Ffmpeg,Libav,我面临的情况是,连接问题导致ffmpeg生成错误/混乱的工件(帧),这与手册中的状态相反 我们使用curl作为http传输库,使用ffmpeg作为处理库。为了模拟网络超时,我在AVIOContext中放置了几个断点,该断点被传递到AVFormatContext avformat_open_input('http://some.com/1.ts') while(!eof) av_read_frame av_send_packet while(!av_receive_frame)
curl
作为http传输库,使用ffmpeg
作为处理库。为了模拟网络超时,我在AVIOContext
中放置了几个断点,该断点被传递到AVFormatContext
avformat_open_input('http://some.com/1.ts')
while(!eof)
av_read_frame
av_send_packet
while(!av_receive_frame)
do_something
close
av\u receive\u frame
在成功时应返回0
,在需要额外数据的情况下,应返回错误-35
因此,在会话超时后,ffmpeg
仍然可以以某种方式提取(av\u receive\u frame
)第一帧,即使它没有机会下载/积累足够的数据
我的问题是,如果不使用解析器
,是否有方法验证解码器能否成功解码数据包
“编辑”:我看到av\u read\u frame
使用解析,如果AVStream::need\u parsing
属性不是NONE
,你对如何设置它有什么想法吗