【问题标题】:Gstreamer tcpserversink v0.10 vs 1.0 and HTML5 video tagGstreamer tcpserversink v0.10 vs 1.0 和 HTML5 视频标签
【发布时间】:2014-09-12 14:29:27
【问题描述】:

我在我的网站中嵌入了一个 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,但不适用于 video 标签中的新 gst?

【问题讨论】:

  • 你知道什么失败了吗?浏览器是否在控制台上打印任何内容或给出任何错误?您的测试设置如何?
  • @thiagoss whe using chrome 我可以看到以下错误:net::ERR_CONNECTION_REFUSED 用 Chrome 和 Firefox 测试过,都不起作用。
  • 有关于这个问题的更新吗?

标签: linux html video gstreamer


【解决方案1】:

让我告诉你这是一个多么有趣的问题。经过几个小时的闲逛,我仍然找不到适合我的 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 也会吸引玩家,但报告 No video with supported format and MIME type found;

尽管 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 antivirusIIS 在测试期间启用/禁用。在禁用 IIS 之后,我在 Google Chrome 上取得了小小的成功。

【讨论】:

    【解决方案2】:

    在 VLC 2.0.8 Twoflower 和 Chrome 版本 37.0.2062.120 Ubuntu 12.04 (281580)(64 位)上运行:

    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=8082
    

    Firefox 希望 Mime 类型正确。当它应该是“video/mp4”时,Gstreamer 将它作为 Mime = 'Plain' 发送。没有成功覆盖类型。

    我使用带有标签的空 HTML5 来测试各种东西:

    <video id="video" autoplay="autoplay" controls >
        <source src="http://localhost:8083" type="html" codecs="vp8.0, vorbis">
        <source src="http://localhost:8080" type="video/webm" codecs="vp8.0, vorbis">
        <source src="http://localhost:8081" type="video/ogg" codecs="theora, vorbis">
        <source src="http://localhost:8082" type="video/mp4" codecs="avc1.4D401E, mp4a.40.2">
        You browser doesn't support element <code>video</code>.
    </video>
    

    webm/ogg/mp4 在 chrome 上工作,因为它不关心 Mime 类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 2014-02-10
      相关资源
      最近更新 更多