VFRなmp4の作り方(1)

24fpsと30fpsが混合したmp4を作る自分的手順(分割編)

  • DGIndexで24fps部分を切り出して"24fps.d2v"として保存。このとき音声は省略。
  • DGIndexで30fps部分を切り出して"30fps.d2v"として保存。このとき音声は省略。
  • DGIndexで全体を"all.d2v"として保存。このときは音声も出力する。
  • "24fps.avs"を作成し、インターレース解除、24fps化をする。
 DGDecode_mpeg2source("24fps.d2v")
 tfm(d2v="24fps.d2v").tdecimate(mode=1)
  • 30fps.avsを作成し、インターレース解除する。
  • 30fps.avsの出力fpsを24fps.avsの出力fpsとそろえる。このときフレームを削って24fps化するわけではなく、フレーム数は30fpsのままfpsの設定だけを24fpsにする。(mp4boxで合成するためのおまじない)
 DGDecode_mpeg2source("30fps.d2v")
 tfm(d2v="30fps.d2v")
 AssumeFPS(24000,1001)
  • "24fps.avs"と"30fps.avs"をx264を使ってエンコードし、H.268 raw形式で出力。
  • "all.d2v"を保存したときに出力された"all T01 48K 16bit 2ch.wav"を"all.aac"に変換。
  • mp4boxで合成。
 mp4box -add 24fps.264:fps=23.976 -cat 30fps.264:fps=29.970 -add all.aac:lang=jpn -new vfr.mp4

これで"vfr.mp4"が24fps/30fps混合のVFRなmp4になる。

参考情報
Help with concatenating avc into mp4... - Doom9's Forum
HowTo create Variable Framerate MPEG-4 video streams in MP4 - Doom9's Forum
http://www.avisynth.org/mediawiki/wiki/VFR