次のことを達成したいのですが、それが可能かどうかはまだはっきりしていません。
現在のシナリオ:
誰かがオーディオ付きのビデオを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などの別のストリーム形式を使用する必要がありますか?
Liquidsoap のようなものを使用しているように聞こえます。これは、ストリーミングサーバーがメタデータをストリームに挿入するトリックを実行するためです。探索するメタデータを操作するための多くのオプション。
クライアント側のデコードについては、Service Worker内でJavaScriptで読み取り可能なストリームを使用して、サーバーの出力をメタデータ/ビデオに分割し、必要に応じて処理することができます。
私は、無限のmp3ストリームでインバンドメタデータを処理するために同様のことを行いました。あなたはそのためのコードを見つけることができます ここ