다음을 통해 공유


MPEG 샘플 속성

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

MPEG 샘플에는 다음과 같은 특성이 있습니다.

타임스탬프를

모든 샘플에 시작 및 중지 시간이 있는 것은 아닙니다. 패킷 및 페이로드 데이터에 대한 샘플 중지 시간은 유용하지 않습니다. 일반적으로 시작 시간과 1로 설정됩니다. MPEG 패킷 또는 페이로드 데이터 샘플은 생성된 시스템 계층 패킷에 유효한 PTS가 있는 경우 시작 및 중지 시간 집합을 갖습니다.

타임스탬프에 대한 자세한 내용은 ISO1-11172의 섹션 2.4.1: "패킷 헤더에는 패킷의 첫 번째 액세스 단위를 참조하는 디코딩 및/또는 프레젠테이션 타임스탬프(DTS 및 PTS)가 포함될 수 있습니다."

MPEG_Stream 주 형식의 경우 시작 시간은 첫 번째 바이트의 바이트 위치이며 초당 1 바이트로 평가됩니다. 중지 시간은 마지막 바이트의 바이트 위치입니다. 따라서 연속 샘플은 첫 번째 패킷의 중지 시간이 다음 패킷의 시작 시간과 같아야 합니다. 비디오 CD 데이터의 경우 매체의 원본은 CDFS에서 노출하는 비디오 CD 파일의 형식과 시작 시 표준 RIFF 청크 형식과 일치해야 합니다.

MPEG 비디오 패킷 및 페이로드 유형의 경우 타임스탬프는 샘플에서 그림 시작 코드가 시작되는 첫 번째 비디오 프레임의 프레젠테이션 시간입니다.

MPEG 오디오 패킷 및 페이로드 유형의 경우 타임스탬프는 샘플에서 동기화 코드가 시작되는 첫 번째 오디오 프레임의 프레젠테이션 시간입니다.

처리 필터를 통해 타임스탬프를 사용하지 않는 패킷 및 페이로드 데이터를 성공적으로 미리 등록할 수 있다고 가정합니다.

불연속성

스트림에 중단이 있는 경우(예: 실시간 데이터의 간격 또는 데이터 오류 또는 검색 후) 불연속성 속성은 다음 미디어 샘플에서 설정됩니다. 이를 통해 타임스탬프를 불연속성으로 만들 수도 있습니다.

스트림 종료 알림

디코더가 이 알림을 받으면 버퍼링된 데이터를 처리해야 합니다. 그런 다음 모든 새 데이터는 불연속성 속성으로 시작해야 합니다.

DirectShow의 MPEG-2 지원