web-dev-qa-db-ja.com

x264 mkvに変換できません

mp4ファイルをmkvに変換し、ビデオ形式をx264、オーディオをlibmp3lameに変換したい

  1. ファイルのMediainfoは次のようになります。

    General
    Complete name                            : file_in.mp4
    Format                                   : MPEG-4
    Format profile                           : Base Media
    Codec ID                                 : isom
    File size                                : 404 MiB
    Duration                                 : 41mn 4s
    Overall bit rate                         : 1 375 Kbps
    Writing application                      : Lavf56.1.0
    Video
    ID                                       : 1
    Format                                   : MPEG-4 Visual
    Format profile                           : Advanced Simple@L5
    Format settings, BVOP                    : Yes
    Format settings, QPel                    : No
    Format settings, GMC                     : No warppoints
    Format settings, Matrix                  : Default (H.263)
    Codec ID                                 : 20
    Duration                                 : 40mn 55s
    Bit rate                                 : 1 185 Kbps
    Width                                    : 576 pixels
    Height                                   : 432 pixels
    Display aspect ratio                     : 4:3
    Frame rate mode                          : Constant
    Frame rate                               : 29.970 fps
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 8 bits
    Scan type                                : Progressive
    Compression mode                         : Lossy
    Bits/(Pixel*Frame)                       : 0.159
    Stream size                              : 347 MiB (86%)
    Writing library                          : XviD 1.3.0.dev55
    Audio
    ID                                       : 2
    Format                                   : AC-3
    Format/Info                              : Audio Coding 3
    Mode extension                           : CM (complete main)
    Format settings, Endianness              : Big
    Codec ID                                 : ac-3
    Duration                                 : 41mn 4s
    Bit rate mode                            : Constant
    Bit rate                                 : 192 Kbps
    Channel(s)                               : 2 channels
    Channel positions                        : Front: L R
    Sampling rate                            : 48.0 KHz
    Bit depth                                : 16 bits
    Compression mode                         : Lossy
    Stream size                              : 56.4 MiB (14%)
    
  2. libx264-devlibav-toolsは最新バージョンです。

  3. 次のコマンドで変換してみた

    avconv -i file_in.mp4 -c:v libx264 -acodec libmp3lame file_out.mkv
    
  4. Avconvコマンドの出力は

    avconv version 11.2-6:11.2-1, Copyright (c) 2000-2014 the Libav developers
      built on Jan 18 2015 05:12:33 with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu2)
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0xa1d4c0] multiple edit list entries, a/v desync might occur, patch welcome
        Last message repeated 1 times
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0xa1d4c0] max_analyze_duration 5000000 reached
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file_in.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2mp41
        encoder         : Lavf56.1.0
      Duration: 00:41:04.99, start: 0.016000, bitrate: 1375 kb/s
        Stream #0.0(und): Video: mpeg4, yuv420p, 1184 kb/s, 30k tbn (default)
        Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
    Output #0, matroska, to 'file_out.mkv':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2mp41
        encoder         : Lavf56.1.0
        Stream #0.0(und): Audio: libmp3lame, 48000 Hz, stereo, fltp (default)
        Metadata:
          encoder         : Lavc56.1.0 libmp3lame
    Stream mapping:
      Stream #0:1 -> #0:0 (ac3 (native) -> mp3 (libmp3lame))
    size=     315kB time=19.75 bitrate= 130.8kbits/s
    .
    .
    .
    .
    size=   39227kB time=2464.97 bitrate= 130.4kbits/s    
    video:0kB audio:38516kB other streams:0kB global headers:0kB muxing overhead: 1.845972%
    

基本的にオーディオのみがコピーされます。ビデオ+オーディオをmkv形式で取得するにはどうすればよいですか?

3
3l4ng

ビデオは「MPEG4 Visual」としてエンコードされています。これはmp42の別名です。残念ながら、このビデオはMPEG4-2標準がまだ実装されていない時期に開発されたソフトウェアを使用してエンコードされました。

一般的に使用できるようになるまでに、他のコーデック(x264など)に取って代わっています。

つまり、このコーデックのサポートは初歩的なものであり、せいぜい苦労しています。

そうは言っても、ffmpegが適切に読み取ることができる形式にファイルをいくらか修正できます。

Ffmpegが困難な部分はmajor_brand : isomメタデータの一部。

これを回避するには、別のツールを使用します: MP4Box

次に、MP4Boxをインストールしたら、次のようなコマンドを実行します。

MP4Box -brand mp42 input.mp4

これにより、メタデータがmajor_brand : mp42

これが完了すると、ffmpegはそれを認識し、適切に変換できるようになります。

幸運を! :)

1
ThatGuy