Создайте поток CBR H.264 с помощью VideoToolbox на MacOS
Я пытаюсь создать поток CBR с максимально стабильным выводом (бит / с) с помощью VideoToolbox на Mac.
Я настраиваю сеанс для использования кодера HW ->
key = kVTVideoEncoderSpecification_EncoderID;
stringValue = CFSTR("com.apple.videotoolbox.videoencoder.h264.gva");
CFDictionaryAddValue(encoderSpecifications, key, stringValue);
key = CFSTR("EnableHardwareAcceleratedVideoEncoder");
boolValue = kCFBooleanTrue;
CFDictionaryAddValue(encoderSpecifications, key, boolValue);
key = CFSTR("RequireHardwareAcceleratedVideoEncoder");
boolValue = kCFBooleanTrue;
CFDictionaryAddValue(encoderSpecifications, key, boolValue);
Затем я ограничиваю данные как следующие ->
status = VTSessionSetProperty(myEncodingSession, kVTCompressionPropertyKey_DataRateLimits, (__bridge CFArrayRef)@[@(targetBitrate / 8), @1.0]);
И да, кодер ограничивает битрейт, но колебания в мегабитах, в зависимости от сложности входящего изображения, то есть не CBR в моем мире.
Существует также kVTCompressionPropertyKey_AverageBitRate
Однако этот параметр не помогает. Я пытался Google -> kVTCompressionPropertyKey_MaxH264SliceBytes
но об этом особо нечего читать.
Кто-нибудь успешно создал поток CBR, используя VideoToolbox HW кодировщик на Mac?
Спасибо за помощь.
/ A