2007年5月8日火曜日

ちょっと作ってみた

え〜このところずっと頑張ってるLinuxでのキャプチャボード関連のお話です。とりあえず、数日前のポストで「Linuxはx.264への変換がGUIでできない」という趣旨の内容を書きましたが、訂正します。ばっちりありました!
というか、私自身そのパッケージをインストールしてはいたのですが、バージョンがちょっとだけ古かったようです。しかもデフォルトではOFFにしているリポジトリ(まーLivnaなんですが)に登録されていたパッケージで、アップグレードを意図的に行わなければならなかったのも気づかなかった点だったり。
まぁそこいらはおいといて、x.264へのエンコードはAvidemux2を用いれば可能であることが分かりました。このソフトの扱い方はWindowsのVirtualDubによく似ています(AviUtilの方が近いのかな?)。おかげで操作感で戸惑うこともなく。各種フィルタも必要な分はきちんと取り揃えてある印象でした。なんせ主要なコーデック形式には対応しているため手軽にエンコードできるのが魅力。コマンドラインでエンコードするにはエンコードオプションがチョー長ったらしいので覚えきれないし打ち間違えそうだし・・・。GUIの実力をいかんなく発揮してくれる瞬間でしたね(笑)
で、ソースをx.264を始め好きなコーデックでエンコードできることが分かりましたので、次にソースの取得。キャプチャボードからエンコードできることは既に確認済ですが、これがまたコマンドが長い。べらぼうに長い。
例えば、うちのキャプチャボードのS-Video端子から動画をHuffYuv形式で30秒間キャプチャしようと思うと次のようなコマンドを入力することになります。
$ mencoder tv:// -tv driver=v4l2:input=3:norm=NTSC -ovc lavc -lavcopts vcodec=huffyuv:vstrict=-1 -endpos 30 -nosound -o huffyuv.avi
え〜、これ1行です(ぉ んなもんいちいち覚えてられるかっちゅーねん。ということで、こんだけ長ったらしいコマンドを覚えていられる訳もないのでコマンドランチャを作成することに。
単純に上のコマンドを記述したシェルスクリプトを用意しても構わないのですが、それだと仮にチャンネルやコーデック形式を変更したいときなどにスクリプトを書き換えなくてはならず手間です。そこで「Kommander」というツールを使ってGUIダイアログを作成することにしました。
KommanderというのはVisualBasicライクなRADツールで、ひっじょーに手軽にGUIアプリケーションを作成することが出来ます。今回のようなランチャー作成にはもってこいでしょうね。なんせ実行内容にシェルスクリプトをそのまま記述できるので。他にもPythonやPHP形式でも書けるそうですがそこまでは確認せず。まぁコマンドラインを覚えきれないから作るツールですしねぇ。高等なプログラム言語を持ち出すまでもないといったところでしょうか(笑)
月に遊ぶ Kommanderチュートリアルのサイトを参考にダイアログを作成していきました。特に困るようなところもなくあっけなく完成。完成したツールは下の画像。
gmencoderKmdr.jpg
本来ならいくつかのコーデック形式やチャンネルリストを登録しておこうかと思ったのですが当面使いそうにもなかったので省略(ぁ これならシェルスクリプトでも良かったような気もしなくはない、が作ることに意義があるのさきっと!!!
しかし、己の才能のなさには辟易。この程度ならなんとか作れるけどもう少し規模が大きくなるとすぐ破綻しちゃうからなぁ。もっと俯瞰してものを見られるようにしないとなぁ・・・^^;
まぁなんにせよこれでキャプチャとエンコードの手段が揃いました。いや〜、もうほんとWindowsなんてゲーム機になっちまったなぁ・・・。Fedora7ではKVMが搭載されるってことだし、モジュールの更新の手間が省けるようになるからQEMU形式でもXPイメージ持っておこうかしら・・・(笑) それかM$が公開してるテスト用OSイメージでもいいか。時限装置くらい付いてるだろうけれど時計適当に操作したら動くんじゃね? って、それはEULA違反か?^^;


やっぱり努力してる人はなにもしてない人を認めませんよ


ef -the first tale- 新藤 景
認めないし、認めたくないよなぁ。「努力に勝る、才能n」ってのはまた明日くらいにでも使おうか、うん。ネタ切れ気味だし(苦笑)