无法转换为 x264 mkv

无法转换为 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格式的视频+音频?

答案1

您的视频被编码为“MPEG4 Visual”,这是 mp42 的另一个名称。不幸的是,该视频是使用在 MPEG4-2 标准尚未实施时开发的软件进行编码的。

当它准备好供普遍使用时,其他编解码器已经取代了它(即 x264 等)。

这意味着对该编解码器的支持还处于初级阶段,并且充其量也只是勉强支撑。

也就是说,您可以对文件进行一些修复,使其成为 ffmpeg 可以正确读取的格式。

ffmpeg 遇到困难的部分是major_brand : isom元数据部分。

为了解决这个问题,我们使用另一个工具:MP4盒

然后,一旦安装了 MP4Box,就可以运行如下命令:

MP4Box -brand mp42 input.mp4

这应该将元数据更改为major_brand : mp42

一旦完成后,ffmpeg 应该可以识别它,并能够正确地转换它。

祝你好运! :)

相关内容