自分メモ、ということで控えを以下に。
- GstElement は gst_element_factory_make という手続きを使う
- element の参照カウントが 0 になると解放される
- GObject て何
- gst-inspect の出力にはファクトリ名が含まれる
- gst-inspect にファクトリ名を渡すとプロパティが出力される
- wavenc という plugin があるな、Encode raw audio into WAV とのこと
- gstreamer0.10-plugins-good は入れておくべきな模様
ええと、マイク入力から wav に、なソレとしては
gst-launch alsasrc ! wavenc ! hoge
みたいなカンジになるのかどうか。
あら
コマンドとして実行しなくても一つのプログラムとして記述できるのか。
結局
plugin writer’s guide なるソレを確認中です。とりあえず以下を実行してたりなんかして。
$ git clone git://anongit.freedesktop.org/gstreamer/gst-template.git
gst-plugin/src 配下のソレ達が plugin なソースの雛形らしい。
filesync というプラグイン
名前付きパイプ使って云々、という策を思いつくなど。
その後
alsa な USB マイクから入力した音を wav にエンコードしてファイル化することはできました。まず aplay -l でデバイス確認して以下。
$ sudo gst-launch alsasrc device=hw:1 ! wavenc ! filesink location=xx.wav
あるいはフォーマットをアレするのであれば以下な例が man に書いてあるようです。
$ gst-launch osssrc ! 'audio/x-raw, rate=[32000,64000],
format={S16LE, S24LE, S32LE}' ! wavenv ! filesink location=xx.wav
Building a Plugin 再読
Chapter 2 から読んだ方が良さげ。つうか GObject 云々、ってあたりからスデに蕁麻疹がorz