기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
프로듀서 구조 SDK
이 섹션에는 Kinesis Video Streams Producer 객체에 데이터를 제공하는 데 사용할 수 있는 구조에 대한 정보가 포함되어 있습니다.
DeviceInfo/DefaultDeviceInfoProvider
DeviceInfo및 DefaultDeviceInfoProvider객체는 Kinesis Video Streams 프로듀서 객체의 동작을 제어합니다.
멤버 필드
-
버전 — 현재 버전의 코드베이스에서 올바른 버전의 구조가 사용되는지 확인하는 데 사용되는 정수 값입니다. 현재 버전은
DEVICE_INFO_CURRENT_VERSION
매크로를 사용하여 지정됩니다. -
이름 - 사람이 읽을 수 있는 장치 이름입니다.
-
tagCount/tags — 현재 사용되지 않습니다.
-
streamCount— 기기가 처리할 수 있는 최대 스트림 수입니다. 이 값은 초기에 포인터를 위한 스토리지를 스트림 객체에 미리 할당하지만 실제 스트림 객체는 나중에 생성됩니다. 기본값은 16스트림이지만
DefaultDeviceInfoProvider.cpp
파일에서 이 수를 변경할 수 있습니다. -
storageInfo: 기본 스토리지 구성을 설명하는 객체입니다. 자세한 내용은 StorageInfo 단원을 참조하십시오.
StorageInfo
Kinesis Video Streams의 기본 스토리지 구성을 지정합니다.
기본 구현은 스트리밍에 최적화된 빠른 힙의 낮은 조각화를 기반으로 합니다. 주어진 플랫폼에 중복 기재가 가능한 MEMALLOC
할당자를 사용합니다. 어떤 플랫폼은 피지컬 페이지로 할당을 지원하지 않아도 가상 메모리가 할당됩니다. 메모리가 사용될 때 가상 페이지는 피지컬 페이지로 지원됩니다. 결과적으로 스토리지가 충분히 사용되지 않을 때에도 전체 시스템에 메모리 부족 압력이 발생합니다.
다음 수식을 기반으로 기본 스토리지 크기를 계산합니다. DefragmentationFactor
를 1.2(20퍼센트)로 설정해야 합니다.
Size = NumberOfStreams * AverageFrameSize * FramesPerSecond * BufferDurationInSeconds * DefragmentationFactor
다음 예제에서는 디바이스에 오디오 및 비디오 스트림이 있습니다. 오디오 스트림의 초당 샘플 수는 512이며 샘플은 평균 100바이트입니다. 비디오 스트림의 초당 프레임 수는 25이며 평균 10,000바이트입니다. 각 스트림의 버퍼 지속 시간은 3분입니다.
Size = (512 * 100 * (3 * 60) + 25 * 10000 * (3 * 60)) * 1.2 = (9216000 + 45000000) * 1.2 = 65059200 = ~ 66MB.
디바이스에 사용 가능한 메모리가 더 많은 경우 심각한 조각화를 방지하기 위해 스토리지에 메모리를 추가하는 것이 좋습니다.
인코딩 복잡성이 높거나 (움직임이 많아 프레임 크기가 더 커지는 경우) 대역폭이 낮은 경우 모든 스트림의 전체 버퍼를 수용할 수 있을 만큼 스토리지 크기가 적절한지 확인하십시오. 생산자가 메모리 부족에 도달하면 스토리지 오버플로 압력 콜백 () 을 내보냅니다. StorageOverflowPressureFunc
하지만 콘텐츠 스토어에 사용 가능한 메모리가 없는 경우 Kinesis Video Streams로 푸시되는 프레임이 삭제되고 오류 STATUS_STORE_OUT_OF_MEMORY =
0x5200002e
() 가 발생합니다. 자세한 내용은 클라이언트 라이브러리에서 반환된 오류 및 상태 코드 단원을 참조하십시오. 이는 애플리케이션 승인 (ACKs) 을 사용할 수 없거나 ACKs 지속성이 지연되는 경우에도 발생할 수 있습니다. 이 경우 이전 프레임이 삭제되기 전에 버퍼가 “버퍼 지속 시간” 용량까지 채워집니다.
멤버 필드
-
버전 — 현재 버전의 코드베이스에서 올바른 버전의 구조가 사용되는지 확인하는 데 사용되는 정수 값입니다.
-
storageType— 스토리지의 기본 지원 및 구현을 지정하는
DEVICE_STORAGE_TYPE
열거입니다. 현재 지원되는 값은DEVICE_STORAGE_TYPE_IN_MEM
입니다. 향후 구현에서는DEVICE_STORAGE_TYPE_HYBRID_FILE
이 지원되어, 스토리지가 파일 지원 콘텐츠 저장소로 다시 돌아갈 예정입니다. -
storageSize— 사전 할당할 스토리지 크기 (바이트). 최소 할당은 10MB이고, 최대 할당은 10GB입니다. (이 값은 파일 지원 콘텐츠 스토어의 향후 구현에서 변경됩니다.)
-
spillRatio— 보조 오버플로 스토리지 (파일 스토리지) 와 달리 직접 메모리 스토리지 유형 (RAM) 에서 할당할 스토리지의 비율을 나타내는 정수 값입니다. 현재 사용 중이지 않습니다.
-
rootDirectory: 파일 지원 컨텐츠 저장소가 있는 디렉토리의 경로입니다. 현재 사용 중이지 않습니다.