avconv mkv 转换为 mkv 存在音频压缩错误

avconv mkv 转换为 mkv 存在音频压缩错误

为了进行质量测试,我想压缩 matroska 文件的音频部分(至低比特率)而不损坏视频。音频编解码器是 AAC,视频编解码器是 H264。我在 Ubuntu 上使用 avconv。当我启动 CLI 时:

 avconv -i input.mkv -f matroska -vcodec copy -acodec copy -ab 12k \
            -strict experimental output.mkv

我收到错误:

[matroska @ 0x1ea79c0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: -80 >= -80 av_interleaved_write_frame(): Invalid argument

当我使用 .mp4 文件时不会发生这种情况(如果我使用 CLI)。

完整输出如下:

[matroska,webm @ 0x971960] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'Arte-Documentaire-2013-06-07-13-35-30-269s-x264.mkv':
  Duration: 00:05:00.44, start: 0.000000, bitrate: N/A
    Stream #0.0(eng): Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 180k tbc (default)
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16 (default)
File 'out.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'out.mkv':
  Metadata:
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: H264 / 0x34363248, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 1k tbn, 1k tbc (default)
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 12 kb/s (default)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac -> aac)
Press ctrl-c to stop encoding
[matroska @ 0x11e1880] Application provided invalid, non monotonically increasing dts to muxer in stream 0: -80 >= -80
av_interleaved_write_frame(): Invalid argument

任何想法?

答案1

-acodec copy您不能同时复制音频编解码器并重新编码。

请尝试以下操作:

avconv -i input.mkv -c:v copy -c:a aac -strict experimental -b:a 12k out.mkv

请注意,aacFFmpeg/Libav 中的编码器提供的质量不如其他编码器(例如libfdk-aaclibfaac)。


如果这不起作用……您使用的工具是哪个版本?询问 FFmpeg/Libav 时,请务必包含完整、未剪辑的控制台输出。

下载后此错误是否仍然存在最新版本ffmpeg 的版本?每次发布都会修复数百个错误,因此您很有可能正在使用过时的版本。

相关内容