Lionに慣れましたか? 最初の通過点は、スクロールが逆方向になったこと、でしょうか。設定を変えれば以前の方向に戻せますが、今後のことを考えると、デフォルトのまま使い続けたほうがいいと思います。しかしこれに慣れたら慣れたで、サブマシンで健在のSnow Leopardを使うとき困ったことになるのですが。

さて、今回は「avconvert」。AppleのWebサイトを見ても、250以上という新機能のなかにはカウントされていないが、なかなかどうして、Automatorやシェルスクリプトで便利に使えそうなフォーマット変換コマンドなのだ。

謎のフレームワーク「CoreMedia」

250を超える新機能……はLionに使われているキャッチコピーだが、あながち大げさではない。語られていない機能も多くあり、新たに用意されたフレームワーク「CoreMedia」もその1つだ。Snow Leopardの時点でなかったものが、Lionでは/System/Library/Frameworksディレクトリに「CoreMedia.framework」として存在している。

CoreMediaについては情報が少なく、あったとしてもNDAで厚く保護された開発者向け情報のため、ここで語ることは難しい。言えるとすれば、開発ツールに付属のotoolコマンドで調べると、新しいQuickTime Playerなどいくつかのアプリケーションが、このフレームワークの機能を利用していることがわかるということだ。

今回取り上げる「avconvert」も、CoreMediaフレームワークにリンクしている。逆にいえば、avconvertコマンドの機能を調べることで、CoreMediaフレームワークの機能の一端を見ることができる、と言えるだろう。

Lionに付属の「QuickTime Player」は、オーディオのみのエクスポートが可能になるなど書き出し機能が強化されている

avconvertコマンドの使い方

avconvertコマンドには「man ~」で表示されるはずのオンラインマニュアルがなく、「--help」オプションで表示される少々読みづらい文字列しか情報がない。しかし、その用法やオプションを眺めれば、かなり柔軟に使えそうな動画編集/トランスコード用コマンドであることがわかる。

基本的には、以下のコマンド実行例のように、「--preset」オプションに続けてプロファイル名を、「--source」オプションに続けてトランスコード前のファイル名を、「--output」オプションに続けて変換後のファイル名を指定すればいい。トランスコード可能なフォーマットは、ヘルプドキュメントに明記されていないが、同じCoreMediaフレームワークを利用するQuickTime Playerが対応するものであれば受け付けるようだ。

$ avconvert --preset Preset640x480 --source original.mpg --output out.mov

トランスコード中はこのような情報が出力される

このコマンドの要諦は、プロファイルの使い方にある。有効なプロファイルは、以下のとおりコマンドを実行すれば確認できるが、プロファイルの詳細なデータはトランスコードを実行すればわかる。表1に挙げたデータは、1,920×1,080ピクセルのMPEG-4ムービーをトランスコードして確認したものだ。なお、MPEG-1(352×240ピクセル)のように、そもそもプリセットが定める値に満たないムービーは拡大されず、オリジナルのピクセルサイズ/アスペクト比にあわせてトランスコードされることを確認している。

なによりのポイントは「高速性」。マルチスレッドに対応、マルチコア搭載のCore iシリーズに最適化されているのだ。プロセスのサンプルを取得してみると、映像のエンコード/デコードには前述したCoreMediaの機能が利用されていることや、Grand Central Dispatch (GCD)による並列化処理が行われていることがわかる。

avconvertコマンドのオプションを調べると、フレームレートやコーデックの指定など、細かな処理にも対応しているようだ。同じCoreMediaの機能を利用するアプリケーションとして、LionにはQuickTime Playerが用意されているので、敢えてavconvertコマンドを選ぶ必要はないが、スクリプトでの自動化処理などに活用する手もある。その際、用意されたプリセットが重宝されるはずだ。

トランスコード中に「アクティビティモニタ」を起動したところ。マルチスレッド化されていることがわかる

プロセスのサンプルを取得したところ。GCDやCoreMediaの機能が利用されていることがわかる

表1:avconvertコマンドで有効なプリセット
(1,920×1,080ピクセルのMPEG-4ムービーでテスト)
プロファイル名 コーデック ピクセル数 平均データレート
PresetAppleM4VCellular H.264(Baseline) 400×225 220kbps
PresetAppleM4V480pSD H.264(Main) 640×360 2,300kbps
PresetAppleM4ViPod H.264(Baseline) 640×360 1,500kbps
PresetAppleM4VWiFi H.264(Baseline) 480×270 807kbps
PresetAppleM4VAppleTV H.264(Main) 960×540 3,446kbps
PresetAppleM4V720pHD H.264(Main) 1,280×720 7,000kbps
Preset640x480 H.264(Main) 640×360 2,300kbps
Preset1280x720 H.264(Main) 1,280×720 7,000kbps
Preset1920x1080 H.264(Main) 1,920×1,080 9,999kbps
PresetAppleM4A オーディオのみAACへトランスコード、映像は変換せず
PresetAppleProRes422LPCM オーディオのみLPCMへトランスコード、映像は変換せず
PresetCAFAAC オーディオのみAACへトランスコード、映像なし
PresetCAFLPCM オーディオのみLPCMへトランスコード、映像なし