我正在尝试使用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。谢谢!
答案 0 :(得分:0)
如果您不需要以低fps流式传输,则可以使用GStreamer在MJPEG中对流进行转码并在TCP中进行流式传输,然后使用VLC获取此TCP流并将其流式传输到HTTP。它运行良好(延迟0.5秒),但如果你减少fps(1 fps),VLC会引入大约11秒的延迟。
以下是一些开箱即用的测试命令,使用GStreamer videotestsrc:
GStreamer:
gst-launch -v videotestsrc horizontal-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
)