問題タブ [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.
javascript - Media Source Extension ビデオがクラッシュしました (メモリ リーク)
Media Source Extension(MSE) API を使用して、websocket 経由でライブ ストリーミングを再生しようとしました。ブラウザが約 1 日間クラッシュすることを除いて、すべて正常に動作します。また、メモリが常に増加することもわかりました。以下は私のスニペットです。データを追加しすぎてメモリが常に増加し、Chrome の異常な動作につながると思います。メモリ リークを防ぐために、MSE API を介して MSE/ビデオ バッファを解放することは可能ですか?
OS: Windows 7 SP1 64 ビット Windows 10 64 ビット
mpeg-dash - 独自のシンプルな MPEG DASH プレーヤーを作成するには?
誰かがすでに自分のシンプルな DASH プレーヤーを作成しようとしている (そしておそらくいくつかの例/ソース コードを持っている) が、 GITHUB の dash.js リポジトリを使用せずに、可能であれば、作成を開始する方法に関する洞察とヒントがあるかどうか疑問に思っていました。 /書き込みプロセス?
javascript - MSE で webm を再生しようとするとエラーが発生し、チャンクが追加されず、ビデオが停止します
この webmで 5 秒 (1.32 分) を超える webm を再生したい 。
この例を変更しようとしましたが、実行すると、チャンクが追加されず、ビデオがどこかで停止し、次のエラーが発生します。
InvalidStateError: 使用できない、または使用できなくなったオブジェクトを使用しようとしました sourceBuffer.appendBuffer(new Uint8Array(e.target.result));
誰か明確にしてくれませんか?
javascript - 異なる位置の MediaSource appendBuffer
MediaSource を使用して、2 つの個別のストリーム (オーディオとビデオ) を再生しようとしています。任意のサイズのシーケンスでバッファー (XHR を介して取得された ArrayBuffer タイプ) を追加することに成功しました。
- 同じサイズの XXX バイトのチャンク
- ランダムなサイズの XXX バイトのチャンク
- バイトに変換された XXX 秒のチャンク
ビデオとオーディオは完全に同期して再生され、すべての範囲が正しく翻訳されます。これらのテストでは、コレクション、webm 形式、および vp9 コーデックから YouTube でエンコードされたビデオを使用しています。
ただし、問題は、プレーヤーがロードされたセグメントの前にシークされ、この新しいセグメントが以前に追加されたバッファと順番に並んでいない状態で、その時点から、またはその時点の近くからロードしたいというシーク シナリオに伴います。
MediaSource が新しいバッファを追加する必要があるセグメント位置を認識すると単純に仮定するという明らかなアイデアを試してみたので、シークされた時間間隔に関連するストリーム データを取得してバッファに追加するだけでしたが、そうではありませんでした。動作し、次のエラーが発生します。
私はこれに対する解決策を見つけようとしてきましたが、試してみましたがtimestampOffset、appendWindowStart役に立ちappendWindowEndませんでした。
ドキュメントでは、バッファをシーケンシャル順序以外の位置に追加する方法を見つけることができません。プロセス自体の簡単な説明と、可能であれば助けをいただければ幸いです。
javascript - MediaSource がビデオをランダムに停止する
したいプロジェクトに取り組んでいます
動作するようになりましたが、数秒後にランダムに停止します。
私は WebRTC について知っていますが、私が取り組んでいるプロジェクトでは、WebRTC をサポートしていない Chrome 組み込みのバージョンである環境に基づいています。
サーバ:
クライアント:
webm - ランダムな順序での WebM ストリームの Media Source Extensions appendBuffer
複数のソースから並行してビデオをダウンロードしようとしています。ただし、ビデオ ファイルの順序に従っていない場合、MSE の appendBuffer メソッドは常に失敗します。
ランダムな順序でパーツを追加し、「できるだけ早く」ビデオを再生したいと思います。私は SourceBuffer モード プロパティと timestampOffset を調査していました。それらのどれも役に立ちませんでした。
私が持っているソースwebmファイルがそのようなタスクに対して「サポートされていない形式」である可能性があるかどうか疑問に思っています(順次アプローチは正常に機能します)。
アドバイスありがとうございます。
更新: よく知られているビデオ ファイルの例を分析しようとしましたが、その一部を順不同で追加できることがわかりました。クラスターのバイト範囲に従う必要があるようです: