2010年4月4日日曜日

Ubuntu奮戦記 その5 wine+avisynth

さて、再生環境が整ったので、次はフィルタリングツールとエンコーダーである。

フィルタは非常に簡単。
wine+AviSynthで決まりだ。
launchpadのwineのPPAを登録してインストールし、wineからAviSynthをインストールすればよい。

そもそもLinuxネイティブなエンコードツール類にはまともに使えそうなモノがない。
ffmpegやmplayerでもフィルタはかけられるが、品質や数に関しては正直今ひとつだし、だいたいプレビューなしでどうやってtrimしたり細かい調整したりすればいいというのか。
え、Avidemux? うーん…
AvidemuxはWindowsでなら何度か使ったことがあるが、残念な印象しか持っていない。
残念その1:遅くて不安定
gtk+であれQtであれクロスプラットフォームなGUI一般に言えることだが、これらをWindowsで動かすととにかく遅い。これがmkvmergeGUIなら遅いだけですむが、Avidemuxは遅い上に不安定でクラッシュしまくる。
まあQtアプリもLinux上なら結構速いようだから、これは見当違いなのかもしれない。
残念その2:よいフィルタが少ない
mplayerよりはフィルタも多いが、それでも数が少ないし、品質はイマイチ。
例えばリサイザーにしてもsplineやNearestNeighborだって使いたいことがあるのに、Bilinear、Bicubic、Lanczosしかない。わざわざAviSynthのリサイザーとswscale(MPlayerResize)の2種類用意するくらいなら、もっと種類増やせよ。だいたいswscaleにだってSplineとかあるじゃない。
残念その3:muxerが変
ffmpegと同じlavf使ってるはずなのに、出力が変である。
これでエンコした動画をPSPで再生しようとすると蹴られた。同じ動画をmp4boxやffmpegでremuxすればちゃんと再生できたのに、どーなってるの?(ひょっとするとここ数ヶ月の更新で治ってるのかもしれないけど)
残念その4:処理がYV12オンリー
AviSynthのように色空間を使い分けられるか、さもなくばAviUtlのYC48のような過剰ともいえる高品質処理が出来ないのでは、結局満足出来ないのですね。

avsのエディタはとりあえずUbuntu標準のgeditを使い、プレビューはwine経由でVirtualDubを使うことにした(AvsPはwineでも動かない)。ことの発端がvim用syntax fileなんだからvimを使うのが筋なのかもしれないが、あれになれるのはなかなか難しそうなので、とりあえず保留…。
geditは結構いいと思う。notepad++ほどではないが、機能は一通り揃っているし、拡張性も高そうである。それにこれ以上の高機能を求めるなら「だったらemacs使えよ」と言われてしまうだろう。
VirtualDubはWindowsと同様サクサク動く(ただ、メニューのフォントが見にくいのが難点か)。
ためしにAviUtlもwineで動かしてみたら、一応動いた。必要なruntimeやdll(.NETとか)をインストールすれば、こちらも普通に使えるのかもしれない。今度試してみよう。

問題はcodecである。
Windows用のVCMはインストールしても使えるものと使えないものがあるようだ。
とりあえずUtVideoは使えなかった。正確には、インストールは出来たがULRG以外はVirtualDubのダイアログボックスに表示されなかった。
ffdshowはインストール出来たし、vfwも使えるようだが、それなら入力はffms2、出力はffmpegを使ったほうがいいだろう。
どうやらLinux上ではffmsやDGMPGDecのように、フィルタ自身がデコーダーを内蔵するタイプのソースフィルタ以外は使い物にならないと思った方がいいらしい。ffmsの最大の開発理由は「Linux上における安定したソースフィルタの不在」であると聞いたことがあったが、それが実感できた。

次回に続く

2010年4月3日土曜日

Ubuntu奮戦記 その4 mplayerビルド

FFmpeg is a versatile tool to encode and convert a multitude of video and audio formats. x264 encodes high-quality video superior to other popular encoders.

Although FFmpeg and x264 are available in the Ubuntu repositories, you may need to compile from source. For example, the ffmpeg-user mailing list requires that you use the latest FFmpeg svn before asking for help. Since FFmpeg and x264 are updated frequently, you may also like to have the bleeding-edge for encoding videos. Also, FFmpeg in the Ubuntu repository may not support necessary encoders, decoders, and formats.

以上、HOWTO: Install and use the latest FFmpeg and x264より引用。

前回、筆者はUbuntuレポのmplayerをガラクタと呼んだ。理由は上記のとおりである。
x264もffmpegもmplayerも開発は活発に続いており、常に機能の向上とバグフィックスが進められている。もし使用中になんらかの不都合に直面したとしても、使っているモノが新しくなければ助けを求めても鼻も引っ掛けてもらえない。
"It's outdated."
"Update your x264(,ffmpeg or mplayer)."
こんなやりとりをここ数ヶ月で何度目にしたことか。

まあ、これがGIMPとかなら、何の疑問も持たずにレポのもの使うんですがね(ヲイ

さて、mplayerのビルドである。
筆者はx264とffmpegならmsys+mingwでビルドしたことがあるが、mplayerは一度もない。
ものが単なるエンコーダーやデコーダーではなくプレーヤーであるから、必要になるツールやライブラリも多くなるであろうことは簡単に想像がつく。一体何が要るんだろ?

<JEEB>    :Chikuzen氏はもうmplayerはビルドしましたかな?
<Chikuzen>:まだ、ただいまビルドに必要なものを調査中
<JEEB>    :sudo aptitude build-dep mplayer
<JEEB>    :sudo aptitude install git-core subversion
<JEEB>    :あとはgit clone git://repo.or.cz/mplayer-built.git
<Chikuzen>:それだけ?
<JEEB>    :うん
<JEEB>    :追加であと二つくらい要るような憶えがあるけど、なんだっけ
<Chikezen>:まあいいや、とりあえずやってみる
<Chikuzen>:えーと、READMEのとおりに
<Chikuzen>:まず./enable-mt
<Chikuzen>:次に./init
<Chikuzen>:そしてmake
<Chikuzen>:エラーで止まった。autoreconfというコマンドがないと言ってる
<JEEB>    :思い出した。autoconfとlibtoolが要る
<Chikuzen>:あとよく見るとyasmもnoになってるね
<JEEB>    :要るの?
<Chikuzen>:アセンブラなしではつらいでしょ
<JEEB>    :ならsudo aptitude install autoconf libtool yasm
<Chikuzen>:ふむ、./cleanしてもう一度make
<Chikuzen>:よし、今度はエラーでないぞ
<Chikuzen>:それにしてもこれほど楽だとはなぁ、msys+mingwが馬鹿みたいだ
<JEEB>    :uau氏のブランチはmkv対応も強化されてるし、ビルド用スクリプトもあるから楽ちん
<Chikuzen>:お、ビルド終わった
<Chikuzen>:PSP用にエンコしたやつでテストしてみる
<Chikuzen>:cd ./mplayer && ./mplayer ~/Change_vs_Neo_ep02.mp4

<Chikuzen>:おお、上手くいったみたい
<JEEB>    :おめ
<Chikuzen>:thx

ここから先が長かった…

次回に続く