手元にガラケーで撮影したASF形式のムービーが大量にあって、以前から変換しようと思っていてようやく変換したので手順を記事にしてみる。複数のASFファイルをH.264+AAC+MP4形式に変換するのが今回の目的。私が今回作業をした環境はMac OS X 10.5 Leopardだった。
1. MacPortsをインストール
ここの “dmg” disk images for ... から各自の環境に合うMacPortsをダウンロードすること。dmgファイルのダウンロードが完了したらダブルクリックでインストールできる。
2. ffmpegをインストール
変換の前にMacPortsで必要なものをインストール。ターミナルから以下のコマンドを入力。今回は動画の変換にffmpegを利用する。ffmpegのインストール時に+x264 +faacをつけるのを忘れないこと。
3. 1つの動画を変換してみる
変換するASFファイルのプロパティはQuickTimeのムービーインスペクタで確認すると以下のように表示された。ビットレート220kbpsと出ているが、ffmpegでは動画は400kbps、音声は32kbpsと表示されている。これはPerianでうまくASFファイルを読めていないせいかもしれない。
ファイル名 | MOLxxx.ASF |
オーディオフォーマット | Microsoft G726, モノラル, 8kHz |
ビデオフォーマット | Microsoft ISO MPEG-4 V1.1, 176x144, 15fps |
ビットレート | 約220kbps |
以下が、変換をおこなうコマンド。
4. 大量の動画をまとめて変換する
使用したRubyスクリプト。ファイルはこれ。以下をコピペするのが面倒な人は使ってください。中に2つファイルが入っていて、asfconv.rbが変換スクリプトです。
アクセス権限を変更して実行する。
ビットレート(-bと-abの後ろの値)は各自好きな値にする。私の場合は、もともと解像度がQCIFな上に画質もちょー低かったから128kbpsとかなり低めに設定した。これで変換した動画をiPhoneにメールで送信して視聴できることを確認した。
細かい設定は全くしていないのだが、ログを見るとどうやらCABACやBフレームは有効になっているようだった。iPhone 4はメインプロファイルまでサポートしているから見れたのかもしれない。ベースラインプロファイルまでしかサポートしていない3G/3GSだとこの設定では視聴できない可能性がある。3G/3GSで視聴可能な動画を作るにはオプションに"-coder 0 -bf 0"を加えれば見れるかもしれない。デフォルトの設定だと、ファイル中に記述してある動画のプロファイルはハイプロファイルになるみたいだけど、このままでもiPhone 4で見れたからiPhoneの場合はそのプロファイルで使用しない機能をオフにすればよいのかもしれない。もし、この方法で3G/3GSで試した方がいて見れない場合はレポートもらえるとありがたいです。遠慮なく文句行ってください。
5. 結果を見る。
で、変換した動画のファイルサイズの比較を10個ほど抜粋。60個ある動画で平均して35%のサイズに変換できた。(128 kbps+ 16kbps)/(400kbps + 32kbps)=0.3333...だから妥当な結果だろう。以下の表はasfconv.rbに付属のconvstat.rbで確認できる。
Input file | Size | Output file size | Conv. ratio[%] |
MOL001.ASF | 4585842 | 1536349 | 33 |
MOL002.ASF | 1652776 | 581398 | 35 |
MOL003.ASF | 2042046 | 958024 | 46 |
MOL004.ASF | 5392880 | 1987674 | 36 |
MOL005.ASF | 931790 | 319123 | 34 |
MOL006.ASF | 940000 | 344322 | 36 |
MOL007.ASF | 665550 | 333017 | 50 |
MOL008.ASF | 542628 | 172972 | 31 |
MOL009.ASF | 1746990 | 586792 | 33 |
以上、大量にあるガラケーで撮影した動画をiPhoneで見れるフォーマットのH.264+AAC+MP4形式に変換した。変換した動画は、iPhoneに入れるもよし、iMovieで編集して1つのファイルにまとめるもよし、YouTubeで公開してもよし。ちなみに、ffmpegはガラケー動画じゃなくて、例えばFlash動画なども変換可能。
0 件のコメント:
コメントを投稿