我在我的网站中嵌入了一个 HTML5 视频标签,源是一个 gstreamer 流。
我有一条适用于 gst 0.10 的管道:
gst-launch-0.10 -v videotestsrc ! theoraenc ! oggmux ! queue ! tcpserversink port=8080 sync-method=2
我可以像这样通过 vlc 连接到这个流:
vlc tcp://localhost:8080
我还可以在 HTML5 视频标签中使用 URL,视频会按预期显示。
现在我尝试将其调整为 gst 1.0:
gst-launch-1.0 -v videotestsrc ! theoraenc ! oggmux ! queue ! tcpserversink port=8080 sync-method=2
同样,我可以使用 vlc 连接到流,但是我不能在视频标签中使用这个流。
这让我发疯,我将管道精简到最低限度,但我不明白为什么它不起作用。
为什么它适用于旧的 gst 和 vlc,但不适用于视频标签中的新 gst?
最佳答案
让我告诉你这是一个多么有趣的问题。经过几个小时的鬼混,我仍然找不到适合我的 Windows 8.1 机器的解决方案。
我有一些幸运流式传输.ogg:
gst-launch-1.0 -v videotestsrc is-live=true ! clockoverlay shaded-background=true font-desc="Sans 38" ! theoraenc ! oggmux ! tcpserversink host=127.0.0.1 port=8080
但正确显示流仍然是一个挑战。
这是我正在使用的 html 文件:
<html>
<title>A simple HTML5 video test</title>
</html>
<body>
<video autoplay controls width=320 height=240>
<source src="http://localhost:8080" type="video/ogg">
You browser doesn't support element <code>video</code>.
</video>
</body>
- Google Chrome 38.0.2125.122 显示流但几秒后停止(不知道为什么);
- Internet Explorer 11.0.9600 吸引玩家但报告
Invalid Source
; - Firefox Nightly 36.0a1 也会绘制播放器,但报告
找不到支持格式和 MIME 类型的视频
;
尽管 VLC 可以正确播放 .mp4 流,但我一点也不走运:
gst-launch-1.0 videotestsrc is-live=true ! clockoverlay shaded-background=true font-desc="Sans 38" ! x264enc ! mpegtsmux ! queue ! tcpserversink host=127.0.0.1 port=8080
Kaspersky 反病毒 和 IIS 在测试期间被启用/禁用。在禁用 IIS 后,我在 Google Chrome 上的小小成功。
关于linux - Gstreamer tcpserversink v0.10 vs 1.0 和 HTML5 视频标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25810640/