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和平常一样,也会阻塞直到读到数据才取消阻塞。