![Anzahl der Zeilen in einer Videodatei](https://rvso.com/image/1402592/Anzahl%20der%20Zeilen%20in%20einer%20Videodatei.png)
Okay Leute, das Kopieren und Einfügen einer Videodatei mit dem Hex-Editor oder mit dem Hex-Editor-Plugin von Notepad++ funktioniert einwandfrei. Jetzt möchte ich die Anzahl der Zeilen in einer Videodatei herausfinden.
zuerst) Ich habe die Videodatei in Notepad++ geöffnet und die Gesamtzeilenanzahl beträgt 1876 (die ganz linke Spalte).
Zweitens) Wenn ich mir die Datei im Hex-Modus ansehe, beträgt die Gesamtzahl der Zeilen 39240;
Drittens habe ich ein C++-Programm zum Lesen der Zeilenanzahl aus derselben Videodatei erstellt. Mein Code lautet:
char c;
int total_line=0;
ifstream file("vid.avi",ios::binary | ios::in)
while(!file.eof())
{
c=file.get();
if(c=='\n')
{
total_line++;
}
}
file.close();
cout<<"Total line "<<total_line<<endl;
Das ergibt eine Gesamtzahl von 1313 Zeilen. Kann jemand helfen, welche richtig und welche falsch ist?
Antwort1
In einer Videodatei gibt es keine „Zeichen“ oder „Zeilen“. Das liegt daran, dass die Daten in einer Videodatei kein Text, sondern Video sind! :)
Um eine Datei, die etwas anderes als Text enthält, zu verstehen, müssen Sie sie im Binärmodus öffnen und die Datei als großen Blob binärer Daten behandeln, der mehrere Bytes enthält. Um diese Art von Datei zu verarbeiten, können Sie Bytes aus dieser Datei in Blöcken lesen (z. B. 1024 Bytes auf einmal).
Um diese Datei nun zu verarbeiten und die Daten auf sinnvolle Weise zu extrahieren, müssen Sie das Format der Datei kennen und wissen, wie die Daten für dieses bestimmte Dateiformat binär angeordnet sind.
Schauen wir uns ein einfaches Bilddateiformat an, zum Beispiel das BMP-Format.http://en.wikipedia.org/wiki/BMP-Dateiformat
Dort können Sie sehen, wie die Bitmap-Datei in verschiedene Blöcke mit fester und variabler Länge aufgeteilt ist. Die ersten 14 Bytes einer BMP-Datei sind beispielsweise ein Bitmap-Header und geben Ihnen einige allgemeine Informationen über die Datei. Andere Header geben Auskunft über das Pixelformat, die Breite, Höhe usw. des Bildes. Sie können diese Daten in Headern verwenden, um den Rest der in der Datei gespeicherten Bilddaten zu verstehen.
Antwort2
In einer Videodatei gibt es kein nützliches Konzept einer „Zeile“. Warum suchen Sie nach der Anzahl der „Zeilen“?
Zum Unterschied in den gemeldeten Zahlen: Notepad++ erkennt wahrscheinlich mehr Zeilenumbrüche als nur "\n" (siehe zum Beispielhttp://en.wikipedia.org/wiki/Newline). Wenn Sie die Datei im Hex-Modus anzeigen, wird sie mit 2 Zeichen pro Byte und einer festen Breite von Bytes pro Zeile angezeigt, sodass
hex > notepad++ > Ihr Code
klingt vernünftig.