3

同じハードウェア リソースを同時に共有する GStreamer フレームワークに基づいて (複数の) アプリケーションを作成したい (ただし、最初にその方法を理解したい)。

例: ビデオ デコード用の HW アクセラレーションを備えたハードウェアがあります。ハードウェア アクセラレーションを使用して、異なるビデオ ストリームをデコードできる 2 つのアプリケーションを同時に起動したいと考えています。もちろん、HW がそのような要求を処理できると仮定します。これを行うための適切なドライバー (GStreamer 要素ではない) がありますが、別のプロセス間でそのようなリソース共有をサポートする GStreamer 要素を記述する方法は?

どこから始めればよいか、リンク、提案をいただければ幸いです...

4

2 に答える 2

1

したがって、HW デコーダーを制御し、複数のソースからのストリームをデコードする単一のプロセスが必要です。

デーモンを構築することをお勧めします。おそらくそれ自体も GStreamer に基づいています。gdppay と gdpdepay は、ソケットを介してデータをデーモンに渡したり戻したりする非常に簡単な方法を提供します。デーモンは、指定されたポート (または UNIX ソケット) での接続を待機し、接続ごとに仮想デコーダーを開きます。個別のアプリケーションのビデオ デコーダ要素は、内部でデーモンに接続し、デコードされたビデオを取得します。

于 2012-08-25T06:55:01.580 に答える
1

同時にアクセスできるハードウェアがあります。したがって、同時にアクセスする 2 つの gstreamer 要素が機能するはずです。ここには Gstreamer 固有のものは何もありません。

デコード要素を書きたいとします。これは他のデコード要素と同じで、ハードウェアに正しくアクセスします。ドライバーは同時アクセスを処理する必要があります。出発点は Gstreamer プラグイン ライターズ ガイドです。

于 2012-08-23T16:40:36.123 に答える