Unix 服务器 (ffmpeg) 和 Windows 客户端 (vlc) 之间的视频流完成且没有错误。
服务器端:
ffmpeg -f v4l2 -r 25 -i /dev/video0 http://192.168.1.114:27018/feed1.ffm
客户端:
vlc 播放器:媒体 -> 打开网络流:
http://192.168.1.114:27018/test.swf
但是,视频流大约需要 10 秒。延迟。出于这个原因,我尝试使用 rtp 而不是 http,但没有结果。具体来说,在服务器端我运行:
ffmpeg -f v4l2 -r 25 -i /dev/video0 rtp://192.168.1.114:27018/feed1.ffm
流开始后,在客户端我输入:
rtp://@:27018
但它没有响应。我错过了什么?有没有其他方法可以避免延误?
最佳答案
RTP 流问题的简短(不完整)解决方案:
ffmpeg -f v4l2 -r 25 -i /dev/video0 rtp://<client_ip>:<client_port>
在哪里
<client_ip>
和 <client_port>
需要分别替换为客户端的IP地址和端口号。 RTP流问题描述及解决方法:
http://192.168.1.114:27018/
上进行流式传输时,这可能意味着FFMPEG(服务器)会听在其具有 IP 192.168.1.114 和端口 27018 的一个接口(interface)上。然后客户端需要连接到 http://192.168.1.114:27018
获取流。 rtp://<client_ip>:<client_port>
设置 FFMPEG 服务器。而不是 URL rtp://<server_ip>:<server_port>
, 对于 <client_ip>
能够访问他本地端口上的流<client_port>
. 有关 FFMPEG 的 RTP URL 格式的更多信息以及 RTP 流(如多播)中一些有趣概念的起点,请访问 here .
关于ffmpeg - 视频流通过 rtp 协议(protocol)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22171092/