FFmpeg/avconv 和 UDP-发送方之后连接监听器?

FFmpeg/avconv 和 UDP-发送方之后连接监听器?

我正在尝试解决 avconv/FFmpeg 中的端口绑定问题。我有两个测试命令;一个通过 UDP 发送音频流:

avconv -i test.wav "udp://localhost:6613?localport=6614&reuse=1&connect=0"

还有一个会倾听的人:

avconv -loglevel debug -f wav -ac 1 -i "udp://localhost:6613?reuse=1&connect=0" out.wav

如果第二个(侦听器)命令在第一个命令之前运行,它就会起作用;它只是挂在那里,直到第一个命令开始通过该端口发送数据。

但是,如果第一个命令启动第一的,并在设置侦听器之前开始发送数据,运行第二条命令会产生以下输出:

Opening an input file: udp://localhost:6613.  
udp://localhost:6613: Operation not permitted

然而,这不是端口绑定错误

如果我reuse=1从第二个命令中删除并运行它两次 - 从而实际上尝试绑定套接字两次 - 它会生成以下消息:

Opening an input file: udp://localhost:6613.
[udp @ 0x1a77140] bind failed: Address already in use
udp://localhost:6613: Input/output error

只要reuse=1仍在命令中,运行两次就会不是从绑定中引发错误,并且它在测试命令中,希望它能够解决问题......但它没有。

所以,我想知道为什么它在收听正在进行的流时会出现问题 - 以及如何防止这种情况。

相关内容