mediakit v0.1.1をリリースした
最初に想定していた機能をひと通り実装し終えたので、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ではffmpegのCLI操作をコードで書くのを助ける機能をどんどん実装し、複雑なトランスコードのスクリプトをテスト可能な状態で記述出来るようにするというのが方針で開発をしております。