web-dev-qa-db-ja.com

ライブビデオストリームへのメタデータの挿入

次のことを達成したいのですが、それが可能かどうかはまだはっきりしていません。


現在のシナリオ:

誰かがオーディオ付きのビデオをOBSを介してメディアサーバーにストリーミングし、クライアントがWebサイト経由で接続します。

[OBSストリーム/ビデオストリーム]-> [AWS /外部ストリーミングサービス]->クライアント


必要なシナリオ:

カスタムメディアサーバーを介してこのストリームをキャプチャし、特定の瞬間に特定のメタデータを挿入して操作しますライブストリーム中liveの重要性に注意してください。

[OBSストリーム/ビデオストリーム]-> [メタデータを挿入するためのカスタムのNode.jsサーバー]-> [AWS /外部ストリーミングサービス]->クライアント


アイデア:

たとえば、ストリームをいくつかのポップアップに同期させたいという考えです。デフォルトのプロトコルストリームはOBSからのRTMPのようですが、これは変更できる可能性があります。ライブストリーム中の特定の時間に、Webサイトのhtml5ビデオプレーヤーはこれらのタグをライブストリームから(video.jsなどの追加のライブラリを介して)読み取り、JSアプリケーションにテキストを表示するように指示できます。 結局のところ、ビデオストリームをテキストストリームに同期することになります(たとえば、WebSocket接続から)

潜在的なソリューション:

  • ID3タグ。 MP3ファイルのID3タグについて読みましたが、完全な.mp3ファイルpfrontが必要であり、ストリームには使用されないため、これは私が探しているものではないようです( Dynnamically Inject FFMPEGライブストリームのID )。私が欲しいのは、このストリームに動的にメタデータを注入することです。たとえば、たとえばデータベースへの参照で十分であるIDを(動的に選択された)いつでも挿入できます。

  • LTC/Linear Time Code/SMPTEこれは、node.jsを使用してビデオストリームに何らかの形で埋め込むことは可能ですか?これにより、タイミングをクライアントのIDと一致させることができます。

これは、音声付きの着信ビデオストリームを前提として実行できますか?もしそうなら、ストリームのフォーマットは何ですか、そしてどのようにメタデータを注入しますか?


[〜#〜] edit [〜#〜]:ブラウザでFlashがなければRTMPはサポートされないようです。これはノーゴーなので、HLS/FLVなどの別のストリーム形式を使用する必要がありますか?

6
Captain Obvious

Liquidsoap のようなものを使用しているように聞こえます。これは、ストリーミングサーバーがメタデータをストリームに挿入するトリックを実行するためです。探索するメタデータを操作するための多くのオプション。

クライアント側のデコードについては、Service Worker内でJavaScriptで読み取り可能なストリームを使用して、サーバーの出力をメタデータ/ビデオに分割し、必要に応じて処理することができます。

私は、無限のmp3ストリームでインバンドメタデータを処理するために同様のことを行いました。あなたはそのためのコードを見つけることができます ここ

4
miknik