비디오 파일의 줄 수

비디오 파일의 줄 수

좋아요 여러분, 16진수 편집기나 메모장++ 16진수 편집기 플러그인을 사용하여 비디오 파일을 복사하고 붙여넣는 것은 완전히 잘 작동합니다. 이제 비디오 파일의 줄 수를 찾고 싶습니다.

먼저) 동영상 파일을 메모장++로 열었는데 총 줄 수는 1876줄(가장 왼쪽 열)입니다.

둘째) 파일을 16진수 모드로 봅니다. 총 줄 수는 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_file_format

여기에서 비트맵 파일이 다양한 고정 길이 청크와 가변 길이 청크로 어떻게 나누어지는지 볼 수 있습니다. 예를 들어, BMP 파일의 처음 14바이트는 비트맵 헤더이며 파일에 대한 몇 가지 일반 정보를 알려줍니다. 다른 헤더는 이미지의 픽셀 형식, 너비, 높이 등에 대해 알려줍니다. 헤더에서 이 데이터를 사용하여 파일에 저장된 나머지 이미지 데이터를 이해할 수 있습니다.

답변2

비디오 파일에는 "라인"이라는 유용한 개념이 없습니다. 왜 "줄"의 수를 찾고 있습니까?

보고된 숫자의 차이에 관해: Notepad++는 아마도 "\n"보다 더 많은 줄바꿈을 감지할 것입니다(예를 참조하세요).http://en.wikipedia.org/wiki/Newline). 16진수 모드에서 파일을 볼 때 줄당 바이트 너비가 고정되어 바이트당 2문자로 표시됩니다.

16진수 > 메모장++ > 코드

합리적으로 들리네요.

관련 정보