*iPod [#r2c5976a]

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

-iTunes読み込み時の問題
--iTunesは日本語ファイル名の扱いが苦手なようです。((拡張子の前に付くドット「.」がしばしば脱落し、拡張子なしのファイルになってしまいます。))
'''あうあうあう 第2話『ほげほげほげ』 (640x480 DivX511 120f).m4v'''をiTunesに読み込めないときは、
'''あうあうあう 第2話.m4v'''とかにリネームしてみると幸せになれるかも。

-VGA or QVGA?
--VGA(640x480)の方がいい場合
---AppleTVやiTunesなどパソコンでも同じ解像度の動画を見たい
---iPodをテレビに接続して外部出力する
--QVGA(320x240)の方がいい場合
---もっぱらiPodでしか動画を見ない
---iPod本体で「きれいな」動画を見たい
---ファイルの大きさを節約したい

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

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

-事前に用意するもの
--NicMP4Box([[入手先:http://nic.dnsalias.com/]])
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を使わない方法 [#sd4aace9]
コーデックに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""

***詳細 [#k227a8d9]
-仕様
--音声
,プロファイル,AAC-LC
,サンプリングレート,48kHz
,最大ビットレート,160kbpsまでとされているが、それ以上も可能。
,,最大ビットレート500kbps程の音声を含む動画でも問題なく再生できる
,,最大ビットレート320kbpsとかそれ以上の音声を含む動画でも問題なく再生できる
--映像
---''H.264''
,最大解像度,VGA(640x480)、縦横共に1ドットでも越えるとアウト
,最大FPS,30fps (QVGA なら 60fps も再生自体は可能な模様)
,最大ビットレート,1.5Mbpsまでとされているが、それ以上も可能。ただし上げすぎるとiPodがフリーズする。
,,320x240 29.97fps で最大ビットレート15Mbps位までが限界(これ以上だと再生がカクつく)
,,H.264 Baseline Level 3.0 の最大ビットレートは10Mbpsが上限なのでこの辺かこれよりいくらか下までが限界と思われる
,プロファイル,Baselineプロファイル Level3.0(独自の細工付き、NicMP4Boxで解決)
,Bフレーム,未対応
,デブロッキング,一応対応(VGA時は処理が追いつかない可能性あり)
,その他,タイムコード付き VFR (24/30/60 混合) も再生可
,その他,タイムコード付き 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 の詳細
--[[ここらへん:http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2006-September/015930.html]]によると、以下のような仕様の模様。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)用動画変換設定 [#mbbf5341]
最新ffmpegと変換君の組み合わせでiPod動画変換するためのiniファイルを作成してみました。
一部オプション関係が変わっているのでそのあたりを変更しています。
ちなみに、音声のエンコードはNeroでやるようにしています。

-必要なもの
--[[最新版のffmpeg:http://oss.netfarm.it/mplayer-win32.php]] → 中のffmpeg.exeとpthreadGC2.dllをcoresフォルダへ
--[[NicMP4Box:http://nic.dnsalias.com/]] → 中のNicMP4Box.exeをcoresフォルダへ
--[[Nero Digital AAC Encoder:http://www.nero.com/jpn/nero-aac-codec.html]] → 中のwin32フォルダにあるNeroAACEnc.exeをcoresフォルダへ

-iniの記述例
2ch の iPod 動画スレとか Doom9 とかその辺にある情報を参考にして作った例です。
これらの場に情報を提供なさっている方々に感謝します。
また、以下の設定だと変換時間はffmpegのデフォルトよりもだいぶかかります。
iPodに入れる動画にそんなにこだわる必要ないという人はオプションを適宜削ってください。

-QVGAの例
--QVGA(320x240)/29.970fps/アスペクト比 4:3 で映像・音声とも2passの例
[Item*]
Title=QVGA 29.970fps (4:3)/AVC 384kbps 2pass/Nero Digital AAC-LC 48KHz 96kbps 2pass
TitleE=QVGA 29.970fps (4:3)/AVC 384kbps 2pass/Nero Digital AAC-LC 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 -sws_flags lanczos+full_chroma_int -r 30000/1001 -vcodec libx264 -coder vlc -level 30 -b 384k -bt 1536k -bufsize 2000k -maxrate 1536k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -qblur 0.5 -complexityblur 20 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -deblockalpha 0 -deblockbeta 0 -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 -sws_flags lanczos+full_chroma_int -r 30000/1001 -vcodec libx264 -coder vlc -level 30 -b 384k -bt 1536k -bufsize 2000k -maxrate 1536k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -qblur 0.5 -complexityblur 20 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -deblockalpha 0 -deblockbeta 0 -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)/29.970fps/アスペクト比 4:3 で映像・音声とも1passの例
[Item*]
Title=QVGA 29.970fps (4:3)/AVC CRF22.0 1pass/Nero Digital AAC-LC 48KHz Q=0.40 1pass
TitleE=QVGA 29.970fps (4:3)/AVC CRF22.0 1pass/Nero Digital AAC-LC 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 -sws_flags lanczos+full_chroma_int -r 30000/1001 -vcodec libx264 -coder vlc -level 30 -crf 22.0 -bufsize 2000k -maxrate 1500k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -qblur 0.5 -complexityblur 20 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -deblockalpha 0 -deblockbeta 0 -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)/29.970fps/アスペクト比 4:3 で映像・音声とも2passの例
[Item*]
Title=VGA 29.970fps (4:3)/AVC 1.5Mbps 2pass/Nero Digital AAC-LC 48KHz 160kbps 2pass
TitleE=VGA 29.970fps (4:3)/AVC 1.5Mbps 2pass/Nero Digital AAC-LC 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 -sws_flags lanczos+full_chroma_int -r 30000/1001 -vcodec libx264 -coder vlc -level 30 -b 1500k -bt 6000k -bufsize 2000k -maxrate 10000k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -qblur 0.5 -complexityblur 20 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -deblockalpha 0 -deblockbeta 0 -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 -sws_flags lanczos+full_chroma_int -r 30000/1001 -vcodec libx264 -coder vlc -level 30 -b 1500k -bt 6000k -bufsize 2000k -maxrate 10000k -g 300 -keyint_min 30 -qmin 10 -qmax 51 -qdiff 4 -qcomp 0.6 -qblur 0.5 -complexityblur 20 -partitions parti4x4+partp8x8 -sc_threshold 40 -me_method umh -me_range 16 -subq 6 -cmp chroma -flags loop -deblockalpha 0 -deblockbeta 0 -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%>_*.*"""

など。libx264関係のオプションが多いので見づらいですが半分くらいはFFmpegの微妙なデフォルト値を上書きするためのものです。
あとビットレート周りの設定値は適当ですので必要に応じて変更してみてください。一応iniファイルも添付しておきます。
これです → &ref(Transcoding_iPod5G_ffmpeg_r11050.ini);


--
***その他変換方法 [#l952e709]
-[[SUPER &copy;:http://www.erightsoft.net/SUPER.html]]
--変換君以外の選択肢として勧められることが多い。
-[[MeGUI:http://sourceforge.net/projects/megui]]
--[[詳しい説明(英語):http://mewiki.project357.com/index.php/Guides:Ipod_Conversion_Guide]]。AviSynth必須。
-最新ffmpegと変換君の組み合わせ
--一部仕様が変わっているのでオプションを変更する必要あり。
-x264と変換君の組み合わせ
--ffmpegよりはビットレートを守ろうと努力しているようです。AviSynthが必要。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS