NEXT | PAGE-SELECT | PREV

携帯動画変換君とffmpegを使って、 911SHで高画質な動画再生を行う(中篇)


このエントリーをはてなブックマークに追加


「前篇からの続き」(こちらから読んでください)

 前回の最初から入っている設定ファイルで画質は悪いけど見ることはできたので、1から設定ファイルを作るのではなく利用した設定を修正して利用したいと思います。
 まず、携帯動画変換君の該当の設定ファイルを見てみます。前篇で使った「3GPPファイル, 音声AAC形式一般設定」は、"default_setting"フォルダの下の"Transcoding_3GPP_AAC.ini"になります。この設定ファイルを元にして設定を911SH用にします。

  • 携帯動画変換君を解凍したフォルダの中の"default_setting"に入る
  • "Transcoding_3GPP_AAC.ini"をコピーして、コピーされたファイルを"Transcoding_3GPP_AAC_911SH.ini"に変更

前篇では「QVGA標準画質15fpsステレオ」の設定を使いましたが、このffmpegのオプションは以下のようになってます。
[Item1]
Title=QVGA標準画質15fpsステレオ
TitleE=QVGA Normal quality 15fps Stereo
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec mpeg4 -fixaspect -s 320x240 -r 14.985 -b 190 -acodec aac -ac 2 -ar 16000 -ab 32 -f 3gp -muxvb 64 -muxab 32 "<%TemporaryFile%>.3gp""
Command1=""<%AppPath%>\cores\QT3GPPFlatten" "<%TemporaryFile%>.3gp" "<%OutputFile%>.3gp" -c QT_3GPP(MobileMP4)_QVGA_AAC.ini"
Command2="rm "<%TemporaryFile%>.3gp""
パッと見ただけでも、太字にした部分を適当に変えれば何とかなりそうな雰囲気です。私は別に動画作成を仕事にしているようなプロではないので、必要十分な設定だけ変更します。
ということで、変更後の設定情報
[Item1]
Title=01: 4:3(320x240),動画1000kbps,30fps,ステレオ128k
TitleE=01: 4:3(320x240),movie1000kbps,30fps,Stereo128k
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec mpeg4 -fixaspect -s 320x240 -r 29.97 -b 1000 -acodec aac -ac 2 -ar 44100 -ab 128 -muxvb 128 -muxab 128 -f 3gp "<%TemporaryFile%>.3gp""
Command1=""<%AppPath%>\cores\QT3GPPFlatten" "<%TemporaryFile%>.3gp" "<%OutputFile%>.3gp" -c QT_3GPP(MobileMP4)_QVGA_AAC.ini"
Command2="rm "<%TemporaryFile%>.3gp""


  1. -r 14.985 => 29.97 (動画の1秒あたりのフレームレート。30fpsにするため)
  2. -b 190 => 1000 (動画のビットレート。大きくするほど高画質だが、ファイル容量が増大。(注1を参照)
  3. -ar 16000 => 44100 (オーディオサンプリング周波数)
  4. -ab 32 => 128 (オーディオビットレート )
  5. -maxvb 64 => 128 (何となく)
  6. -maxab 32 => 128 (オーティオビットレートの最大値)

この設定で、元動画が4:3の物については911SH上で320x240で表示できるようになりました。

この設定で16:9の動画やそれより横長の動画を変換すると、横が320で上下に黒帯をいれた形で表示され、911SHの横400の液晶サイズを十分楽しめません。(320x180で額縁になる)
16:9以上の横長の動画を400x240にする設定です。
[Item2]
Title=02: 15:9(400x240),動画1000kbps,30fps,ステレオ128k
TitleE=02: 15:9(400x240),動画1000kbps,30fps,ステレオ128k
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec mpeg4 -fixaspect -s 400x240 -r 29.97 -b 1000 -acodec aac -ac 2 -ar 44100 -ab 128 -f 3gp -muxvb 128 -muxab 128 "<%TemporaryFile%>.3gp""
Command1=""<%AppPath%>\cores\QT3GPPFlatten" "<%TemporaryFile%>.3gp" "<%OutputFile%>.3gp" -c QT_3GPP(MobileMP4)_QVGA_AAC.ini"
Command2="rm "<%TemporaryFile%>.3gp""

  1. -s 320x240 => 400x240 (動画の解像度を変更)
  2. -fixaspect (16:9以上に横長のファイルで、上下に黒帯を追加してアスペクト比を固定する)


というわけで、最初のとの変更点は-sオプションの部分だけになります。

次に、動画共有サイトなどの動画でよくある、元々16:9動画の上下に黒帯を入れて4:3にしている動画を、上下を削ってもいいから横400で見たいという設定です。別に設定ファイルを作ります。
[Item3]
Title=03: 元動画4:3 => 15:9(400x240), 動画1000kbps,30fps,ステレオ128k
TitleE=03: 4:3->400x240,movie1000kbps,30fps,Stereo128k
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec mpeg4 -fixaspect -s 400x300 -croptop 30 -cropbottom 30 -r 29.97 -b 1000 -acodec aac -ac 2 -ar 44100 -ab 128 -f 3gp -muxvb 128 -muxab 128 "<%TemporaryFile%>.3gp""
Command1=""<%AppPath%>\cores\QT3GPPFlatten" "<%TemporaryFile%>.3gp" "<%OutputFile%>.3gp" -c QT_3GPP(MobileMP4)_QVGA_AAC.ini"
Command2="rm "<%TemporaryFile%>.3gp""
  1. -s 400x240 => 400x300 (動画の解像度を変更、この場合元動画はあくまで4:3であるため一端横400縦300とする)
  2. -croptop 30: 動画の上30ピクセルを削除
  3. -cropbottom 30:動画の下30ピクセルを削除

-croptop, -cropbottomを利用することで、4:3の動画の上下を削ることで15:9の画像にすることができます。


とりあえず、以上です。
 これらの最適な設定や設定ファイルをつくるより、何気にこのblogの記事を書いているほうが時間がかかってしましました。 こういうのは調べながらやらなくてはならないので、どうしてもそうなってしまいがちですね。
 以上の結果を元にすれば、自分の好みでオーディオの質を上げるとか、ファイルサイズを減らすために、画質優先で動画のビットレートを上げげるとか、長時間動画を見たいけどファイル用量が厳しいから、画質やフレームレートを下げるとか、カスタマイズができると思います。 このあたりの設定項目はもっと詳細に書かれているホームページがあるのでそちらを参照ください。

「参考ページ」
http://www.nurs.or.jp/~calcium/wiki/index.php?FFMPEG%2F%A5%D3%A5%C7%A5%AA
http://www.himco.jp/articles/pdf/FFmpegDoc.swf
(追記)あとで気づいたのですが、やっぱり本家は911SHについても情報量が違いますね。本記事を読まれたかたなら、もう十分本家の内容もわかると思います。
http://www.nurs.or.jp/~calcium/wiki/index.php?911SH

 本当はffmpegを最新のものにしたり、2パスにすることで、1000よりも小さいビットレート/小さい容量でもっと高画質にすることも可能だと思います。しかし、とりあえず手間をかけずに必要十分な画質が得られたため、一端終了しました。後編の機会があればこのあたりを詰めたいと思います。(いつになるやら)

 
【注1】
911SHでの表示で試してみたところ、2000にすると1000とあまり画質に差がないばかりか、部分的にCPU処理が間に合わくなることがあり。450にすると、1000より若干画質が落ちる。よって1000にした。画像のビットレートを1000にした今回の動画の場合、1分の動画で約8MB消費します。

 つづく。
【関連記事】




(追記 2008/5/31) 
 追記で書くか、別エントリーにするか迷ったけど、取敢えずこちらに追加。さすがに911shが販売終了してから、911shで検索ヒットされるのが減ってきたからね。
 余談ですが、FLVが変換可能とタイトルには書いておきながら、色々考えた末特にFLV4のファイルは意図的にこのやり方では変換できないようになってます。よく見ると一番最初の動画ファイルの拡張子はいきなりaviになってます。 もっと良く読めば携帯動画変換君付属のffmpegはFLV4に対応してないと指摘してありますが、そこまでチェックできる人はこんな記事を読まなくても大丈夫でしょうけど。

 さてこの記事を追記で書こうと思った理由は、今までは、microSDカードが2GBで十分だと思っていたけどいろいろ動画を入れていたら2GBのほとんどを使いきってしまう状況になっていたw。 あとmicroSDカードが2GBでも1000円切っていたのでついでに秋葉で買ってしまった。(最終的にはSeageteの資本も入っているメジャーな SanDiskにしたので1200円したけど)

 それはさておき、このエントリーでは動画ビットレートを1000kbpsにしていました。理由はSDカードの容量が大きいので、オプションで画質を向上させるよりはビットレートをあげて画質をあげた方が簡単で、CPU処理も早くてきれいだから。 しかしSDカードがいっぱいになって、ビットレートを抑えてかつ一定レベルの画質を維持したくなったため、いろいろ設定をいじって遊んでました。

 ついでに、携帯動画変換君のGUIはバッチ処理をするのには良くできているのですが、設定ファイルのiniファイルを書くのが結構面倒で、よく引数などをミスしやすい欠点があります。そのため細かな設定変更が結構やりづらい。 というわけで、携帯動画変換君のGUIを使わず動画変換エンジンは使うバッチファイルを、自分用に作ってしまいました。ダメダメプログラムだけど公開しときます。
 携帯動画変換君を使おうとする人はある程度大丈夫なスクリプトとは思いますが、パソコンを知らない人には使えないし、知ってる人はこんなもの使わないという中途半端な仕様。でも備忘録ブログなのでまあいいでしょう。

一応構築方法です。「前篇」の方法にいくつか追加です
  • こちらの携帯動画変換君 911SH用URLの下のほうにある「QT_3GPP(MobileMP4)_WQVGA_AAC.ini」を「cores」フォルダに入れる
  • 最新のffmpegのバイナリプログラムを公開している「お気に入りの動画を携帯で見よう」のあべちんさんのところから最新のffmpegをダウンロード&解凍。そして名前をffmpeg.exeからffmpeg_latest.exeに変更して、「cores」フォルダに入れる。(一応 rev.12143, rev13054では確認)
  • このとき元からある携帯動画変換君のffmpeg.exeを絶対に上書きしないこと!!
  • この私が911sh用に作ったバッチファイルを携帯動画変換君のフォルダ(setup.exeとかpthreadGC2.dllがある階層)にコピーし、拡張子を .txtから .batにする。KTDHK_911SH_DragDrop_v06.batとかになるかな。
  • ニコニコとかyoutubeからダウンロードしたFLV、MP4動画をこのバッチファイルにドラッグ・アンド・ドロップする。
  • あとは色々聞かれるのでその都度、番号を入力してEnter。 (ただし半角文字だけ)

   本当はffmpegもコンパイルしたかったけど、Winodwsでは上手くコンパイルできないのであべちんさんから御借りします(一応Linuxは問題なくできたけど)。設定は超個人的な設定です。音声もAACで96kbpsにしてます。この記事書いたときの設定は無駄に256kbpsになるんだよね。今は昔、知識の蓄積を感じます。
 それはともかく、構築にこんな手間かかる様じゃ普通の人では無理だよな。


(追記 08/06/21)
 これでも良くわからない人や、めんどくさい人はこちらの記事のGOM encoderを使ってみるのはどうでしょうか?

EOF

モバイル動画 プラスDVD (iPod・PSP対応版)モバイル動画 プラスDVD (iPod・PSP対応版)


by G-Tools


このエントリーをはてなブックマークに追加





このカテゴリの最新記事一覧


| ―携帯, iPod, PSP 動画変換 | 00時30分 | comments:0 | trackbacks:0 | TOP↑















非公開コメント

http://kenknown.blog42.fc2.com/tb.php/17-034b2606

≪ NEXT | PAGE-SELECT | PREV ≫