Stream 检查地址以查看是否有任何视频流

Stream 检查地址以查看是否有任何视频流,stream,ffmpeg,udp,libavcodec,libavformat,Stream,Ffmpeg,Udp,Libavcodec,Libavformat,我想使用libavcodec函数从UDP地址读取视频流。为此,我使用以下代码: char *url = "udp://127.0.0.1:1000"; AVFormatContext *oc = NULL; avformat_open_input(&oc, url, NULL , NULL); 如果我们运行这段代码,那么函数avformat_open_input开始监听给定的UDP地址,如果给定的UDP地址没有视频流,程序看起来会停止 现在,我想写一个代码,首先快速检查给定的UD

我想使用libavcodec函数从UDP地址读取视频流。为此,我使用以下代码:

 char *url = "udp://127.0.0.1:1000";
 AVFormatContext *oc = NULL;
 avformat_open_input(&oc, url, NULL , NULL);
如果我们运行这段代码,那么函数avformat_open_input开始监听给定的UDP地址,如果给定的UDP地址没有视频流,程序看起来会停止

现在,我想写一个代码,首先快速检查给定的UDP地址,看看上面是否有数据,如果没有数据,那么程序应该忽略运行avformat\u open\u input,否则它应该运行这个函数,这样我就可以避免停止的情况


你知道我该怎么做吗?谢谢

您必须意识到,如果媒体流没有使您的带宽饱和,那么总会有一些时候无法从套接字读取任何内容,因此尽快检查这种情况肯定是不可靠的。@SirDarius:谢谢,但是我怎样才能避免avformat\u open\u input在给定地址上永远侦听?对此不太确定,但可能有一个选项允许指定读取超时ref@Blue Sky您找到任何避免avformat\u open\u input永远侦听的方法了吗