問題タブ [media-source]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Media Source Extensions (MSE) - Chrome for Android
私が収集できる限り、Media Source Extensions は Chrome for Android の最新バージョンに実装されるはずです。Chromium ダッシュボードには、これが機能していることも示されています。ただし、実際には機能しないようです (または、少なくともデスクトップ用の Chrome で使用されているのと同じ API を使用しても機能しません)。
具体的には、この例を Android フォン (Samsung Galaxy S4) で KitKat と Chrome for Android の最新バージョンを使用して実行すると、空の (黒い) ビデオが表示されます - webm ファイルが再生されているように見えます(ソースをサウンド付きのwebmファイルに置き換えると、オーディオが聞こえます)、ビデオは表示されません。
これは、MSE が実際には Chrome for Android でまだサポートされていないということですか? 実際に機能するはずだと誰かが知っている例はありますか?
javascript - Media Source Extension API の使用時にビデオが停止する
Media Source API を使用して独自の実装を機能させるには、ほとんど運がありませんでした。
実際の例がローカルで適切に動作するかどうかを確認することにしたので、例からソース コードをコピーして貼り付けました: http://html5-demos.appspot.com/static/media-source.html
ソース: ビュー ソース: http://html5-demos.appspot.com/static/media-source.html
「test.webm」ビデオを持っていないので、独自の .webm ビデオ ファイルを使用できます。私が使用しているテスト ファイルは .webm ビデオ ファイル 14.6m です
その結果、まったく同じようには機能しませんでした。コンソールを確認すると、いくつかのエラーがあったことがわかります。そのため、メディア ソースからの sourceBuffer が更新されている間にビデオ チャンクを収集するためのキューを追加しました。
これによりエラーが修正され、ビデオがプレーヤーに完全に読み込まれていることがわかりますが、問題はビデオの再生が開始されないことです。ビデオの長さを示すのは単なる黒い画面です。
手動で 1 秒の開始点に移動すると、最後まで再生されます。これは、実装が正しく機能したことを意味すると思います。黒い画面があるときにビデオの video.paused bool をチェックすると、false として返されます。現時点では、これが html ビデオだけの問題かどうかはわかりません。
例のスクリプトに対する私の更新は次のとおりです。
編集:この問題に遭遇する可能性のある他の人を助けることを期待して、解決策/結果を追加させてください.
使用しようとしていた元の .webm ビデオ ファイルの重要なフレーミングの問題であることがわかりました。MSE API が必要とする正確なファイル形式であっても、MSE API は非常に厳選されているようです。最終的に、.webm ビデオを http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5からダウンロードしました。
これらの他のファイル形式をいじり続けるつもりです。
video - 生のビデオ フレームで Media Source Extensions を使用する
サーバーからブラウザーへの H264 ビデオのライブ リアルタイム ストリーミングを実行しようとしています。H264 ストリームは MP4 コンテナー内にラップされませんが、生の H264 フレームの形式で (Web ソケットを介して) ブラウザーに到達します。
問題は、MP4 や WebM などのファイル コンテナーの代わりに生のフレームをメディア ソースの拡張子にフィードすることは可能かということです。
MPEG-DASH などの mp4 ソリューションでは、低遅延、複数のビデオの同期、および達成する必要があるその他の要素に関して必要な柔軟性が得られません。
video-streaming - MediaSource および webRTC ストリーミングを使用してメディア プレーヤーが削除されない
受信側で mediasource API を使用して、ある webRTC デバイスから別の webRTC デバイスに複数のメディア ファイルを (順次) ストリーミングしようとしています。ファイルはページ上の同じビデオ ソース要素で受信および再生されますが、新しいファイルをストリーミングするたびに (または同じものをもう一度)、プレーヤーが Google chrome://media-internals/ に表示されますが、他のプレーヤーは以前の送信からもまだ表示されます。
私の懸念は、新しいメディアソースが新しいストリームに (webRTC から) 割り当てられたときに、リソースが割り当てられているが解放されていない (または、何かを正しく行っていない可能性が高い) ことです。
割り当てられて再生されたメディアソースを明示的に解放またはリモートする方法について何か考えはありますか?
video - データ チャネル + メディア ソース拡張 API を使用してローカル ビデオを送信する
私はしばらくWebRTCピア接続をいじっていましたが、ピア接続とp2pビデオで可能なことを広げているようです(少なくとも今は)
現在、Media Source Extensions API を調べて、代替の回避策を作成している可能性があります。
先週ほど MSE API をいじって、これまでのところ、ローカルの .webm ビデオ ファイルを動作させることができました。つまり、ビデオ ファイルを断片に分割し、html ビデオ要素に表示しています。
次に、ノードサーバーでビデオをチャンクしてクライアントに送信し、クライアントが MSE API を使用してビデオを表示しようとしました (MSE の使用方法の実際の例)。
今、p2p データチャネルを介して html ビデオ要素からローカル ビデオを送信し、MSE API を使用して受信側クライアントでビデオをつなぎ合わせることが可能かどうか疑問に思っています。これは、WebRTC ピア接続が現在すでに行っていることをほぼ再作成することになります。
人々がこれらの API を通常使用するものではないので、まだこれを試した人がいるかどうか疑問に思っています。とにかくすぐにこれを試してみます:]
javascript - MediaSource: Uncaught InvalidStateError: 'SourceBuffer' で 'appendBuffer' を実行できませんでした: この SourceBuffer は削除されました
最初のデモ MediaSource を試してみましたが、ビデオを再生できません。私が使用しているソースは webm ビデオ「big-buck-bunny_trailer.webm」です。「Uncaught InvalidStateError: Failed to execute 'endOfStream' on 'MediaSource': The 'updating' attribute is true on one or more of this MediaSource's SourceBuffers.」というメッセージが引き続き表示されます。ソースバッファ更新フラグも処理しましたが、まだ機能していないようです。