Last-modified: 2010-11-28 (日) 13:49:43 (4897d)

 動画のCodecを変更したい。目的は2つ。

 まずは「iPadで閲覧可能な動画形式に変換する」こと。保管しているビデオやアニメはほとんどがDivX系であり、PCやPS3では閲覧できるが、iPadではできない。WebM(VP8 + Vorbis)の普及が未確定の現在、やっぱり、AVC(H.264)/AACに変換するのがよいのでしょうかね。

 次に「動画ファイルサイズを縮小する」こと。個人的にはそれほど画質にはこだわりがない。一見してわからない程度の劣化であれば、BitRateを下げてHDDの空き容量を優先したい。

 

MediaCoder 0.8.0.5050

  • http://www.mediacoderhq.com/
  • Super ©よりも、初心者に易しくなったんじゃないかな。
  • MediaCoder Full EditionをDonwload,installする。
  • presetsファイルを利用するなら、Setup Wizardは省略してもよい。

標準Presets

 品質重視設定。24min.動画のencode(VBR)に135min.かかる。(Powered by Pentium4 3GHz) 24min.動画のencode(VBR)に55min.かかる。(Powered by Core 2 Duo 2.4GHz)

  • overall.ui.rss = "Never"
  • overall.ui.stats = "Never"
    • 余計な窓は開かない。
  • overall.ui.noWelcome = "5050"
    • アプリ起動時のSetup Wizardは不要。Build番号を指定する。
  • overall.ui.trayConfig = "Disable tray icon"
    • タスクトレイに格納すると、アプリがエラー終了することがある? タスクバーのみを使うように変更。
  • overall.task.destdir = "D:\"
    • 環境に合わせて適当に。
  • overall.task.interval = "180"
    • transcode中は100%に張り付くProcessorに、休止時間を与えましょう。
  • overall.audio.channels = "Original"
  • overall.audio.format = "LC-AAC"
  • overall.audio.encoder = "FAAC"
  • overall.video.mode = "3-Pass"
    • 品質 > エンコード時間
    • 「"2-Pass"と変わらない」意見が多い中、このPresetsだと差異が視認できましたので。
  • overall.video.bitrate = "512"
    • このBitrateで、動画ファイルサイズは約100MB/24min. (高速な流体描写のない)1280x720のアニメなら、十分キレイだと思う。
    • iPadでコマ落ち・ノイズ等を確認して、必要なら"768 Kbps"、更に"1024 Kbps"以上を試す。
  • overall.video.mode = "VBR"
  • overall.video.quality = "50" (crf=25)
    • iPadでコマ落ち・ノイズ等を確認して、必要なら変更。
    • 実写なら"60(crf=20)"以上必要かも
    • アニメは調査中。
  • overall.playback.preview = "Disabled"
    • エンコード中の無用な負荷は極力減らす。
  • audioenc.faac.quality = "72"
    • 元audioのBitRateが64bps程度なら"48"、128bps以上なら"72"。音質重視の場合は"96"or"128"とか。
  • audioenc.faac.container = "MP4"
    • Defaultの"AAC"だと、生成されたAudioファイルを再利用・再結合できないみたい?
      • build4740ぐらいから、一時ファイルが残らなくなったので、ど~でもよい?
  • videoenc.x264.profile = "High"
  • videoenc.x264.level = "40"
  • videoenc.x264.preset = "Slower"
    • tune="Animation"とした場合など、refが大き過ぎる("16"とか)とiPadで再生できない。その場合、"Slow"に変更する。
  • videoenc.x264.qp = "5"
    • 「useful rangeは10~20」と説明されているが、これくらい小さくした方が画質が良い気がする。
  • videoenc.x264.frameref = "6"
  • videoenc.x264.bframes = "6"
    • 3の倍数が良いらしい?(参考サイト)
    • "3"だと圧縮率低下→画質低下。"9"だとiPadでの再生時にモザイク増加。(のような気がする)
  • videoenc.x264.b_adapt = "Optimal"
    • 必須。
  • videoenc.x264.b_pyramid = "Normal"
  • videoenc.x264.qpmin = "2"
  • videoenc.x264.qcomp = "90"
    • Bitrateの変動幅を大きく、画質の変動を小さく。
  • videoenc.x264.me = "Uneven Multi-Hexagon"
  • videoenc.x264.me_range = "24"
    • 大きくし過ぎてもダメらしい。
  • videoenc.x264.subq = "9"
  • videoenc.x264.mixed_refs = "true"
  • videoenc.x264.fast_pskip = "false"
  • videoenc.x264.dct_decimate = "false"
  • videoenc.x264.gh = "true"
    • iPad用Presetが"true"だったから。
  • audiofilter.resample.downSamplingOnly = "true"
    • resampleしないので削除。
  • videofilter.scale.width = "1280"
  • videofilter.scale.height = "720"
    • 上記は、通常は利用されない。Scale Filter有効時に適応される。
  • videofilter.frame.fps = "24000"
  • videofilter.frame.fpsScale = "1001"
    • 上記は、通常は利用されない。Frame Filter有効時に適応される。

元動画に依って、標準Presetsから変更するパラメータ

元videoがアニメーションの場合

  • videoenc.x264.tune = "Animation"
    • "Animation"にするとrefが2倍になり、iPadで再生できないことがある。(ref > 10)の場合、videoenc.x264.preset = "Slow" に変更する。
  • videoenc.x264.deblock = "false"

元videoが実写の場合

  • videoenc.x264.tune = "Film"
  • videoenc.x264.nr = "1000" & videoenc.x264.psy = "false"
    • noisyな動画の場合には、nrが必須か!?

元videoのresolutionが1280x720以上の場合

  • videofilter.scale.enabled = "Yes"
    • 1280x720以上は、iPadで正常に再生できないため。
    • 元動画のaspect比が16:9以外の場合は、videofilter.scale.width・videofilter.scale.heightも変更する。

元videoのFrame Rateが適切でない(119fpsとか)場合

  • videofilter.frame.enabled = "true"

元videoと比較して、画質劣化が視認できる場合

  • overall.video.bitrate = "768 Kbps"
  • それでも不足なら、"1024 Kbps"以上を試す。
  • overall.video.quality = "50" (crf=25)
  • それでも不足なら、"56(crf=22)"以上を試す。

元audioの音量が小さい場合

  • audiofilter.volume.normalization = "Mode 1"

元audioのbitrateに合わせて音質を調整したい(or 音質を重視したい)場合

  • audioenc.faac.quality = "48" or "96","128"
    • 元audioのBitRateが64bps程度なら"48"、128bps以上なら"72"。音質重視の場合は"96"or"128"とか。

元audioをそのまま使いたい場合

  • overall.audio.copy = "true"
    • 元audioがAACで、BitRateが適切なら、re-encodeしない。

buffer overflowが発生する場合

  • overall.video.bufferSize = "200"以上
    • はっきりしないが、発生しにくくなるような気がする。
  • overall.generic.priority="Normal"なら、"Auto"や"Lower"に変えると発生しにくくなる。

処理時間 (例 : 56secの動画)

ProcessTimes.png

Air Video Server 2.4.2

  • http://www.inmethod.com/air-video/
  • iPadやiPhone側のClientアプリからconvert(Transcode)を指示する。
  • max width, max heightを最大値(1024x768(iPad))、Qualityを"100%"にしてconvertすると、ファイルサイズが元のと同じ程度のAVC/AAC動画ができる。
  • 30min.動画のencodeに50min.程度。(Powered by Pentium 4 3GHz)
  • 私の要件には合わない。(ファイルサイズが小さくならない & rateやresolutionをできるだけ変えたくない)

添付ファイル: fileProcessTimes.png 3694件 [詳細]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS