GStreamer は、メディア処理コンポーネントのグラフを作成するためのライブラリです。再生やオーディオ/ビデオ ストリーミングといった単純なものから、オーディオ処理 (ミキシング) やビデオ処理といった複雑なものまで、幅広いアプリケーションをサポートします。
GStreamer はプラグイン アーキテクチャを使用しており、GStreamer の機能のほとんどは共有ライブラリとして実装されています。GStreamer にはプラグインの登録とロードに関する機能のほか、すべてのクラスに対してベース クラスの形で基盤を提供するという基本的な機能が含まれます。プラグイン ライブラリを動的にロードすることにより、幅広いコーデック、コンテナー フォーマット、および入力/出力ドライバーをサポートします。
次の表で、GStreamer インターフェイス ライブラリで使用するプラグインについて説明します。
プラグイン | 説明 |
---|---|
v4l2src |
v4l2src は、ザイリンクス HDMI-RX や TPG などの V4L2 デバイスからビデオをキャプチャする目的で使用します。 |
kmssink |
kmssink は、DRM デバイスのプレーンに RAW ビデオ フレームを直接レンダリングするシンプルなビデオ シンクです。 パイプラインの例:
|
h26xparse |
H.26x でエンコードされたストリームを解析します。 パイプラインの例:
|
omxh26xdec | omxh26xdec は、エンコードされたビデオ フレームをハードウェア アクセラレーションによってデコードするビデオ デコーダーです。 パイプラインの例:
このパイプラインは、mp4 に多重化したファイルを示しています。エンコードされたビデオのエンコード フォーマットは h26x です。 注記: H264 デコードには omxh264dec を使用し、H265 デコードには omxh265dec を使用します。h264parse は H.264 でエンコードされたストリームを解析します。h265parse は H.265 でエンコードされたストリームを解析します。
|
omxh26xenc |
omxh26xenc は、RAW ビデオ フレームをハードウェア アクセラレーションによってエンコードするビデオ エンコーダーです。 パイプラインの例:
このパイプラインは、RAW データを送信する V4L2 デバイスからキャプチャしたビデオを示しています。データは h26x ビデオにエンコードされ、ファイルに保存されます。 注記: H264 エンコードには omxh264enc を使用し、H265 エンコードには omxh265enc を使用します。
|
alsasrc |
ザイリンクス HDMI-RX などのオーディオ デバイスからオーディオをキャプチャするには、alsasrc プラグインを使用します。 パイプラインの例:
このパイプラインは、ALSA ソースからキャプチャしたオーディオを ALSA シンクで再生します。 |
alsasink |
alsasink は、RAW オーディオ フレームを再生するだけのシンプルなオーディオ シンクです。 パイプラインの例:
このパイプラインは、ALSA ソースからキャプチャしたオーディオを ALSA シンクで再生します。 |
faad 1 |
デコーダー faad は、エンコードされたオーディオ フレームをデコードするオーディオ デコーダーです。 パイプラインの例:
このパイプラインは、 |
faac 1 | faac は、RAW オーディオ フレームをエンコードするオーディオ エンコーダーです。 パイプラインの例:
このパイプラインは、RAW データを送信する ALSA デバイスからキャプチャしたオーディオを示しています。データは aac フォーマットにエンコードされ、ファイルに保存されます。 |
xilinxscd |
xilinxscd は、ビデオ ストリームのシーン変化をハードウェア アクセラレーションによって検出する IP です。このプラグインは、入力ビデオ ストリームにシーン変化があるとアップストリーム イベントを生成します。これにより、エンコーダーは I フレームを挿入してビデオ品質を改善できます。 パイプラインの例:
このパイプラインは、RAW データを送信する V4L2 デバイスからキャプチャしたビデオを示しています。xilinxscd プラグインは、この RAW データを受け取ると動作中にストリームを解析し、エンコーダーにイベントを送信します。このイベントに基づき、エンコーダーはビデオ ストリームでシーン変化が検出されたかどうかを判断します。エンコーダーは、この情報を使用して I フレームを挿入し、ビットストリームをエンコードします。 注記: H264 エンコードには omxh264enc を使用し、H265 エンコードには omxh265enc を使用します。
|
appsrc | アプリケーションで appsrc エレメントを使用すると、GStreamer パイプラインにデータを挿入できます。ほとんどの GStreamer エレメントとは異なり、appsrc には外部 API 関数があります。 |
appsink | appsink は、多くの種類のメソッドをサポートしたシンク プラグインで、アプリケーションはこれを使用してパイプライン内で GStreamer データを管理できます。ほとんどの GStreamer エレメントとは異なり、appsink には外部 API 関数があります。 |
queue |
max-size-buffers 、max-size-bytes 、max-size-time のプロパティで指定した上限値のいずれか 1 つに達するまでデータをキューに格納します。 |
|
詳細は、 『H.264/H.265 Video Codec Unit LogiCORE IP 製品ガイド』 (PG252) を参照してください。