Создайте поток 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

0 ответов

Другие вопросы по тегам