다음을 통해 공유


리소스 교환 파일 형식 서비스

[멀티미디어 파일 I/O 이 페이지와 연결된 기능은 레거시 기능입니다. 원본 판독기 대체되었습니다. 원본 판독기 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 멀티미디어 파일 I/O 대신 원본 판독기 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

멀티미디어 파일의 기본 형식은 RIFF(리소스 교환 파일 형식)입니다. RIFF 파일 I/O 함수는 기본 버퍼링 및 버퍼링되지 않은 파일 I/O 서비스에서 작동합니다. 다른 파일 형식과 동일한 방식으로 RIFF 파일을 열고 읽고 쓸 수 있습니다. RIFF에 대한 자세한 내용은 AVIFile 함수 및 매크로참조하세요.

RIFF 파일은 4자 코드를 사용하여 파일 요소를 식별합니다. 이러한 코드는 1~4개의 ASCII 영숫자 문자 시퀀스를 나타내는 32비트 수량으로, 오른쪽에 공백 문자가 채워집니다. 4자 코드의 데이터 형식은 FOURCC . mmioFOURCC 매크로를 사용하여 4자를 4자로 된 코드로 변환합니다. null로 끝나는 문자열을 4자 코드로 변환하려면 mmioStringToFOURCC 함수를 사용합니다.

RIFF 파일의 기본 구성 요소는 청크. 청크는 비디오 클립의 단일 프레임과 같은 멀티미디어 데이터의 논리적 단위입니다. 각 청크에는 다음 필드가 포함됩니다.

  • 청크 식별자를 지정하는 4자 코드
  • 청크에 있는 데이터 멤버의 크기를 지정하는 이중 단어 값입니다.
  • 데이터 필드

다음 그림에서는 두 개의 하위 펑크를 포함하는 "RIFF" 청크를 보여 줍니다.

두 개의 하위 펑크 이미지리프 청크

다른 청크에 포함된 청크는 하위. 하위 펑크를 포함할 수 있는 유일한 청크는 "RIFF" 또는 "LIST"의 청크 식별자를 가진 청크입니다. 다른 청크를 포함하는 청크를 부모 청크. RIFF 파일의 첫 번째 청크는 "RIFF" 청크여야 합니다. 파일의 다른 모든 청크는 "RIFF" 청크의 하위 펑크입니다.

"RIFF" 청크에는 데이터 필드의 처음 4바이트에 추가 필드가 포함됩니다. 이 추가 필드는 필드의 양식 형식 제공합니다. 양식 형식은 파일에 저장된 데이터의 형식을 식별하는 4자 코드입니다. 예를 들어 Microsoft waveform-audio 파일의 형식 형식은 "WAVE"입니다.

"LIST" 청크에는 데이터 필드의 처음 4바이트에도 추가 필드가 포함됩니다. 이 추가 필드에는 필드의 목록 형식 포함됩니다. 목록 유형은 목록의 내용을 식별하는 4자 코드입니다. 예를 들어 목록 형식이 "INFO"인 "LIST" 청크에는 저작권 및 생성 날짜 정보를 제공하는 "ICOP" 및 "ICRD" 청크가 포함될 수 있습니다. 다음 그림에서는 "LIST" 청크와 다른 하위 펑크를 포함하는 "RIFF" 청크를 보여 줍니다("LIST" 청크에는 두 개의 하위 펑크가 포함됨).

목록 청크 이미지가 포함된 리프 청크

멀티미디어 파일 I/O 서비스에는 RIFF 파일의 청크 간을 탐색하는 데 사용할 수 있는 두 가지 함수인 mmioAscendmmioDescend포함됩니다. 이러한 함수를 상위 수준 검색 함수로 사용할 수 있습니다. 청크로 내림차순으로 내려가면 파일 위치가 청크의 데이터 필드(청크의 시작 부분에서 8바이트)로 설정됩니다. "RIFF" 및 "LIST" 청크의 경우 파일 위치는 양식 유형 또는 목록 형식(청크 시작부터 12바이트)에 따라 위치로 설정됩니다. 청크 밖으로 오름차순으로 이동하면 파일 위치가 청크의 끝 다음에 있는 위치로 설정됩니다.

새 청크를 만들려면 mmioCreateChunk 함수를 사용하여 열려 있는 파일의 현재 위치에 청크 헤더를 작성합니다. mmioAscend, mmioDescendmmioCreateChunk 함수는 MMCKINFO 구조를 사용하여 "RIFF" 청크에 대한 정보를 지정하고 검색합니다.