web-dev-qa-db-ja.com

html5を使用したライブストリーミング-さらに、Youtubeはどのようにそれを行いますか?

だから私は今WiiUを持っていて、Youtubeライブストリーミングをテストしました...そしてそれは完璧に機能しました。うわー、私は、どのようなコーデック、コンテナ形式、プロトコルなどが使用されているかを知る必要があると思いましたが、私はそのタスクでちょっと失敗しました。

Chromeを使用してYoutubeLiveバージョンにアクセスしようとしましたが、sourceパラメーターにこの種の情報を提供する<video>タグが表示される前にDOM、ブラウザは利用可能なビデオ形式のいずれもサポートしていないと教えてくれました。別のブラウザ(Opera、FF、IE9)を使用して同じことを試しました。Flashを非アクティブ化して、html5プレーヤーを強制的に起動しました。同じメッセージ。

うわー、HTML5ストリーミングはこれまでのところ、私のWii Uでのみ機能します...そしておそらくIOSデバイスですが、私はそれらの1つを持っていません。

承知しました。基本的に、私が知りたいのは、<video>のライブストリーミングをどのように実現するかです。どのコンテナ形式、コーデックなどが使用されていますか?私の知識ではその情報に実際にアクセスすることはできません。

そして、上記のフォーマットを複製する方法に関するヒント。私は何かを全世界に放送しようとしているのではなく、Wii Uに何かを放送しようとしているだけです。そうでなければ、この段階ではあまり意味がありません。基本的には、WindowsでDirectShow入力を受け入れるものだけが必要です。

6
sinni800

Youtubeは、実際にはAppleが発明し、標準化を試みているHLSの「Http Live Streaming」メソッドを使用しています。

私はVLCとHTTPWebサーバー用の精巧なコマンドラインを使用してその方法を複製し、WiiUで機能しました。

コマンドラインは次のとおりです。

"c:\program files (x86)\videolan\vlc\vlc" -I rc dshow:// vdev="XSplitBroadcaster" adev="XSplitBroadcaster" size="1280x720" --sout=#transcode{width=1280,height=720,fps=25,vcodec=h264,vb=256,venc=x264{aud,profile=baseline,level=30,keyint=30,ref=1},acodec=mp3,ab=96,channels=2}:std{access=livehttp{seglen=10,delsegs=true,numsegs=5,index=C:\inetpub\wwwroot\stream\stream.m3u8,index-url=http://dennis/stream/stream-########.ts},mux=ts{use-key-frames},dst=C:\inetpub\wwwroot\stream\stream-########.ts}

ここでは、簡単に設定するために、このストリームにアクセスするhtmlコードを示します。

<!doctype html>
<html>
<head></head>
<body>
<video width="320" height="240" controls="controls">
    <source src="/stream/stream.m3u8" type="application/x-mpegURL" />
</video>
</body>

</html>

これを使用する人は誰でも、そこにあるすべての変数を変更する必要があります。 Webサーバーのwwwrootに配置する「チャンクファイル」を使用し、iDeviceまたはWiiUでストリーミングできます。

個人的には、データが急速に変化し、一度に多くのデータが存在しないため、これはRAMディスク上で最適な場所になると思います。

7
sinni800