![Número de líneas en un archivo de vídeo](https://rvso.com/image/1402592/N%C3%BAmero%20de%20l%C3%ADneas%20en%20un%20archivo%20de%20v%C3%ADdeo.png)
Bien, chicos, copiar y pegar archivos de video con el editor hexadecimal o con el complemento del editor hexadecimal notepad ++ funciona totalmente bien. Ahora, quiero encontrar el número de líneas en un archivo de video.
primero) Abrí el archivo de video en notepad ++ y el número total de líneas es 1876 (la columna más a la izquierda).
Segundo) Veo el archivo en modo hexadecimal, el número total de líneas es 39240;
En tercer lugar, construí un programa en C++ para leer el número de líneas del mismo archivo de video. Mi código es:
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;
Esto da una línea total de 1313. Cuál es correcto y cuál es falso, alguien puede ayudar.
Respuesta1
No hay "caracteres" ni "líneas" en un archivo de vídeo. ¡Esto se debe a que los datos en un archivo de video no son texto sino video! :)
Entonces, para darle sentido a un archivo que contiene algo más que texto, debe abrirlo en modo binario y tratar el archivo como una gran masa de datos binarios que contiene varios bytes. Ahora, para procesar este tipo de archivo, puede leer bytes de ese archivo en fragmentos (por ejemplo, 1024 bytes a la vez)
Ahora, para procesar este archivo y extraer los datos de manera significativa, necesita saber el formato de ese archivo y cómo se distribuyen los datos en binario para ese formato de archivo en particular.
Echemos un vistazo al formato de archivo de imagen simple, por ejemplo, el formato BMP.http://en.wikipedia.org/wiki/BMP_file_format
Allí puede ver cómo el archivo de mapa de bits se divide en varios fragmentos de longitud fija y variable. Por ejemplo, los primeros 14 bytes de un archivo BMP son un encabezado de mapa de bits y brindan información general sobre el archivo. Otros encabezados le informarán sobre el formato de píxeles, el ancho, el alto, etc. de la imagen. Puede utilizar estos datos en los encabezados para dar sentido al resto de los datos de la imagen almacenados en el archivo.
Respuesta2
No existe un concepto útil de "línea" en un archivo de vídeo. ¿Por qué buscas el número de "líneas"?
Con respecto a la diferencia en los números reportados: Notepad++ probablemente detecta más saltos de línea que solo "\n" (ver por ejemplohttp://en.wikipedia.org/wiki/Newline). Cuando ve el archivo en modo hexadecimal, se muestra con 2 caracteres por byte con un ancho fijo de bytes por línea, por lo que
hexadecimal > notepad++ > tu código
Suena razonable.