Dieser Titel könnte etwas irreführend sein, also lassen Sie mich erklären ...
Ich lade eine Videodatei herunter ... mpeg, avi - ist eines der beliebtesten Formate. Nun, wenn ich es herunterlade und der Download bricht in der Mitte des ähm ... Downloads ab, dann gibt z.B. der Windows Media Player einen Fehler aus und weigert sich, es abzuspielen (obwohl die Datei, sagen wir, zu 98% vollständig ist). Aber Player wie KMPlayer oder MediaPlayer Classic spielen die Datei bis zu diesem Punkt ab (sie können sie sogar abspielen, während sie heruntergeladen wird).
Also, ich bin interessiert, ... ohne Verwendung von Download-Mitteln (Download-Manager und dergleichen), um sicherzustellen, dass die Datei vollständig heruntergeladen wird, wie kann man überprüfen, ob die Videodatei ganz heruntergeladen ist, und dass es vollständig ist?
Sie können eine Funktion des Videokonverters "ffmpeg" nutzen: Wenn Sie angeben, dass das Video in nichts umkodiert werden soll, wird es nur die Eingabedatei lesen und alle auftretenden Fehler melden. Dies ist ein sehr schneller Prozess, da die Videobilder nur gelesen, geprüft und dann stillschweigend gelöscht werden.
Beispiel einer Befehlszeile: (für Linux)
ffmpeg -v error -i file.avi -f null - 2>error.log
-v error
bedeutet eine bestimmte Ausführlichkeitsstufe (um einige Fehler anzuzeigen, die normalerweise versteckt sind, weil sie die Spielbarkeit nicht so sehr beeinflussen).
Sie erhalten ein vollständiges Fehlerprotokoll mit einigen allgemeinen Informationen über die Datei, die ffmpeg ausgibt, so dass dies wahrscheinlich Ihre Aufmerksamkeit erfordert, 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 fast identisch, mit Ausnahme der Umleitung von stderr:
ffmpeg.exe -v error -i file.avi -f null - >error.log 2>&1
Ich mochte Idee der Verwendung von ffmpeg -f null
oben, aber I' d tatsächlich wie zu automatisieren Prozess der Verwendung dieser Ausgabe. Insbesondere gemeinsame Szenario habe ich mit meiner Musik-Video-Sammlung ist, dass ich ein paar Clips, die gleiche Auflösung haben, und ich möchte diff Überprüfung Protokolle für diese Dateien zu entfernen, die am meisten gebrochen.
Leider hat ffmpeg bisher keine Möglichkeit, seinen interaktiven Modus zu deaktivieren, der in diesem Fall Rauschen ausgibt. Ich endete hacken einfache Wrapper-Skript zu tun, Filterung:
#!/usr/bin/env python
import sys
import os
import re
t = os.popen('ffmpeg -v 5 -i "%s" -f null - 2>&1' % sys.argv[1]).read()
t = re.sub(r"frame=.+?\r", "", t)
t = re.sub(r"\[(.+?) @ 0x.+?\]", "[\\1]", t)
print t
Beispiel-Ausgabe:
[mpeg1video]ac-tex damaged at 21 17
[mpeg1video]Warning MVs not available
[mpeg1video]concealing 22 DC, 22 AC, 22 MV errors
[mpeg1video]Warning MVs not available
[mpeg1video]concealing 22 DC, 22 AC, 22 MV errors
[mpeg1video]ac-tex damaged at 13 9
MediaInfo ist ein großartiges Werkzeug, um Informationen über jede beliebige Videodatei zu erhalten, die Sie sich wünschen. Damit können Sie vielleicht die gewünschten Informationen hervorheben.
Ein weiteres Tool ist GSpot, aber es wurde seit 2007 nicht mehr aktualisiert.
Versuchen Sie, jedem Tool eine bekannte gute und eine bekannte schlechte Datei zu geben und die Ergebnisse zu vergleichen.
Ich habe GSpot verwendet, bis es nicht mehr aktualisiert wurde, und bin dann zu MediaInfo gewechselt.