web-dev-qa-db-ja.com

HTML5ビデオでVLCライブストリームを使用する方法

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"/>

何か案は?

40
Bruno Santos

私はしばらくこれに苦労しましたが、Firefox 7、Nightly 10、およびOpera Next。

すべてがGoogle Chromeでも機能するようになりました。私が抱えていた問題は、Chrome=の最新バージョンChrome in XPはもはや '--enable -webgl '命令がコマンドラインで渡されました。GPUはXPでブラックリストに登録されているため、XPで必要なコマンドラインエントリは' --ignore-gpu-blacklist 'のみです。

さらに、Chrome=はWeb-m/VP8/Vorbisストリームで問題なく動作することを確認できました。OperaとFirefoxはまだサポートしていません。

私が見つけた主な問題は次のとおりです。

1-ページの読み込み: Webブラウザではなくファイルシステムからページを読み込む場合、ビデオ(ビデオ、vlc、またはファイル)は表示されません。

修正するには、Webサーバーからコンテンツをロードしていることを確認してください。

2-ライブ/リアルタイムストリーミング: VLCが使用され、それを機能させるために、WebGL/HTML5ビデオのセキュリティ制限を回避する必要がありました。同じWebサーバーおよびWebコンテキストまたはサブコンテキストから発信されていないビデオストリームは、セキュリティ制限のために再生されないことがあります。

これを修正するには、アプリケーションサーバーにApache Webサーバーを配置し、ロードされたWebページのWebサブコンテキストの下にVLCストリームを構成します。たとえば、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も使用している場合は、上記の例に基づいて、「desktop」という名前のディレクトリの下にHTMLページを配置します。

これまでの結論: HTML5ビデオ仕様にはストリームの余地がありますが、これまでのところ、HTML5ビデオはライブストリーミングにほとんど対応していないという結論に達しました。私の実験では、ビデオタグは常にバッファリングされ、無効にする方法を見つけることができませんでした。これにより、少なくとも5〜8秒の遅れが生じます。

だから、今のところ、FlashとRTMPベースのソリューションがまだ道を進んでいると思います。

35
Bruno Santos