Número de linhas em um arquivo de vídeo

0

Ok, caras copiando e colando arquivos de vídeo com editor hexadecimal ou com o plugin notepad ++ hexadecimal funcionam perfeitamente. Agora, quero encontrar o número de linhas em um arquivo de vídeo -

primeiro) Eu abri o arquivo de vídeo no notepad ++ e o número total de linhas é 1876 (a coluna mais à esquerda).

Segundo) Eu vejo o arquivo no modo hexadecimal o número total de linhas é 39240;

Em terceiro lugar, criei um programa c ++ para ler o número de linhas do mesmo arquivo de vídeo. Meu código é:

  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;

Isto dá uma linha total de 1313. Qual é a correta e qual é a falsa ajuda de alguém.

    
por user3319758 24.03.2014 / 20:01

2 respostas

1

Não há "caracteres" ou "linhas" em um arquivo de vídeo. Isso porque, os dados em um arquivo de vídeo não são texto, mas sim vídeo! :)

Então, para entender um arquivo que contém algo diferente de texto, você precisa abri-lo no modo binário e tratar o arquivo como um grande bloco de dados binários contendo vários bytes. Agora, para processar esse tipo de arquivo, você pode ler bytes desse arquivo em partes (por exemplo, 1024 bytes de cada vez)

Agora, para processar este arquivo e extrair os dados de maneira significativa, você precisa saber o formato desse arquivo e como os dados são dispostos em binário para esse formato de arquivo específico.

Vamos dar uma olhada no formato de arquivo de imagem simples, por exemplo, o formato BMP. link

Lá você pode ver como o arquivo de bitmap é dividido em vários blocos de comprimento fixo e variável. Por exemplo, os primeiros 14 bytes do arquivo BMP são um cabeçalho de bitmap e informam algumas informações gerais sobre o arquivo. Outros cabeçalhos irão informá-lo sobre o formato do pixel, largura, altura, etc. da imagem. Você pode usar esses dados nos cabeçalhos para entender o restante dos dados da imagem armazenados no arquivo.

    
por 24.03.2014 / 20:33
0

Não há um conceito útil de uma "linha" em um arquivo de vídeo. Por que você está procurando o número de "linhas"?

Em relação à diferença nos números reportados: O Notepad ++ provavelmente detecta mais quebras de linha do que apenas "\ n" (veja, por exemplo, link ). Quando você visualiza o arquivo no modo hexadecimal, ele é exibido com 2 caracteres por byte com uma largura fixa de bytes por linha, portanto

hex > notepad ++ > seu código

parece razoável.

    
por 24.03.2014 / 20:11