問題タブ [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.

0 投票する
1 に答える
1781 参照

mpeg-dash - MPEG-DASH サーバーの mpd ベース URL

サーバーとクライアントの両方であるローカル マシンに DASH プレーヤーを実装しようとしています。mpd とデータセットをローカル ホストに配置しました。mpd のベース URL を変更するにはどうすればよいですか?

0 投票する
2 に答える
16308 参照

ffmpeg - mp4box を使用したダッシュ コンテンツのライブ ストリーミング

メディア ソース拡張 API を使用してH.264コンテンツをHTML5にライブ ストリーミングしようとしています。

次の方法は非常にうまく機能します。

ffmpeg -i rtsp://10.50.1.29/media/video1 -vcodec copy -f mp4 -reset_timestamps 1 -movflags frag_keyframe+empty_moov -loglevel quiet out.mp4

その後: mp4box -dash 1000 -frag 1000 -frag-rap out.mp4

MP4Boxの出力 ( )を取得し、out_dashinit.mp4それを Web ソケット経由でチャンクごとに JavaScript クライアントに送信し、メディア ソース API にフィードします。

ただし、これはライブ コンテンツには適していません。

私が今やろうとしているのは、リアルタイムで最小限の待ち時間でそれを行うために単一のパイプラインを作成することです。FFmpeg を使用すると、stdout代わりに出力をリダイレクトしout.mp4てコンテンツを取得することができます。MP4Box をパイプラインに組み込むことが可能かどうかはわかりませんでした。

  1. MP4Box は、ファイル以外のソースから入力データを取得できますか?
  2. MP4Box は、そのようなコンテンツを (ファイルまたはその他のソースから) リアルタイムで取得しながら徐々に取得できますか? つまり、ストリームが 1 秒間停止すると、少し待ってから自動的に再開します。
  3. 同じ質問ですが、出力について: ファイルではないもの ( などstdout) に出力できますか? また、出力データの準備ができたらいつでもそれを取得して Web クライアントに転送できるように、徐々に出力できますか?基本的に、終わりのない破線の MP4 を生成します。
0 投票する
2 に答える
414 参照

manifest - MPEG-DASH をサポートするコンテンツ プロバイダー

MPEG-DASH の実際のコンテンツを探しています。Vod / アダプティブ ストリーミングに mpd マニフェストを使用しているコンテンツ プロバイダーを知っている人はいますか?

0 投票する
3 に答える
6121 参照

ffmpeg - FFMPEG で断片化された MP4 を作成する際のフラッシュと遅延の問題

次のコマンドを使用して、html5 ストリーミング用にフラグメント化された mp4 を作成しています。

  1. 「-i rtsp://172.20.28.52:554/h264」は、IP カメラからの rtp パケット ストリームのソースが h264 であるためです。テストのために、カメラは GOP が 1 に設定されています (つまり、すべてのフレームがキー フレームです)。
  2. 「-vcodec copy」は、トランスコーディングが不要で、mp4 への再多重化のみを行うためです。
  3. 「-movflags empty_moov+default_base_moof+frag_keyframe」は、メディア ソース拡張仕様に従ってフラグメント化された mp4 を作成します。
  4. mp4 を stdout に出力するには、最後に「-」を付けます。出力を取得し、Web ソケットを介して Web クライアントに送信しています。

私が解決しようとしている遅延の問題を期待して、すべてがうまくいっています。データが stdout から着信するたびに、到着のタイムスタンプを付けてログに記録すると、次の出力が得られます。

16/06/2015 15:40:45.239 取得したデータ サイズ = 24

16/06/2015 15:40:45.240 取得したデータ サイズ = 7197

16/06/2015 15:40:45.241 取得したデータ サイズ = 32768

16/06/2015 15:40:45.241 得られたデータ サイズ = 4941

16/06/2015 15:40:45.241 得られたデータ サイズ = 12606

16/06/2015 15:40:45.241 取得したデータ サイズ = 6345

16/06/2015 15:40:45.241 取得したデータ サイズ = 6339

16/06/2015 15:40:45.242 取得したデータ サイズ = 6336

16/06/2015 15:40:45.242 取得したデータ サイズ = 6361

16/06/2015 15:40:45.242 得られたデータ サイズ = 6337

16/06/2015 15:40:45.242 取得したデータ サイズ = 6331

16/06/2015 15:40:45.242 取得したデータ サイズ = 6359

16/06/2015 15:40:45.243 取得したデータ サイズ = 6346

16/06/2015 15:40:45.243 取得したデータ サイズ = 6336

16/06/2015 15:40:45.243 取得したデータ サイズ = 6338

16/06/2015 15:40:45.243 取得したデータ サイズ = 6357

16/06/2015 15:40:45.243 取得したデータ サイズ = 6357

16/06/2015 15:40:45.243 取得したデータ サイズ = 6322

16/06/2015 15:40:45.243 取得したデータ サイズ = 6359

16/06/2015 15:40:45.244 得られたデータ サイズ = 6349

16/06/2015 15:40:45.244 得られたデータ サイズ = 6353

16/06/2015 15:40:45.244 得られたデータ サイズ = 6382

16/06/2015 15:40:45.244 取得したデータ サイズ = 6403

16/06/2015 15:40:45.304 得られたデータ サイズ = 6393

16/06/2015 15:40:45.371 得られたデータ サイズ = 6372

16/06/2015 15:40:45.437 得られたデータ サイズ = 6345

16/06/2015 15:40:45.504 取得したデータ サイズ = 6352

16/06/2015 15:40:45.571 得られたデータ サイズ = 6340

16/06/2015 15:40:45.637 得られたデータ サイズ = 6331

16/06/2015 15:40:45.704 取得したデータ サイズ = 6326

16/06/2015 15:40:45.771 得られたデータ サイズ = 6360

16/06/2015 15:40:45.838 得られたデータ サイズ = 6294

16/06/2015 15:40:45.904 取得したデータ サイズ = 6328

16/06/2015 15:40:45.971 得られたデータ サイズ = 6326

16/06/2015 15:40:46.038 取得したデータ サイズ = 6326

16/06/2015 15:40:46.105 取得したデータ サイズ = 6340

16/06/2015 15:40:46.171 得られたデータ サイズ = 6341

16/06/2015 15:40:46.238 取得したデータ サイズ = 6332

ご覧のとおり、最初の 23 ライン (ビデオの約 1.5 秒のデータを含む) はほぼ瞬時に到着し、その後、ビデオが毎秒 15 フレームであるため、連続する各 2 ライン間の遅延は約 70 ミリ秒です。この動作により、約 1.5 秒の遅延が発生します。

特に各フレームはmp4内の独自のフラグメントであるため、ffmpegが最初の23フレームをメモリに保持する必要がある理由がわからないため、フラッシュの問題のように見えます。ただし、ffmpeg がこのデータをより高速にフラッシュする方法は見つかりませんでした。

誰か提案がありますか?

これは、 mp4box を使用したライブ ストリーミング ダッシュ コンテンツのフォローアップの質問であることに注意してください。

0 投票する
0 に答える
1138 参照

samsung-smart-tv - サムスンテレビのmpeg-dash配信

アプリ フレームワークと avplay プレーヤーを使用して、Samsung TV にコンテンツを配信する新しいアプリを作成しています。

使用しているコンテンツは、Mpeg-Dash でラップされた H.264 です。

以下のドキュメントに従っています

Samsung PlayReady ドキュメント

以下に提供されるplayerWrapperクラスがあります

JSFiddle

このクラスは、単にこのワークフローに従うメインの app.js ファイルから初期化されます

  1. playerWrapper init を呼び出す
  2. ライセンスの URL を設定します
  3. コンテンツの URL を設定します
  4. トークンを設定します
  5. コールプレイ

ドキュメントに記載されているように、PlayReady プラグインまたは SetPlayerProperty メソッドを使用すると、TV がライセンス サーバーを呼び出さないようです。

プレーヤーの仕様を見ると、Mpeg-Dash と H.264 の両方がサポートされていることがわかります。

プレーヤーの仕様

私の質問は

  1. この問題を回避するにはどうすればよいですか?
  2. 少なくとも出発点があることを取得できるかのように、このエラーのドキュメントを見た人はいますか?
0 投票する
1 に答える
1148 参照

ffmpeg - カメラのビデオ ストリームを Amazon S3 にアップロードし、それを Android フォンにダウンロードしたいと考えています。私はこれに完全に慣れていません。これどうやってするの?

私は本当にばかで、RTP/SIP は初めてです。マイクロプロセッサに接続されたカメラからクラウドにビデオをアップロードするために推奨されるスタックはありますか? MPEG DASH、Live555、ffmpeg など、私が目にしているすべてのものの違いは何ですか?

WhatsApp または Dropcam はどのようにライブ ビデオを送信しますか?

0 投票する
1 に答える
2514 参照

mpeg-dash - mpeg-dash ライブ プレイリストを実装するには?

ライブ ストリーム用に mpeg-dash ビデオ サーバーを実装しています。

チャンク ストリームと mpd へのチャンクの追加 - 動作、例を参照

しかし、スライドプレイリストを実装しようとすると

(たとえば、5 つのチャンクがあり、新しいチャンクが古いチャンクに置き換わります。現在、他の値を変更せずに、更新された SegmentTimeline を出力するだけです。)

プレーヤーは、.mpd の更新後に再生を停止します。

セグメント時間 - ストリームの実際のタイムラインです。(つまり、.m4* ファイルと同じ)

スライド プレイリストを使用したライブ ビデオに実装する必要がある属性/要素は何ですか?