第 1章GStreamer とは

GStreamer は、ストリーミングメディアアプリケーションを作成するためのフレームワークです。基本設計は、オレゴン大学院大学 (Oregon Graduate Institute) のビデオパイプラインに基づいていますが、DirectShow のアイデアもいくつか採り入れています。

GStreamer の開発フレームワークでは、任意の種類のストリーミングマルチメディアアプリケーションを記述することができます。GStreamer フレームワークは、音声または動画、あるいはその両方の処理を行うアプリケーションを簡単に記述できるよう設計されています。GStreamer は音声と動画だけに限らず、あらゆる種類のデータフローを処理することができます。パイプライン設計は、適用されたフィルタの生成物に対してほとんどオーバーヘッドを加えることがないように作られています。このため GStreamer は、レイテンシに対する要求度が高いハイエンドオーディオアプリケーションの設計にも対応可能な優れたフレームワークとなっています。

GStreamer の最もわかりやすい使い方の 1 つは、GStreamer を使ったメディアプレーヤーの作成です。GStreamer にはメディアプレーヤーを作成するための各種コンポーネントがすでに含まれており、MP3、Ogg/Vorbis、MPEG-1/2、AVI、Quicktime、mod など、さまざまな形式を非常に幅広くサポートすることができます。しかし、GStreamer は単なるメディアプレーヤーではありません。GStreamer の主な利点は、さまざまなプラガブルコンポーネントを混在させて任意のパイプラインに組み込みことができ、このことを利用して本格的な動画/音声編集アプリケーションを作成できる点にあります。

GStreamer フレームワークのベースとなる各種プラグインは、さまざまなコーデックおよびその他の機能を提供します。これらのプラグインは互いにリンクさせて 1 つのパイプラインの中に配置することができます。そしてこのパイプラインが、データフローを規定します。こうしたパイプラインは GUI エディタで編集して XML で保存することもでき、最小限の労力でさまざまなパイプラインライブラリを作成できるようになっています。

GStreamer のコア機能は、プラグイン、データフロー、およびメディアの種類の処理やネゴシエーションのためのフレームワークを提供することにあります。また、さまざまなプラグインを使ってアプリケーションを作成するための API も提供しています。

GStreamer が提供するものは、具体的には以下のとおりです。

GStreamer プラグインは、以下のものに分類されます。

図 1-1. GStreamer の概要

GStreamer は以下のパッケージから構成されています。