2005/12月現在、様々なトラブルがあり得ます。
準備
必要なもの
- MEncoder(ffmpegX0.0.9u版)
- 直リン
- ffmpegX0.0.9uインストール済みなら、/Library/Application Support/ffmpegX/mencoder に入っている。
- ffmpeg(MobileHackers版)
- mp4box(GPAC version 0.4.1-DEV)
- ffmpegX0.0.9uのパッケージ内。
- QTCofee(音ズレ発生時に.mp4をmov化するために使う)
これらを使ってx264+aac.mp4を作成する。
ffmpegX0.0.9uと同様に、
- mencoderで映像のみエンコード、x264のrawvideoを作成(拡張子.ff.264)
- ffmpeg2で音声のみエンコード、aac音声のみの.mp4作成(拡張子.ff.aac.mp4)
- mp4boxで映像と音声をmux。(拡張子.ff.mp4)
これを順次やるので、エンコード中のプレビューが効かないなど、xvid+mp3.aviとは操作感が違う。
基本的にはWin界のMeGUIやYAMBと同等と思はれる。
例
実用中。CaptyTV録画ファイル用。
MENCODER
x264 rawvideo(拡張子.264)で映像のみ作成。
PASS1
PASS1
mencoder XXX.mpeg -nosound -ovc x264 -x264encopts threads=2:me=3:bitrate=1078:qp_min=10:qp_max=51:i4x4:4x4mv:frameref=5:mixed_refs:subq=6:brdo:trellis=2:keyint=230:scenecut=30:cabac:deblock:nob_adapt:bframes=1:psnr:turbo=1:pass=1 -passlogfile XXX.264.log -vf pullup,softskip,crop=704:464:8:8,scale=640:480,hqdn3d=4:3:6,pp=l5,harddup -sws 10 -ofps 24.000 -of rawvideo -o /dev/null
- "-o /dev/null"で映像を書き出さない。ログファイルのみ作成。
- "-vf"チェイン末尾に必ず "harddup"を入れる事。さもないと.avi専用の「zero-data-frame」が入る。
- "-ofps 24.000"の理由は後述。
PASS2
mencoder XXX.mpeg -nosound -ovc x264 -x264encopts threads=2:me=3:bitrate=1078:qp_min=10:qp_max=51:i4x4:4x4mv:frameref=5:mixed_refs:subq=6:brdo:trellis=2:keyint=230:scenecut=30:cabac:deblock:nob_adapt:bframes=1:psnr:pass=2 -passlogfile XXX.264.log -vf pullup,softskip,crop=704:464:8:8,scale=640:480,hqdn3d=4:3:6,pp=l5,harddup -sws 10 -ofps 24.000 -of rawvideo -o XXX.264
FFMPEG_AUDIO
- 上記で得た.264と素材.mpegを参照しつつ、拡張子.mp4で音声のみ作成。
ffmpeg -i XXX.264 -i XXX.mpeg -y -vn -f mp4 -acodec aac -ar 48000 -ac 2 -ab 64 -map 1.1:0.0 XXX.aac.mp4
MP4BOX_mux
- 上記で得た.264と音声.aac.mp4をmux。.mp4化。
mp4box -fps 24.000 -add XXX.264 -add XXX.aac.mp4 -new XXX.mp4
- "-fps 23.976"書式を使うと映像fpsが地味におかしくなる。
- "-fps 24000:1001"書式はMEncoder.264には効かない。
注意点
音ズレが発生した場合は、トラブル事例 02_Bフレームを使うとQTP7proで加工不能(対策2)を参照。