다음을 통해 공유


콘텐츠 버퍼링

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

판독기 개체가 스트리밍 파일을 열면 파일 헤더의 설정에 따라 버퍼의 크기가 결정됩니다. 버퍼는 일정한 속도로 누출되는 바닥에 구멍이 있는 버킷으로 생각할 수 있습니다. 버킷이 채워진 속도가 평균적으로 누출되는 속도보다 크지 않은 한 버킷은 절대 오버플로되지 않습니다.

가상 버킷이 누출되는 속도는 스트림의 비트 비율입니다. 버킷이 채우는 속도는 실제 스트리밍 비트 속도입니다. 압축 스트림의 데이터는 달성된 압축의 양에 따라 샘플에서 샘플로 크기가 다릅니다. 따라서 스트림의 비트 전송률이 프로필에 설정되어 있더라도 상수가 아닌 평균 비트 전송률을 나타냅니다.

버퍼링 프로세스에 중요한 다른 스트림 설정은 버퍼 창입니다. 버퍼 창은 시간 단위로 측정되며 버퍼링할 수 있는 콘텐츠의 양을 지정합니다. 가상 버킷의 용량은 버퍼 창을 사용하여 찾을 수 있습니다. 예를 들어 비트 속도가 32Kbps이고 버퍼 창이 3초인 스트림이 있는 경우 버퍼의 크기는 32Kbps 콘텐츠의 3초 또는 12,000바이트(초당 32,000비트 x 바이트당 3초/8비트)를 보유하도록 크기가 조정됩니다. 코덱은 버퍼 창과 같은 기간 동안 평균 비트 전송률이 스트림의 비트 속도보다 크지 않도록 인코딩된 샘플의 실제 스트리밍 비트 전송률 간의 변형을 제한합니다.

일반적으로 프로필의 스트림에 대한 비트 전송률 및 버퍼 창을 설정하고 작성기는 나머지를 처리합니다. 그러나 압축된 샘플을 판독기에게 전달할 때 대상 프로필의 스트림에 대한 비트 전송률 및 버퍼 창을 압축된 스트림의 값으로 설정하여 올바른 값이 새 파일로 전송되는지 확인해야 합니다.

개념

미디어 샘플

입력, 스트림 및 출력