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
但它没有响应。
我缺少什么?还有其他方法可以避免延误吗?
答案 0 :(得分:2)
RTP流问题的简短(不完整)解决方案:
使用命令行设置FFMPEG:
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上。然后客户端需要连接到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。