ffmpeg - 视频流通过 rtp 协议(protocol)失败

标签 ffmpeg video-streaming vlc rtp

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:
    ffmpeg -f v4l2 -r 25 -i /dev/video0 rtp://<client_ip>:<client_port>
    

    在哪里 <client_ip><client_port>需要分别替换为客户端的IP地址和端口号。

  • RTP流问题描述及解决方法:
  • 通常,在设置 时HTTP 服务器 (本例为HTTP多媒体服务器),在服务器端,指定了服务器需要监听的本地端口和本地IP地址。因此,当您将 FFMPEG 设置为在 http://192.168.1.114:27018/ 上进行流式传输时,这可能意味着FFMPEG(服务器)会听在其具有 IP 192.168.1.114 和端口 27018 的一个接口(interface)上。然后客户端需要连接到 http://192.168.1.114:27018获取流。
  • 但是,当设置 RTP FFMPEG 服务器 ,客户端地址和端口是在服务器端指定的,这意味着(不准确)服务器将数据包发送到所需的地址和客户需要倾听如果他们想要可用的流,在他们的端口上。因此需要使用 URL 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/

    相关文章:

    javascript - 谁在使用 Justin TV API?

    javascript - 如何使用 VLC 流媒体服务器在 HTML5 中获取 MJPG 帧?

    video - 如何解决使用ffmpeg生成复杂视频性能低的问题?

    java - 使用 FFMPEG 查找两个视频之间的差异百分比

    php - FFMPEG 0.6.5 版视频旋转

    Swift MobileVLCKit 如何设置 UserAgent?

    internet-explorer - 在网站上嵌入VLC插件来播放RTSP流

    Python librosa NoBackendError 即使安装了 ffmpeg

    ios - 如何在 iOS 中编码流式视频?

    javascript - 我可以使用什么语言/脚本将 .M4V 文件嵌入到网页中?