avconv mkv to mkv mit Audiokomprimierungsfehler

2

Um Qualitätstests durchzuführen, möchte ich den Audioteil (auf eine niedrige Bitrate) einer Matroska-Datei komprimieren, ohne das Video zu beschädigen. Audio-Codec ist AAC und Video-Codec ist H264. Ich benutze Avconv auf Ubuntu. Wenn ich die CLI starte:

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

Ich erhalte den Fehler:

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

Es tritt nicht auf, wenn ich .mp4-Dateien verwende (wenn ich die CLI in Folge habe).

Die vollständige Ausgabe lautet wie folgt:

[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

Irgendeine Idee?

MarAja
quelle

Antworten:

1

Sie können den Audio-Codec nicht gleichzeitig kopieren -acodec copyund neu codieren.

Versuche Folgendes:

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

Beachten Sie, dass der aacEncoder in FFmpeg / Libav nicht so gute Qualität liefert wie andere (z . B. libfdk-aacoder libfaac).


Wenn das nicht funktioniert ... welche Versionen der Tools verwenden Sie? Bitte geben Sie immer die vollständige, ungekürzte Konsolenausgabe an, wenn Sie nach FFmpeg / Libav fragen.

Bleibt dieser Fehler bestehen, wenn Sie die neueste Version von ffmpeg herunterladen ? In jeder Version werden Hunderte von Fehlern behoben, und es besteht die Möglichkeit, dass Sie eine veraltete Version verwenden.

slhck
quelle
Ich habe versucht, Ihren Vorschlag, aber ich bekomme immer noch den gleichen Fehler. Wenn ich den anderen Codec probiere, erhalte ich einen neuen Fehler: "unbekannter Encoder". Meine Version von avconv (avconv -version) ist: avconv version 0.8.6-6: 0.8.6-0 Ich habe es mit der klassischen CLI "sudo apt-get install avconv"
MarAja
Könnten Sie es bitte mit einer neueren Version versuchen, wie einer von FFmpeg in dem Link, den ich Ihnen gegeben habe?
Slhck
Es klappt! Vielen Dank! Entschuldigung, dass du es nicht das erste Mal gemacht hast :). Trotzdem bekomme ich immer noch unbekannte Encoder, wenn ich versuche, libfdk-aac oder libfaac zu verwenden. Wenn sie besser sind, würde ich gerne mit ihnen arbeiten. Wie kann ich sie hinzufügen?
MarAja
Ich bin froh, dass es funktioniert hat. Siehe AAC-Codierungshandbuch - Sie müssen diese ffmpegmit Unterstützung kompilieren (siehe auch Kompilierungshandbücher ).
Slhck