LoginSignup
98
103

More than 1 year has passed since last update.

GStreamer というマルチメディアフレームワーク

Last updated at Posted at 2015-11-23

そもそも Gstreamer って何?

gstreamer

公式: http://gstreamer.freedesktop.org/

GStreamer はオープンソースのマルチメディアアプリケーション開発用フレームワークです。
例えば、動画のストリーミング配信、複数の動画の合成、音楽のカラオケ化など、さまざまなことができます。

どうせ Linux でしか動かないんでしょ?

そんなことありません。現在、GStreaemer が動作するのは Linux, Android, Windows, Mac OS X, iOS... などです。

ご存じかもしれませんが、Raspberry Pi, Armadillo-800 などの、Linux が乗った組み込みボードでも動きます。

また、プラットフォームに依存する部分がキレイに切り分けられているため、最初は PC で開発してARMボードやAndroidアプリへポーティングするといった手法も取ることができます。

GStreamer が提供してくれるもの

GStreamer が提供くれる範囲は青い部分です。

Overview

  • an API for multimedia applications
  • a plugin architecture
  • a pipeline architecture
  • a mechanism for media type handling/negotiation
  • a mechanism for synchronization
  • over 250 plug-ins providing more than 1000 elements
  • a set of tools

ここで注目ほしいのは、GStreamer が Pipeline architecture を提供するということ、1000 以上のエレメントが用意されているということです。

なので、アプリ開発者はこの Pipeline architecture に従い、Element を組み合わせ、Pipeline を作ればコアな部分を完成させることができます。

用意されているエレメントはOverview of available plug-insから見れるので欲しい機能があるかを眺めてみてください。

もちろん、Element 自体を開発するためのマニュアル Plugin Writer's Guide というのも用意されています。

強力なツール

GStreamer はライブラリですが、gst-launchgst-inspectというツールが用意されているため、簡単なマルチメディアアプリであればゼロコーディング(?)で作成することができます。

例えば、音楽ファイルを再生するだけならばこれでOKです。

$ gst-launch-1.0 filesrc location=music.mp3 ! decodebin ! audioconvert ! autoaudiosink

gst-launch-1.0 がツール。filesrc, decodebin, audioconvert, autoaudiosink が Plugin に含まれる Element と Bin で、location=filesrc のプロパティです。

シェルで | を使ってコマンドの処理結果を渡していくように、 GStreamer では Element の処理結果を ! で次の Element に渡していきます。

ちなみに、Bin は複数の Element がまとまったもののことを指します。
詳しくはこちら: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-basics-bins.html

gst-launch に与える Element や Bin を探すには、Overview of available plug-insを参照する以外に、gst-inspect というものがあります。

filesrc に location 以外にどんなプロパティがあるのかなどを調べることができます。

$ gst-inspect-1.0 filesrc

はじめるには?

GStreamer のインストールは簡単です。Windows であればインストーラーが用意されていますし、OS Xであれば brew でインストールできますし、Linux であれば各パッケージマネージャ(aptやyum,pacmanなど)からインストールすることができます。詳しくは Installing GStreamer を参照してください。

Installing GStreamer | GStreamer documentation

https://gstreamer.freedesktop.org/documentation/installing/index.html

GStreamer のインストールが終わったらまずは、GStreamer Application Development Manual を読んでみるといいでしょう。

中でも、Part 1. About GStreamer は大切です。あなたがgst-launchしか使わなくとも読んでおくべきです。

Applicaiton Development Manual が少々退屈になってきたら、チュートリアルを使って GStreamer を体で覚えましょう。

Basic tutorials を通して行うことで C言語 で GStreamer アプリケーションが書けるようになります。

まとめ

この記事で紹介したかったことは3つ

  • GStreamer は複数のプラットフォームで動くマルチメディアフレームワーク
  • ツールが充実しているのでプロトタイプ作りは超簡単
  • ドキュメントも整備されているので勉強もしやすい (英語だけど)

以上、最後まで読んでくださりありがとうございました!

98
103
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
98
103