問題タブ [mpeg-dash]
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.
video-streaming - 大多数のブラウザーとデバイスで一貫したアダプティブ ストリーミングの戦略
私は、Web でのビデオ ストリーミングと再生の現状について、多くのことを調査しました。私が要約したことと、大部分のデバイスとブラウザーでアダプティブ ストリーミングをサポートするために従うべきだと思う戦略を投稿しています。私が取り組んでいる戦略に大きな抜け穴/改善点がある場合は、コミュニティからのフィードバックが欲しかった.
まとめ
- 今日のほとんどのブラウザで html の
<video>
要素で動画を再生できるようにするには、少なくとも 3 つの形式の WEBM、OGG、MP4 で動画をエンコードする必要があります。 - ビデオ オン デマンド サービスにアダプティブ ストリーミングを導入するには、MPEG-DASH、Apple の HLS、Microsoft のスムーズ ストリーミング、および Adobe の HDS を利用できます。
- MPEG-DASH は、HDS、HLS、Smooth Streaming に似たオープン スタンダードであり、任意のブラウザや OS でオーディオ/ビデオ コンテンツを提供するための共通プラットフォームを提供するために発明されたため、最初は MPEG-DASH を使用することを好みました。
- しかし、現在のところ、iOS で Safari を実行し、Mac で Safari を実行している Apple デバイスは、MPEG-DASH 標準を完全にはサポートしていません。これは、Apple が MPEG-DASH のベースである html5 の Media Source Extensions API をまだサポートしていないためです。
- だから私はMPEG-DASH(Apple以外のデバイス用)+ HLS(Appleデバイス用)の実装を行っています
- これは、クライアントに提供されるサーバー側で.mpd ( mpeg-dash で使用) と.m3u8 (HLS で使用) ファイルの両方を生成する必要があることを意味します。エンコードの目的でサーバー側で Node.js を使用しています。
mpeg-dashを使用するときに基本的に行うことは、ソースファイルと、クライアントに送信されるストリームに関する説明/ルールを含む構成ファイルから、さまざまなビットレートでさまざまなメディアファイルを作成することです。帯域幅によって異なります。
HLS にも同じロジックが適用されますが、mpeg-dash とは異なる拡張子を持つ構成ファイルが作成される点が異なります。
ビデオで 1020*720、800*600、400*300 などの 3 つの異なる解像度で 3 ビット レートをサポートする場合、サポートする 3 つのフォーマット (つまり、WEBM、 OGG、MP4)
したがって、クライアントによってアップロードされた 1 つのビデオについて、Apple 以外のデバイスと Apple デバイスをサポートするために、.mpd および .m3u8 ファイルを生成するとともに、合計で 3*3 = 9 つのビデオを生成する必要があります。
これは良い習慣だと思いますか?または、クロス ブラウザー アダプティブ ストリーミング ソリューションを使用するために欠けている大きなものはありますか?
ヒント/推奨事項/提案は大歓迎です。
ありがとう !
google-chrome - Buffer ルールに Strong を適用します。ビットレートの切り替えをやめる MPEG DASH
サーバーからのビデオのアダプティブ ビット レート ストリーミングに mpeg ダッシュを使用しています。
ffmpeg と MP4Box を使用して、ソース .mp4 から 4 つの異なる品質のビデオ ファイルを生成しました。
生成された .mpd ファイルには、以下のコードがあります
クライアント側で mpeg ダッシュ コンテンツを再生するために、dash.js と一緒に video.js を使用しています。問題は、Chrome 開発ツールからネットワーク条件をシミュレートすると、ビデオが完全に再生されないことです。
それは時々機能し、他の人には機能しません。たとえば、ストリームは 400kbps のビット レートで開始し、利用可能な十分な帯域幅を検出して 2500kbps に切り替えます。次に、帯域幅を再び 400kbps に下げると、ある時点でビデオがフリーズします。
ストリームを切り替えようとすると、再生の最初の数秒後にビデオがフリーズすることがあります。ffmpeg を介してビデオ ファイルを生成するとき、または MP4Box を介して .mpd ファイルを生成するときに、欠落しているコマンド ライン パラメーターがあると思います。
以下は、ffmpeg と MP4Box に使用するコマンドです。
また、MP4Box 経由で .mpd ファイルを生成しているときに、コンソールで警告を下回っています
ビデオの再生が停止するたびに、Chrome コンソールにこれらのログが記録されます
バッファが枯渇し、ビットレートの切り替えが停止する理由についての手がかりはありません。
プロセスで主に間違っていることはありますか?
mpeg-dash - メディア ファイルをセグメントに切り刻むことは、MPEG-DASH でどのように機能しますか?
MPEG-DASH の背後にある基本的な考え方は、メディア ファイルをさまざまなビットレートでエンコードできるセグメント (低、中、最良など) に分割することです。
事前にオフラインでそれを行う必要がありますか、それともファイルシステムにあるものをすべて読み取り、リアルタイムでエンコードするストリーミング HTTP サーバーが必要ですか?
http-live-streaming - MPEG-DASH と HLS フォールバックを使用してオンライン動画配信サービスを構築するための詳細なチュートリアルまたはケース スタディはありますか?
MPEG-DASH と HLS フォールバックを使用してオンライン動画配信サービスを構築するための詳細なチュートリアルまたはケース スタディはありますか? あちこちに小さな破片を見つけますが、それらをまとめることができません:(
qt - qtsampleplayer のビルド中にエラーが発生しました
qtsampleplayer のビルド中に次のエラーが発生します。
コマンドラインでlibz.soのパスを指定するなど、いくつかのオプションを試しましたが、助けにはなりませんでした
よろしくマヤンク
javascript - JwPlayer と MPEG DASH
mpeg ダッシュをサポートする jwplayer を動作させようとしていますが、問題が発生しています。
ページの読み込み時に次のエラーが発生します。
プレーヤーの読み込みエラー: 再生可能なソースが見つかりません。
jwplayer プレーヤーのコードは次のとおりです。
この問題の解決に役立つフィードバックをお待ちしております。
apache - DashCast ライブ ストリームの再生時の問題
デスクトップをキャプチャし、DashCast を使用して Apache サーバーでライブ ストリーミングしようとしています。オンデマンドでキャプチャして再生すると正しく再生されますが、ライブで再生するとMP4Client
黒い画面しか表示されず、キャプチャ中にエラー メッセージが表示されません。私が使用しているコマンドは次のとおりです。
そして、私は遊んでいます:
次の出力が得られます。
それで、私は何を間違っていますか?クライアントは明らかにサーバーに正しく接続し、プレーヤーを開きますが、画面には何も表示されません。GPAC バージョン 0.5.0 で Ubuntu 14.04 を使用しています。
download - MPEG DASH .mpd URL が与えられた場合、youtube_dl を介してすべてのメディア セグメントをダウンさせることは可能ですか?
MPEG DASH ダウンローダーを探していて、youtube_dl がヒットしました。
.mpd URLが与えられた場合、 youtube_dlを使用してすべてのメディア セグメントをダウンロードすることは可能ですか?