mediakit v0.1.1をリリースした

github.com

最初に想定していた機能をひと通り実装し終えたので、v0.1.x*1リリースしましたです。

最後に実装したのがffmpeg -formatsとか-codecsとかで出力されるフォーマットをパースして、現在利用しているffmpegで利用できるコーデックやエンコーダーデコーダーの情報を定数として利用できる機能です。

こんな感じで利用できます。

# .createでシングルトン生成
ffmpeg = Mediakit::FFmpeg.create

# インスタンスごとに初期化処理が行われ、各リソースのインスタンスが定数として定義されていく
ffmpeg.init

# ffmpeg.init後に利用できる
Mediakit::FFmpeg::AudioCodec::CODEC_MP3 #=> #<Mediakit::FFmpeg::AudioCodec:0x007fb514040ad0>
Mediakit::FFmpeg::AudioCodec::CODEC_MP3.name #=> "mp3"
Mediakit::FFmpeg::AudioCodec::CODEC_MP3.desc #=> "MP3 (MPEG audio layer 3)"
Mediakit::FFmpeg::AudioCodec::CODEC_MP3.encoders #=> [#<Mediakit::FFmpeg::AudioEncoder:0x00000001e6c8b8 @name="libmp3lame", @desc="libmp3lame MP3 (MPEG audio layer 3) (codec mp3)", @type=:audio, @frame_level=false, @slice_level=false, @experimental=false, @horizon_band=false, @direct_rendering_method=false>]
...

これを利用すると、コーデック名をプログラムに記述するときに、現在のffmpegでそのコーデックが使用できるかどうかがわかるし、コーデック名を利用したffmpegのオプションを構築するコードを書くのにも便利そうです。

このようにmediakitではffmpegCLI操作をコードで書くのを助ける機能をどんどん実装し、複雑なトランスコードのスクリプトをテスト可能な状態で記述出来るようにするというのが方針で開発をしております。

*1:v.0.1.0でリリースしようとしたのだけど一番最初にv0.0.1としてリリースしようとした時にv0.1.0としてあやまってリリースしてしまったのでrubygems.orgの仕様でv0.1.0を上書きできない。