Möchte man vorhandene Video-Dateien, wie z.B. *.avi, *.mpeg bzw. *.mpg usw., auf Fehler überprüfen, bietet sich FFmpeg an.

Beim Schauen von älteren Dateien mit meinem Nachwuchs zusammen wunderte ich mich über so manchen Hänger und Aussetzer in Bild und Ton. Bereits Jahre zuvor gab es die gleichen Probleme, als besagte Dateien bzw. Videos zusammen mit meinem ältesten Neffen angeguckt wurde.

Zeit also der Sache mal auf den Grund zugehen. Dachte ich damals noch es liegt am Rechner oder Netz (die Dateien liegen auf einer Freigabe), stellte sich mit mittlerweile neueren Rechner und selbst bei lokaler Wiedergabe raus, das die Probleme bestand haben. Es muss also an den Dateien liegen.

Nun gibt es mehrere Möglichkeiten: Zum einen kann man mit dem VLC media player diese Wiedergaben und in den Codec-Informationen nach Fehler schauen (siehe Im VLC media player oder dem DVBViewer Unterbrechungen ermitteln) oder man lässt mal FFmpeg drüber laufen und sieht sich anschließend das Protokoll an.

Da es um mehrere Dateien geht, war letzteres die Wahl. Unter Windows sieht der Aufruf wie folgt aus:

ffmpeg.exe -v error -i %FILE% -f null - >error.log 2>&1

Die (unerfreulich) Ausgabe kann so oder so ähnlich aussehen:

[aist#0:1/ac3 @ 000002b047e58c00] [dec:ac3 @ 000002b047f67280] Error submitting packet to decoder: Invalid data found when processing input
[aist#0:1/ac3 @ 000002b047e58c00] [dec:ac3 @ 000002b047f67280] Error submitting packet to decoder: Error number -16976906 occurred
Last message repeated 1 times
[null @ 000002b047f1e840] Application provided invalid, non monotonically increasing dts to muxer in stream 1: 37343232 >= 37343232
...
[null @ 000002b047f1e840] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 49393 >= 49393
[ac3 @ 000002b047f67ac0] incomplete frame

Kurzum: “error” und “incomplete” ist schlecht. Wie es nun weitergehen kann ist eine andere Frage.

Hinweis am Rande: FFmpeg kann offenbar nicht mit Umlauten umgehen. Zumindest bei uns half auch keine Änderung der Codepage etwas. Im Zweifelsfall also die Dateien umbenennen.

Quellen

superuser – How can I check the integrity of a video file (avi, mpeg, mp4…)?