Q&A

  • avi 파일정보를 알아올 수 없나요?
안녕하세요. 거리입니다.
델파이로 이것저것 만들어 보는데 재미를 붙여서
여러가지 시도는 해보지만 기초의 부족으로 금방 열정이 식어버린곤 합니다.ㅡㅡ;;
다운 받은 프로그램 중에서 avi파일의 정보를 알아오는 프로그램이 있어서
델파이로 구현하려고 이곳저곳 소스 / 정보를 찾아봤지만
avi파일에 관한건 델로 만들어 진게 없는것 같네요.
그래서 어떻게 접근하는지 개념을 얻고 싶어 질문을 올립니다.

아래는 프로그램에서 동영상을 선택하면 나오는 정보입니다.
제가 구현하고 싶은것도 이것이죠..^^
-------------------------------------------------------------------------
파일명 : jji-Red.Planet.ac3.cd2.avi
=======================================================
* 파일 정보
    실제 파일의 크기   : 729,927,680 바이트(696.1MB)
    파일 데이터 크기   : 729,927,554 바이트(696.1MB)
    재생시간           : 00:55:42 (3,342 초)
    평균 데이타 전송률 : 218 KCPS (1,744 kbps)
    제작툴             : Nandub v1.0rc2

* 영상 정보
    프레임 속도        : 24 프레임/초
    평균 비트 전송률   : 1,360 kbps
    크기 (비율)        : 640 x 272  ( 2.35 : 1 )
    압축 코덱 (FourCC) : DivX MPEG-4 V3.xx Low motion codec(div3)

* 소리 정보
    비트 전송률        : 384 kbps
    샘플 비율          : 48,000 Hz
    음악 채널 수       : 5
    압축 코덱          : AC3(DVM - FAST Multimedia AG)

* 기타 정보
    AVI 파일 속성      : 인덱스있음  AVIF_ISINTERLEAVED  
    인덱스 정보        : 정상/전체프레임-80130/키프레임-637
    FIA 변환 여부      : 변환안됨(보통)
    키프레임 정보      : VKI (평균:5.3초 표준편차:2.6초 최대:12.5초)
---------------------------------------------------------------------------
그래서 avi파일의 헤더 정보에서 알아온다는것 까진 알았는데
그 다음부터 어떻게 해야할지 막막하네요.
아래는 avi파일의 헤더라고 하네요..

typedef struct {
    DWORD  dwMicroSecPerFrame;
    DWORD  dwMaxBytesPerSec;
    DWORD  dwReserved1;
    DWORD  dwFlags;
    DWORD  dwTotalFrames;
    DWORD  dwInitialFrames;
    DWORD  dwStreams;
    DWORD  dwSuggestedBufferSize;
    DWORD  dwWidth;
    DWORD  dwHeight;
    DWORD  dwScale;
    DWORD  dwRate;
    DWORD  dwStart;
    DWORD  dwLength;
} MainAVIHeader;

typedef struct {
    FOURCC  fccType;
    FOURCC  fccHandler;
    DWORD   dwFlags;
    DWORD   dwReserved1;
    DWORD   dwInitialFrames;
    DWORD   dwScale;
    DWORD   dwRate;
    DWORD   dwStart;
    DWORD   dwLength;
    DWORD   dwSuggestedBufferSize;
    DWORD   dwQuality;
    DWORD   dwSampleSize;
} AVIStreamHeader;

typedef struct {
    DWORD  ckid;
    DWORD  dwFlags;
    DWORD  dwChunkOffset;
    DWORD  dwChunkLength;
} AVIINDEXENTRY;

typedef struct {
    BYTE  bFirstEntry;
    BYTE  bNumEntries;
    WORD  wFlags;
    PALETTEENTRY  peNew;
} AVIPALCHANGE;


0  COMMENTS