iPod †
はじめに †
このページでは5.5G対応動画を扱っています。以前の形式の動画は変換君付属の設定ファイルでどうぞ。
- iTunes読み込み時の問題
- iTunesは日本語ファイル名の扱いが苦手なようです。*1
あうあうあう 第2話『ほげほげほげ』 (640x480 DivX511 120f).m4vをiTunesに読み込めないときは、
あうあうあう 第2話.m4vとかにリネームしてみると幸せになれるかも。
- 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""
詳細 †
- 仕様
- 音声
プロファイル | AAC-LC |
サンプリングレート | 48kHz |
最大ビットレート | 160kbpsまでとされているが、それ以上も可能。 |
| 最大ビットレート320kbpsとかそれ以上の音声を含む動画でも問題なく再生できる |
- 映像
- H.264
最大解像度 | VGA(640x480)、縦横共に1ドットでも越えるとアウト |
最大FPS | 30fps (QVGA なら 60fps も再生自体は可能な模様) |
最大ビットレート | 1.5Mbpsまでとされているが、それ以上も可能。ただし上げすぎるとiPodがフリーズする。 |
| H.264 Baseline Level 3.0 の最大ビットレートは10Mbpsが上限なのでこの辺かこれよりいくらか下までが限界と思われる |
プロファイル | Baselineプロファイル Level3.0(独自の細工付き、NicMP4Boxで解決) |
Bフレーム | 未対応 |
デブロッキング | 一応対応(VGA時は処理が追いつかない可能性あり) |
その他 | タイムコード付き VFR (24/30 混合) も再生可。 |
- 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 の詳細
- ここらへんによると、以下のような仕様の模様。uuid atom については NicMP4Box で解決するので、あとはエンコード時の解像度と設定に気をつける必要がある。
Baseline Low-Complexity Profile Details:
- 1 reference frame.
- No higher than Level 30.
- 640px is max width. No exceptions.
- Must have a SAR. 1:1 is the correct setting.
- 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
最新版FFmpegをつかったiPod(5G)用動画変換設定 †
最新ffmpegと変換君の組み合わせでiPod動画変換するためのiniファイルを作成してみました。
一部オプション関係が変わっているのでそのあたりを変更しています。
ちなみに、音声のエンコードはNeroでやるようにしています。
- iniの記述例
2ch の iPod 動画スレとか Doom9 とかその辺にある情報を参考にして作った例です。
これらの場に情報を提供なさっている方々に感謝します。
また、以下の設定だと変換時間はffmpegのデフォルトよりもだいぶかかります。
iPodに入れる動画にそんなにこだわる必要ないという人はオプションを適宜削ってください。
(2007/12/09) 不必要っぽいオプションをはずして修正したものを再アップしました。
- QVGAの例
- QVGA(320x240)/アスペクト比 4:3 で映像・音声とも2passの例
[Item*]
Title=QVGA (4:3)/AVC 384kbps 2pass/Nero Digital AAC-LC Stereo 48KHz 96kbps 2pass
TitleE=QVGA (4:3)/AVC 384kbps 2pass/Nero Digital AAC-LC Stereo 48KHz 96kbps 2pass
FileNameMax=59
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 "<%TemporaryFile%>_a.wav""
Command1=""<%AppPath%>\cores\NeroAACEnc" -lc -2pass -br 96000 -if "<%TemporaryFile%>_a.wav" -of "<%TemporaryFile%>_a.mp4""
Command2=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -pass 1 -passlogfile "x264_2pass" -threads auto -s 320x240 -vcodec libx264 -coder vlc -level 30 -b 384k -bt 1536k -bufsize 2048k -maxrate 1536k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -refs 3 -flags2 mixed_refs -i_qfactor 0.7142857 -rc_eq "blurCplx^(1-qComp)" -an -f mp4 "<%TemporaryFile%>_v.mp4""
Command3=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -pass 2 -passlogfile "x264_2pass" -threads auto -s 320x240 -vcodec libx264 -coder vlc -level 30 -b 384k -bt 1536k -bufsize 2048k -maxrate 1536k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -refs 3 -flags2 mixed_refs -i_qfactor 0.7142857 -rc_eq "blurCplx^(1-qComp)" -an -f mp4 "<%TemporaryFile%>_v.mp4""
Command4=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>_v.mp4" -add "<%TemporaryFile%>_a.mp4" -new "<%OutputFile%>.mp4""
Command5="cmd /c "del /f "<%AppPath%>\x264_2pass*.log"""
Command6="cmd /c "del /f "<%TemporaryFile%>_*.*"""
- QVGA (320x240)/アスペクト比 4:3 で映像・音声とも1passの例
[Item*]
Title=QVGA (4:3)/AVC CRF22.0 1pass/Nero Digital AAC-LC Stereo 48KHz Q=0.40 1pass
TitleE=QVGA (4:3)/AVC CRF22.0 1pass/Nero Digital AAC-LC Stereo 48KHz Q=0.40 1pass
FileNameMax=59
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 "<%TemporaryFile%>_a.wav""
Command1=""<%AppPath%>\cores\NeroAACEnc" -lc -q 0.40 -if "<%TemporaryFile%>_a.wav" -of "<%TemporaryFile%>_a.mp4""
Command2=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -threads auto -s 320x240 -vcodec libx264 -coder vlc -level 30 -crf 22.0 -bufsize 2048k -maxrate 1536k -g 300 -keyint_min 30 -qmin 10 -qmax 32 -qdiff 4 -qcomp 0.6 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -refs 3 -flags2 mixed_refs -i_qfactor 0.7142857 -rc_eq "blurCplx^(1-qComp)" -an -f mp4 "<%TemporaryFile%>_v.mp4""
Command3=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>_v.mp4" -add "<%TemporaryFile%>_a.mp4" -new "<%OutputFile%>.mp4""
Command4="cmd /c "del /f "<%TemporaryFile%>_*.*"""
- VGAの例
- VGA(640x480)/アスペクト比 4:3 で映像・音声とも2passの例
[Item*]
Title=VGA (4:3)/AVC 1.5Mbps 2pass/Nero Digital AAC-LC Stereo 48KHz 160kbps 2pass
TitleE=VGA (4:3)/AVC 1.5Mbps 2pass/Nero Digital AAC-LC Stereo 48KHz 160kbps 2pass
FileNameMax=59
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 "<%TemporaryFile%>_a.wav""
Command1=""<%AppPath%>\cores\NeroAACEnc" -lc -2pass -br 160000 -if "<%TemporaryFile%>_a.wav" -of "<%TemporaryFile%>_a.mp4""
Command2=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -pass 1 -passlogfile "x264_2pass" -threads auto -s 640x480 -vcodec libx264 -coder vlc -level 30 -b 1500k -bt 6000k -bufsize 2048k -maxrate 6000k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -refs 1 -flags2 mixed_refs -i_qfactor 0.7142857 -rc_eq "blurCplx^(1-qComp)" -an -f mp4 "<%TemporaryFile%>_v.mp4""
Command3=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -pass 2 -passlogfile "x264_2pass" -threads auto -s 640x480 -vcodec libx264 -coder vlc -level 30 -b 1500k -bt 6000k -bufsize 2048k -maxrate 6000k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -refs 1 -flags2 mixed_refs -i_qfactor 0.7142857 -rc_eq "blurCplx^(1-qComp)" -an -f mp4 "<%TemporaryFile%>_v.mp4""
Command4=""<%AppPath%>\cores\NicMP4Box" -add "<%TemporaryFile%>_v.mp4" -add "<%TemporaryFile%>_a.mp4" -new "<%OutputFile%>.mp4""
Command5="cmd /c "del /f "<%AppPath%>\x264_2pass*.log"""
Command6="cmd /c "del /f "<%TemporaryFile%>_*.*"""
など。下に添付してある ini も大体似たような構成になってます。
オプションの設定値は x264 CLI のデフォルトから借用したものが多いので、素材 (変換するソース) に応じて適宜変更してみてください。
一応iniファイルはこちらになります → &ref(): File not found: "Transcoding_iPod5G_ffmpeg_r11050_Ver2.ini" at page "iPod";
その他変換方法 †
- SUPER ©
- MeGUI
- x264と変換君の組み合わせ
- ffmpegよりはビットレートを守ろうと努力しているようです。AviSynthが必要。