2012-11-14 67 views
1

我试图使用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的视频流。谢谢!如何从视频HTML5的gstreamer流中接收rtp,rtcp或udp?

回答

0

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

这里有一些应该工作开箱即用,使用GStreamer的videotestsrc测试命令:

  • 的GStreamer:

    GST推出-v videotestsrc水平速度= 1!去隔行!视频速率! videoscale! video/x-raw-yuv,framerate = 15/1,width = 256, height = 144! jpegenc品质= 20! multipartmux boundary =“ - videoboundary”! tcpserversink主机=本地主机端口= 3000

  • VLC:

    VLC -vvv -I RC TCP://本地主机:3000 --sout “·推荐{存取= HTTP {MIME多部分=/X - 混合替换;边界= - 7b3cc56e5f51db803f790dad720ed50a},MUX = mpjpeg,DST =本地主机:8081}”

  • 然后打开一个浏览器,以http://localhost:8081(或与img标签,其创建一个HTML页面“ src“属性是http://localhost:8081