2008-08-27 3 views
0

일반적인 비디오 형식 (MPEG-1/2/4, .wmv, .mov 등)의 프레임 시작 코드 목록을 아는 사람 (또는 포함 된 리소스를 알고있는 사람)이 있습니까?비디오 코덱 시작 코드

예를 들어, MPEG-1 비디오 프레임은 항상 "00 00 01 00"으로 시작합니다.

본질적으로 여러 가지 비디오 형식의 여러 비디오에 걸쳐 프레임의 시작 부분을 자동으로 찾을 수있는 프로그램을 작성할 수 있도록 이러한 기능을 알고 싶습니다.

답변

1

달성하고자하는 것은 무엇입니까?

비디오 컨테이너 유형이 어떻게 구성되어 있습니까?

예를 들어보기 : http://www.daubnet.com/formats/AVI.html AVI 파일을 구성하는 방법에 대한 설명입니다

. Google은 다른 컨테이너 파일 형식을 찾는 데 도움을 줄 수 있습니다.

비디오를 녹화 할 때는 일반적으로 개별 프레임으로 구성되며 디렉토리의 개별 비트 맵 파일을 생각해보십시오.

동영상의 파일이 하나 뿐이므로 프레임의이 스트림은 내용을 설명하는 헤더와 프레임이 파일에 순차적으로 저장되는 특정 레이아웃이있는 컨테이너에 저장됩니다. 내 자신의 컨테이너

간단한 예 :

{ 
    struct header 
    { 
     unsigned int frametype; 
     unsigned int framesize; 
    }; 

    byte* readFrame(header* pHdr, int frameNum) 
    { 
     byte* pFirstFrame = ((byte*) pHdr) + sizeof(header); 
     return pFristFrame + frameNum * pHdr->framesize; 
    } 
} 

여러 다른 컨테이너 종류가 있습니다. AVI는 이러한 컨테이너 유형 중 하나입니다. 개별 프레임을 가져 오려면 파일의 헤더를 해석 한 다음 해당 정보를 기반으로 구문 분석 할 프레임의 위치를 ​​계산해야합니다.

avi 파일 형식의 정의에 대한 링크를 게시했습니다. mpeg/mkv/ogm 파일 형식에 대한 정보를 얻을 수있는 다른 곳이 있습니다.

프로그램을 작동 시키려면이 정보가 필요합니다.

압축 된 형식은 모든 개별 프레임을 독립적으로 보호하지 못합니다. 이들은 개별 프레임과 몇 개의 중간 프레임을 안전하게 유지합니다. 여기에는 현재 프레임이 마지막 전체 프레임과 다른 점에 대한 정보 만 들어 있습니다. 따라서 모든 프레임 번호에서 완전한 프레임을 추출 할 수는 없습니다.