【问题标题】:How to use VLC live streams with HTML5 video?如何将 VLC 直播流与 HTML5 视频一起使用?
【发布时间】:2011-12-16 14:28:43
【问题描述】:

我尝试了 HTTP Ogg/Theora,在 Chrome 上运行正常,但在 Firefox 7 上运行不正常。

VLC 配置:

为了测试,我一直在使用以下 vlc 命令行配置流式传输桌面:

vlc.exe screen:// :screen-fps=30 :screen-caching=100 :sout=#transcode{vcodec=theo,vb=800,scale=1,width=800,height=600,acodec=none}:http{mux=ogg,dst=:8181/desktop} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep

HTML5 视频标签配置:

<video id="video" src="http://my_host_name:8181/desktop" type="video/ogg; codecs=theora" autoplay="autoplay"/>

有什么想法吗?

【问题讨论】:

    标签: html firefox video-streaming html5-video vlc


    【解决方案1】:

    我为此苦苦挣扎了一段时间,但我能够验证 Ogg/Theora 在 Firefox 7、Nightly 10 和 Opera Next 中运行良好。

    现在一切都在 Google Chrome 上运行。我在 Chrome 上遇到的问题是 XP 中最新版本的 Chrome 不再需要在命令行中传递“--enable-webgl”指令。 XP 中唯一需要的命令行条目是“--ignore-gpu-blacklist”,因为 GPU 在 XP 中被列入黑名单。

    此外,我能够验证 Chrome 是否可以正常使用 Web-m/VP8/Vorbis 流。 Opera 和 Firefox 尚未支持它。

    我发现的主要问题是:

    1 - 页面加载:如果您从文件系统而不是从网络服务器加载页面,则不会显示视频(任何视频、vlc 或文件)。

    要修复它,只需确保从网络服务器加载内容。

    2 - 实时/实时流媒体:使用了 VLC,为了使其正常工作,我不得不绕过 WebGL/HTML5 视频安全限制。由于安全限制,可能不会播放并非源自相同 Web 服务器和 Web 上下文或子上下文的视频流。

    要解决此问题,只需在您的应用程序服务器前面安装一个 Apache Web 服务器,然后将您的 VLC 流配置为位于已加载网页的 Web 子上下文下。例如,在 Apache 2.2 中启用 mod 代理并将以下行添加到您的 httpd.conf 文件中:

    # Mod_proxy Module
    ProxyReceiveBufferSize 16384
    
    ProxyRequests On
    ProxyVia On
    ProxyPreserveHost On
    
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    
    # VLC server stream
    ProxyPass /desktop/video/stream.ogg http://vlc_streaming_host:8181/desktop.ogg
    ProxyPassReverse /desktop/video/stream.ogg http://vlc_streaming_host:8181/desktop.ogg
    
    # If content is on another server (JBoss, Spring, etc...) then uncomment next lines
    #ProxyPass /desktop http://server_content_host:8080/streamer
    #ProxyPassReverse /desktop http://server_content_host:8080/streamer
    

    如果您还使用 Apache 来存储内容,那么根据上面的示例,只需将您的 html 页面放在名为“desktop”的目录下。

    到目前为止的结论: 尽管 HTML5 视频规范为流式传输提供了空间,但到目前为止,我的结论是 HTML5 视频还没有准备好进行实时流式传输。在我的实验中,视频标签总是会缓冲,我找不到禁用它的方法,这最终会导致至少延迟 5 到 8 秒。

    所以,我想目前基于 Flash 和 RTMP 的解决方案仍然是可行的方法。

    【讨论】:

    • 非常感谢您回答您自己的问题,这对我有帮助。
    • 对此有任何更新吗?我一直在尝试将 mjpeg 流转码为 mp4 以节省带宽,它有点工作,但视频每隔几秒钟就会断断续续。 vlc --intf=rc http://localhost:8080/stream?topic=/image_raw --sout='#transcode{vcodec=theo,vb=800,scale=1,width=640,height=480,acodec=none}:http{mux=ogg,dst=:8181/desktop.ogg'} :no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep
    • 如何让流快?它非常缓慢缓慢缓慢......时间越长
    猜你喜欢
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2012-04-26
    • 1970-01-01
    • 2013-08-28
    • 2011-02-14
    • 1970-01-01
    相关资源
    最近更新 更多