如何从视频HTML5上的gstreamer流中接收rtp,rtcp或udp?

时间:2012-11-14 03:21:16

标签: html5 udp gstreamer rtp rtcp

我正在尝试使用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只能设法接收。但是我使用UDP协议使用Mozilla Firefox的VLC插件获得了非常令人满意的结果。我想知道是否有人有任何提示,我不想使用源文件,因为src =“/ tmp / test.avi”需要是一个视频流,可以是udp,RTP,RTCP。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您不需要以低fps流式传输,则可以使用GStreamer在MJPEG中对流进行转码并在TCP中进行流式传输,然后使用VLC获取此TCP流并将其流式传输到HTTP。它运行良好(延迟0.5秒),但如果你减少fps(1 fps),VLC会引入大约11秒的延迟。

以下是一些开箱即用的测试命令,使用GStreamer videotestsrc:

  • GStreamer:

      

    gst-launch -v videotestsrc horizo​​ntal-speed = 1! deinterlace!视频!视频! video / x-raw-yuv,帧率= 15/1,宽度= 256,   身高= 144! jpegenc质量= 20! multipartmux   boundary =“ - videoboundary”! tcpserversink host = localhost port = 3000

  • VLC:

      

    vlc -vvv -I rc tcp:// localhost:3000 --sout   '·推荐{存取= HTTP {MIME =多部分/ X - 混合替换;边界= - 7b3cc56e5f51db803f790dad720ed50a},MUX = mpjpeg,DST =本地主机:8081}'

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