2014年2月16日日曜日

ffmpegでmkvをに変換

mkvだとマルチ言語対応でいいところもあるが、日本語がデフォルトではないと
選ぶのが面倒くさい。しかも選べないプレイヤーも存在する。

ffmpegでmp4形式に変換を掛けてみた。

■環境:xubuntu13.10

最初、デフォルト設定で実行してみたが、失敗した。
ffmpeg -i Akira.mkv -vcodec copy akira.mp4

ネットで調べたところ、細かくオプションを付けないと上手くできないのが分かった。

ffmpeg -i Akira.mkv -ab 128k -ac 2 -ar 48000 -acodec copy -alang jpn -vcodec copy akira.mp4

変換が出来たが、音声がデフォルトの英語のまま・・・
よく見ると、ログの最後にこんなのが

    Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Metadata:
      title           : English 5.1
    Stream #0.2(jpn): Audio: ac3, 48000 Hz, stereo, s16, 128 kb/s (default)
    Metadata:
      title           : Japanese 2.0




Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1


つまり、ストリームのマッピングを日本語に変えないとダメらしい。
まだストリームマッピング関連で調べてみたら、詳細オプションとしてmapというものがあるらしい。

ffmpeg -i Akira.mkv -ab 128k -ac 2 -ar 48000 -acodec copy -alang jpn -vcodec copy -map 0.0 -map 0.2 akira.mp4

これで成功した。
最後に変換ログ。

ffmpeg version 0.8.10-6:0.8.10-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
  built on Feb  6 2014 20:59:46 with gcc 4.8.1
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
[matroska,webm @ 0x98ebee0] max_analyze_duration reached
[matroska,webm @ 0x98ebee0] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'Akira.mkv':
  Duration: 02:05:28.19, start: 0.000000, bitrate: 512 kb/s
    Chapter #0.0: start 16.000000, end 100.000000
    Metadata:
      title           : Prologue
    Chapter #0.1: start 100.000000, end 3660.000000
    Metadata:
      title           : Start
    Chapter #0.2: start 3660.000000, end 7219.000000
    Metadata:
      title           : Midpoint
    Chapter #0.3: start 7219.000000, end 7528.192000
    Metadata:
      title           : End
    Stream #0.0(eng): Video: h264 (High), yuv420p, 852x480, PAR 1:1 DAR 71:40, 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
    Metadata:
      title           : Geneon US R1 DVD9
    Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Metadata:
      title           : English 5.1
    Stream #0.2(jpn): Audio: ac3, 48000 Hz, stereo, s16, 128 kb/s (default)
    Metadata:
      title           : Japanese 2.0
    Stream #0.3(eng): Subtitle: [0][0][0][0] / 0x0000
    Metadata:
      title           : English Subs
    Stream #0.4: Attachment: [0][0][0][0] / 0x0000
    Metadata:
      filename        : Akira [SD]{DVD} Info.txt
      mimetype        : text/plain
File 'akira.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'akira.mp4':
  Metadata:
    encoder         : Lavf53.21.1
    Chapter #0.0: start 16.000000, end 100.000000
    Metadata:
      title           : Prologue
    Chapter #0.1: start 100.000000, end 3660.000000
    Metadata:
      title           : Start
    Chapter #0.2: start 3660.000000, end 7219.000000
    Metadata:
      title           : Midpoint
    Chapter #0.3: start 7219.000000, end 7528.192000
    Metadata:
      title           : End
    Stream #0.0(eng): Video: libx264, yuv420p, 852x480 [PAR 1:1 DAR 71:40], q=2-31, 30k tbn, 29.97 tbc (default)
    Metadata:
      title           : Geneon US R1 DVD9
    Stream #0.1(jpn): Audio: ac3, 48000 Hz, stereo, 128 kb/s (default)
    Metadata:
      title           : Japanese 2.0
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.2 -> #0.1
Press ctrl-c to stop encoding



■参考
ffmpegのオーディオオプション
ffmpegの高度なオプション