Количество строк в видеофайле

Количество строк в видеофайле

Ладно, ребята, копирование и вставка видеофайла с помощью шестнадцатеричного редактора или с помощью плагина шестнадцатеричного редактора Notepad++ работает совершенно нормально. Теперь я хочу узнать количество строк в видеофайле.

во-первых) Я открыл видеофайл в Notepad++, и общее количество строк составило 1876 (самый левый столбец).

Во-вторых) Я просматриваю файл в шестнадцатеричном режиме, общее количество строк составляет 39240;

В-третьих) Я создал программу на C++ для чтения количества строк из одного и того же видеофайла. Мой код такой:

  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;

Это дает общую строку 1313. Какая из них правильная, а какая ложная, кто-нибудь, помогите.

решение1

В видеофайле нет "символов" или "строк". Это потому, что данные в видеофайле - это не текст, а видео! :)

Итак, чтобы понять файл, содержащий что-либо, кроме текста, вам нужно открыть его в двоичном режиме и рассматривать файл как большой блок двоичных данных, содержащий несколько байтов. Теперь, чтобы обработать этот тип файла, вы можете читать байты из этого файла частями (например, 1024 байта за раз)

Теперь, чтобы обработать этот файл и извлечь данные осмысленным образом, вам необходимо знать формат этого файла и то, как данные представлены в двоичном виде для этого конкретного формата файла.

Давайте рассмотрим простой формат файла изображения, например, формат BMP.http://en.wikipedia.org/wiki/Формат_файла_BMP

Там вы можете увидеть, как файл растрового изображения делится на различные фрагменты фиксированной и переменной длины. Например, первые 14 байт файла BMP являются заголовком растрового изображения и сообщают вам некоторую общую информацию о файле. Другие заголовки сообщат вам о формате пикселей, ширине, высоте и т. д. изображения. Вы можете использовать эти данные в заголовках, чтобы понять остальные данные изображения, хранящиеся в файле.

решение2

В видеофайле нет полезного понятия "строка". Зачем вы ищете количество "строк"?

Что касается разницы в сообщаемых числах: Notepad++, вероятно, обнаруживает больше переносов строк, чем просто "\n" (см., например,http://en.wikipedia.org/wiki/Новая строка). При просмотре файла в шестнадцатеричном режиме он отображается с 2 символами на байт с фиксированной шириной байтов на строку, поэтому

hex > notepad++ > ваш код

звучит разумно.

Связанный контент