nobuffer与av_read_frame的关系

简介: nobuffer与av_read_frame的关系

AVDictionary *options = NULL;

av_dict_set(&options, “fflags”, “nobuffer”, 0);

int re = avformat_open_input(&ic, URL, NULL, &options);

av_read_frame在读取视频后,开始解码在最开始几帧avcodec_receive_frame并不会得到解码后的数据,这个函数返回值是AVERROR(EAGAIN)。没有设置nobuffer和设置nobuffer,以上结果都返回AVERROR(EAGAIN)。

但设置了后,av_read_frame不阻塞,直接返回,不设置,av_read_frame会阻塞。不过等过几帧后avcodec_receive_frame正常出数据,av_read_frame和平常一样,也会阻塞直到读到数据才取消阻塞。


thxchtb3wcn3k_d11fc1ff3db9431d8ad7575e9297ae48.png

相关文章
|
1月前
|
API
FFmpeg中AVPacket、AVFrame结构的基本使用
FFmpeg中AVPacket和AVFrame结构的内存分配、释放和引用计数处理,以及如何避免内存泄漏。
36 3
|
1月前
|
Shell 网络安全 PHP
thewall-文件包含-CAP_DAC_READ_SEARCH
thewall-文件包含-CAP_DAC_READ_SEARCH
19 2
|
存储
av_register_all分析
av_register_all分析
88 0
av_register_all分析
ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
118 0
ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
|
网络协议
av_interleaved_write_frame -32 broken pipe
av_interleaved_write_frame -32 broken pipe
261 0
av_interleaved_write_frame -32 broken pipe
|
算法
frame_size (1536) was not respected for a non-last frame
frame_size (1536) was not respected for a non-last frame
100 0
frame_size (1536) was not respected for a non-last frame
av_read_frame每次返回的视频和音频帧数
av_read_frame每次返回的视频和音频帧数
79 0
av_read_frame每次返回的视频和音频帧数
|
编解码
av_read_frame返回值为-5 Input/output error
av_read_frame返回值为-5 Input/output error
162 0
AV_PIX_FMT_YUV420P12LE’在此作用域中尚未声明
AV_PIX_FMT_YUV420P12LE’在此作用域中尚未声明
94 0
解决办法:av_interleaved_write_frame()返回-22 错误
解决办法:av_interleaved_write_frame()返回-22 错误
133 0