iPod

はじめに

このページでは5.5G対応動画を扱っています。以前の形式の動画は変換君付属の設定ファイルでどうぞ。

  • iTunes読み込み時の問題
    • iTunesは日本語ファイル名の扱いが苦手なようです。*1 あうあうあう 第2話『ほげほげほげ』 (640x480 DivX511 120f).m4vをiTunesに読み込めないときは、 あうあうあう 第2話.m4vとかにリネームしてみると幸せになれるかも。
      • iTunesはMacの方便入りUTF8を利用しているみたいなので、"だ"や"ぱ"等の点や丸が付くものを拒否ります。
      • ただし、現状のバージョンではかなり改善されているので今となっては気にしなくて大丈夫。
  • VGA or QVGA?
    • VGA(640x480)の方がいい場合
      • AppleTVやiTunesなどパソコンでも同じ解像度の動画を見たい
      • iPodをテレビに接続して外部出力する
    • QVGA(320x240)の方がいい場合
      • もっぱらiPodでしか動画を見ない
      • iPod本体で「標準的な」動画を見たい
      • ファイルの大きさを節約したい

NicMP4Boxを使う方法

H.264を使う時は基本的にこの方法。NicMP4Boxというソフトが必要です。

注:H.264を使ったVGA動画は処理が追いつかずフリーズすることがあります。 変換君(の中のffmpeg)がビットレート指定・maxrate指定をきちんと守らないのが原因。 QVGA指定時にはこの問題はほとんど発生しません。

  • 事前に用意するもの
    • NicMP4Box(入手先) zipファイル中のNicMP4Box.exeをあらかじめcoresフォルダの中に入れておきます。
  • VGAの例
    [Item*]
    Title=H.264 VGA(1.5Mbps/128kbps)
    FileNameMax=59
    Command0=""<%AppPath%>\cores\ffmpeg" -y -maxfr 30 -i "<%InputFile%>" -title "<%Title%>" -bitexact -hq -vcodec h264 -vprofile baseline -vlevel 30 -fixaspect -s 640x480 -b 1500 -maxrate 1800 -qmin 18 -qmax 51 -bufsize 1024 -g 250 -acodec aac -ac 2 -ar 48000 -ab 64 "<%TemporaryFile%>.mp4""
    Command1=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>.mp4" "<%OutputFile%>.mp4""
    Command2="rm "<%TemporaryFile%>.mp4""
    Command3=""<%AppPath%>\cores\AddiTunes" "<%OutputFile%>.mp4""
  • QVGAの例
    [Item*]
    Title=H.264 QVGA(1Mbps/160kbps)
    FileNameMax=59
    Command0=""<%AppPath%>\cores\ffmpeg" -y -maxfr 30 -i "<%InputFile%>" -title "<%Title%>" -bitexact -hq -vcodec h264 -vprofile baseline -vlevel 30 -fixaspect -s 320x240 -b 1000 -maxrate 1300 -qmin 18 -qmax 51 -bufsize 1024 -g 250 -acodec aac -ac 2 -ar 48000 -ab 80 "<%TemporaryFile%>.mp4""
    Command1=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>.mp4" "<%OutputFile%>.mp4""
    Command2="rm "<%TemporaryFile%>.mp4""
    Command3=""<%AppPath%>\cores\AddiTunes" "<%OutputFile%>.mp4""
    
    [Item*]
    Title=H.264 QVGA(384kbps/128kbps)
    FileNameMax=59
    Command0=""<%AppPath%>\cores\ffmpeg" -y -maxfr 30 -i "<%InputFile%>" -title "<%Title%>" -bitexact -hq -vcodec h264 -vprofile baseline -vlevel 30 -fixaspect -s 320x240 -b 384 -maxrate 700 -qmin 18 -qmax 51 -bufsize 1024 -g 250 -acodec aac -ac 2 -ar 48000 -ab 64 "<%TemporaryFile%>.mp4""
    Command1=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>.mp4" "<%OutputFile%>.mp4""
    Command2="rm "<%TemporaryFile%>.mp4""
    Command3=""<%AppPath%>\cores\AddiTunes" "<%OutputFile%>.mp4""

 11/11  修正 -fixaspect の位置が解像度の後ろでアスペクト比が維持されないため前に変更。

NicMP4Boxを使わない方法

コーデックにXviDを使うときに有効。 以前の方法と全く同様にして変換できます。

  • [Item*]
    Title=XviD VGA(2.5Mbps/128kbps)
    FileNameMax=59
    Command0=""<%AppPath%>\cores\ffmpeg" -y -maxfr 30 -i "<%InputFile%>" -title "<%Title%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec xvid -hq -s 640x480 -fixaspect -b 2500 -acodec aac -ac 2 -ar 48000 -ab 64 -f ipod "<%OutputFile%>.mp4""
    Command1=""<%AppPath%>\cores\AddiTunes" "<%OutputFile%>.mp4""

新ffmpeg+neroAacEnc+NicMP4Box

新ffmpeg用のサンプルを作ってみました。iPhone3GSで確認。

  • VGAの例
    [Item0]
    Title=H.264 640×480(1,536kbps/128kbps)
    FileNameMax=59
    Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 44100 "<%TemporaryFile%>.wav""
    Command1=""<%AppPath%>\cores\neroAacEnc" -if "<%TemporaryFile%>.wav" -lc -br 128000 -of "<%TemporaryFile%>.aac"
    Command2=""<%AppPath%>\cores\ffmpeg" -y -i "<%TemporaryFile%>.aac" -acodec copy -i "<%InputFile%>" -metadata title-jpn="<%Title%>" -flags bitexact -vcodec libx264 -coder 0 -level 30 -s 640x480 -r 30000/1001 -aspect 4:3 -b 1536kb -maxrate 1836k -deinterlace -qmin 18 -qmax 51 -bufsize 1024kb -me_method epzs -me_range 16 -subq 8 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor -0.8 -qcomp 0.5 -qdiff 3 -flags2 +fastpskip -threads 0 "<%TemporaryFile%>.mp4""
    Command3=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>.mp4" "<%OutputFile%>.mp4""
    Command4="rm "<%TemporaryFile%>.mp4""
    Command5="rm "<%TemporaryFile%>.wav""
    Command6="rm "<%TemporaryFile%>.aac""
  • iPhone/touch用解像度
    Title=H.264 480×320(768kbps/128kbpsステレオ)
    FileNameMax=59
    Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 44100 "<%TemporaryFile%>.wav""
    Command1=""<%AppPath%>\cores\neroAacEnc" -if "<%TemporaryFile%>.wav" -lc -br 128000 -of "<%TemporaryFile%>.aac"
    Command2=""<%AppPath%>\cores\ffmpeg" -y -i "<%TemporaryFile%>.aac" -acodec copy -i "<%InputFile%>" -metadata title-jpn="<%Title%>" -flags bitexact -vcodec libx264 -coder 0 -level 30 -s 480x320 -r 30000/1001 -aspect 16:9 -b 768kb -maxrate 1068kb -deinterlace -qmin 18 -qmax 51 -bufsize 1024kb -me_method epzs -me_range 16 -subq 8 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor -0.8 -qcomp 0.5 -qdiff 3 -flags2 +fastpskip -threads 0 "<%TemporaryFile%>.mp4""
    Command3=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>.mp4" "<%OutputFile%>.mp4""
    Command4="rm "<%TemporaryFile%>.mp4""
    Command5="rm "<%TemporaryFile%>.wav""
    Command6="rm "<%TemporaryFile%>.aac""

詳細

  • 仕様
    • 音声
      プロファイルAAC-LC
      サンプリングレート48kHz/44.1kHz/24kHz は再生確認済
      最大ビットレート160kbpsまでとされているが、それ以上も可能。
      最大ビットレート320kbpsとかそれ以上の音声を含む動画でも問題なく再生できる
    • 映像
      • H.264
        最大解像度VGA(640x480)、縦横共に1ドットでも越えるとアウト
        最大FPS30fps (QVGAなら60fpsも一応再生できるが負荷高いのでやめといたほうが無難)
        最大ビットレート1.5Mbpsまでとされているが、それ以上も可能。ただし上げすぎるとiPodがフリーズする。iPhone 3GSなら8Mbpsぐらいでも余裕
        H.264 Baseline Level 3.0 は Max 10Mbps なのでこれよりいくらか下までが限界と思われる
        プロファイルBaselineプロファイル Level3.0(独自の細工付き、NicMP4Boxで解決)
        Bフレーム未対応
        デブロッキング一応対応(VGA時は処理が追いつかない可能性あり)
        その他タイムコード付き VFR (24/30 混合) も再生可。
        アナモーフィック (非正方ピクセル) なものも再生可 (352x480 で PAR 80:33 の 16:9 動画等)。
      • MPEG4 (XviD含む) SimpleプロファイルでVGA/30fps/2.5Mbpsまで
  • NicMP4Boxとは
    • Appleの日本語サイトでは誤った情報が掲載されていますが、iPodでQVGAを超えるかビットレートが768kbps以上の動画を再生するには「Low-Complexity version of the H.264 Baseline Profile」という独自プロファイルの動画ファイルを作らなければいけません。
      この独自プロファイルの実態はLevel3のBaselineプロファイルで、Appleによって多少の小細工がされています。
      その小細工を再現するために作られたのが「NicMP4Box」です。
      これは「MP4Box」というMP4をいろいろと弄るソフトをNic氏が改造したもので、MP4Boxの機能はそのまま残っています。
  • Low-Complexity version of the H.264 Baseline Profile の詳細
    • ここらへんによると、iPodで再生できるVGAサイズの動画を作成するには以下のような仕様を満たす必要があるようです。*2
      uuid atom については NicMP4Box で解決するので、あとはエンコード時の解像度と設定に気をつける必要があります。

      Baseline Low-Complexity Profile Details:
      • 1 reference frame.*3 ただし QVGA 以上での複数参照は全てダメというわけでもない*4
      • No higher than Level 30.
      • 640px is max width. No exceptions.
      • Must have uuid atom with the following hex data: 6B 68 40 F2 5F 24 4F C5 BA 39 A5 1B CF 03 23 F3 *5

その他変換方法

  • SUPER ©
    • 変換君以外の選択肢として勧められることが多い。
  • MeGUI
  • x264と変換君の組み合わせ
    • ffmpegよりはビットレートを守ろうと努力しているようです。AviSynthが必要。
  • AtomicParsley
    • Mac版NicMP4box。公式サイトのバイナリはバージョンが古いため、svnにて最新版をチェックアウトしてコンパイル
    • svnチェックアウトはsvn co https://atomicparsley.svn.sourceforge.net/svnroot/atomicparsley atomicparsley
    • コンパイルはreadmeとこれを嫁
    • 使い方はAtomicParsley [MP4ファイル] --DeepScan --iPod-uuid 1200 --overWrite

*1 拡張子の前に付くドット「.」がしばしば脱落し、拡張子なしのファイルになってしまいます。
*2 H.264のLevelが1.3の場合は関係ありません
*3 iPod Classic/Touch の場合はこの制限はない模様。5.5G は VGA で複数参照はダメ
*4 480x270 なら複数参照 OK だった @ 5.5G。解像度縦×横の値とかで制限がかかっているのかも
*5 これが必要なのは Level 1.3 以外のときだが、NicMP4Box に通せば解決するので通常は全部 Level 3.0 で構わない

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-29 (土) 10:34:32 (2385d)