【问题标题】:How to receive a rtp, rtcp or udp, from a stream of gstreamer, on video HTML5?如何在视频 HTML5 上从 gstreamer 流接收 rtp、rtcp 或 udp?
【发布时间】:2012-11-02 13:50:55
【问题描述】:

我正在尝试使用 HTML5 获取视频流 RTP/RTCP,该流是由 gstreamer 生成的。我使用了gstreamer的例子,所以我可以通过RTP端口:5000和RTCP:5001,并且可以使用gstreamer接收流。但是使用 HTML5 无法接收它们。于是我试着读了一下HTML5,发现它可以接收theora/ogg, webm/vp8, mp4/avc, 协议可能是, HTTP, RTP, RTCP, UDP, 等等,但是我不能使用RTP, RTCP 或 UDP,HTTP 只能设法接收。但是使用 Mozilla Firefox 的 VLC 插件,使用 UDP 协议,我得到了非常令人满意的结果。不知道有没有人有任何提示,我不想使用源文件,因为 src="/tmp/test.avi" 需要是可以是 udp、RTP、RTCP 的视频流。谢谢!

【问题讨论】:

    标签: html udp gstreamer rtp rtcp


    【解决方案1】:

    如果您不需要以低 fps 流式传输,您可以使用 GStreamer 将您的流转码为 MJPEG 并在 TCP 中流式传输,然后使用 VLC 获取此 TCP 流并将其流式传输到 HTTP。它工作得很好(0.5 秒的延迟),但是如果你降低 fps (1 fps) VLC 会引入大约 11 秒的延迟。

    这里有一些测试命令应该可以使用 GStreamer videotestsrc 开箱即用:

    • GStreamer:

      gst-launch -v videotestsrc 水平速度=1 !去隔行!视频速率!视频缩放!视频/x-raw-yuv,帧率=15/1,宽度=256, 高度=144! jpegenc 质量=20 !多部分复用器 边界=“--视频边界”! tcpserversink 主机=localhost 端口=3000

    • VLC:

      vlc -vvv -I rc tcp://localhost:3000 --sout '#standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=localhost:8081}'

    • 然后打开浏览器到http://localhost:8081(或者创建一个带有“src”属性为http://localhost:8081的img标签的HTML页面)

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 2020-10-23
      • 2020-03-05
      • 2020-02-26
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      相关资源
      最近更新 更多