Dieser Titel könnte etwas irreführend sein, also lassen Sie mich erklären ...
Ich lade eine Videodatei herunter ... mpeg, avi - eines der beliebtesten Formate. Wenn ich es jetzt herunterlade und der Download mitten im uhm ... -Download abbricht, gibt Windows Media Player beispielsweise einen Fehler aus und verweigert die Wiedergabe (obwohl die Datei beispielsweise 98% abgeschlossen). Spieler wie KMPlayer oder MediaPlayer Classic spielen es jedoch bis zu diesem Zeitpunkt ab (tatsächlich können sie es auch abspielen, während es heruntergeladen wird).
Also, ich bin interessiert, ... ohne irgendwelche Download-Mittel (Download-Manager und Ähnliches) zu verwenden, um sicherzustellen, dass die Datei vollständig heruntergeladen wurde. Wie kann man überprüfen, ob die Videodatei vollständig heruntergeladen wurde und ob sie vollständig ist?
quelle
Incomplete MPEG should play with no problems.
@ Bobince, die Frage war / ist, wie man auf Korruption prüft und nicht, wie man eine unvollständige Datei abspielt. Auch wenn ein Format die Wiedergabe unvollständiger Dateien unterstützt, sollte es dennoch möglich sein, auf Beschädigungen zu prüfen, wenn die Datei nicht den Formatspezifikationen entspricht. Beispielsweise können Sie eine unvollständige Nur-Text-Datei weiterhin lesen, aber Sie können weiterhin feststellen, ob die Datei Probleme aufweist, z. B. wenn sie in der Mitte eines Satzes endet oder ein Teil offensichtlich fehlender Informationen in der Mitte vorhanden ist.Antworten:
Sie können eine Funktion in
ffmpeg
Video Converter verwenden: Wenn Sie festlegen, dass Videos in nichts umgewandelt werden sollen, werden nur die Eingabedateien gelesen und alle auftretenden Fehler gemeldet. Dies ist ein sehr schneller Vorgang, da Videobilder nur gelesen, geprüft und unbemerkt abgelegt werden.Beispiel Befehlszeile: (für Linux)
-v error
bedeutet ein gewisses Maß an Ausführlichkeit (um einige Fehler anzuzeigen, die normalerweise verborgen sind, weil sie die Spielbarkeit nicht wesentlich beeinträchtigen).Sie erhalten ein vollständiges Fehlerprotokoll, in dem einige allgemeine Informationen zur Datei ffmpeg ausgegeben werden. Dies erfordert möglicherweise Ihre Aufmerksamkeit, da Filter geschrieben werden können, um eine Stapelprüfung ähnlicher Dateien durchzuführen.
FFmpeg ist auch für Windows verfügbar hier . Die Befehlszeile ist mit Ausnahme von stderr redirect fast identisch:
quelle
ffprobe
dass im Paket mit kommtffmpeg
. Es führt keine Konvertierung durch, sondern liest einfach Metadateninformationen aus der Datei. Daher erkennt es Fehler in Metadaten, findet jedoch keine Probleme in der Datei selbst. Persönlich verwendetffprobe
, um eine schnelle Überprüfung des Uploads vor der weiteren Verarbeitung durchzuführen-map
). Dies beschleunigt den Vorgang erheblich:ffmpeg -v error -i in.mkv -map 0:1 -f null …
Wenn ein Fehler auftritt, wird die Byte-Position protokolliert, anhand derer Sie die Datei abschneiden können (ein oder zwei Megabyte früher, um sicherzugehen) und dann den Download fortsetzen.Ich mochte die Idee,
ffmpeg -f null
obiges zu verwenden, aber ich möchte eigentlich den Prozess der Verwendung dieser Ausgabe automatisieren. Ein häufiges Szenario für meine Musikvideosammlung ist, dass ich nur wenige Clips mit derselben Auflösung habe und ich möchte die Überprüfungsprotokolle für diese Dateien unterscheiden, um diejenigen zu entfernen, die am häufigsten beschädigt werden.Leider hat ffmpeg bisher keine Möglichkeit, den interaktiven Modus zu deaktivieren, der für diesen Anwendungsfall Rauschen ausgibt. Am Ende habe ich ein einfaches Wrapper-Skript gehackt, um zu filtern:
Beispielausgabe:
quelle
Unter Windows können Sie die Integrität für Videos im aktuellen Ordner und in allen Unterordnern mit dieser Fledermausdatei stapelweise überprüfen:
checkvideo.bat
Verwenden:
checkvideo.bat [filter]
Wenn Sie keinen Filter angeben, wird "* .mp4" angezeigt.
Proben:
checkvideo.bat
checkvideo.bat *.avi
Setup: Laden Sie FFmpeg für Windows von hier herunter: https://ffmpeg.zeranoe.com/builds/ und entpacken Sie sie. Ändern Sie
C:\ffmpeg\bin\
in der bat-Datei den Pfad, in den Sie ffmpeg entpackt haben. Legen Siecheckvideo.bat
einen Ordner im Pfad an oder fügen Sie seinen Ordner hinzu Pfadumgebungsvariablequelle
Das Problem mit der anderen Antwort
ffmpeg
beim Umcodieren in dasnull
Format ist, dass es sehr lange dauert. Insbesondere, wenn Sie mehrere Dateien in einem Verzeichnis prüfen möchten.Eine schnelle Möglichkeit wäre, Miniaturansichten für alle Videos zu generieren und festzustellen, wo die Erzeugung der Miniaturansichten fehlschlägt.
Diese Methode erwies sich als viel SCHNELLER als andere Methoden.
Es gibt jedoch eine CAVEAT. Diese Methode kann zu falschen Ergebnissen führen, da manchmal sogar für beschädigte Dateien Miniaturansichten erstellt werden können. Wenn beispielsweise die Videodatei nur am Ende beschädigt ist, schlägt diese Methode fehl.
quelle
MediaInfo ist ein großartiges Tool, mit dem Sie Informationen zu allen Videodateien abrufen können, die Sie darauf werfen möchten . Dies kann möglicherweise die gewünschten Informationen hervorheben.
Ein weiteres Tool ist GSpot , das seit 2007 nicht mehr aktualisiert wurde.
Versuchen Sie, jedem eine als gut und als schlecht bekannte Datei zuzuweisen, und vergleichen Sie die Ergebnisse.
Ich habe GSpot verwendet, bis es nicht mehr aktualisiert wurde, und dann zu MediaInfo gewechselt
quelle
mediainfo *
.mediainfo
prüft offenbar nicht auf Vollständigkeit. Ich habe eine 33 MB großewebm
Videodatei genommen undtruncate
sie zur Hälfte zerlegt.mediainfo
hatte immer noch fast die gleiche Ausgabe für beide, kein offensichtliches Zeichen von Korruption. Nach demtruncate
Erreichen von 1 MB gab es noch keine eindeutigen Anzeichen für eine Beschädigung der Ausgabe. Nur wenn man sich die Ausgabe genauer ansieht, gibt es widersprüchliche Informationen. Diese Teile hängen jedoch vom Format der Videodatei ab, sodass Sie diese Erkennung nicht automatisieren können.mediainfo
liest nichts als Metadaten. Dadurch wird die Gültigkeit Ihrer Datei in keiner Weise überprüft.