2016-05-03 8 views
0

В моей работе я пытаюсь использовать iOS VideoToolBox для кодирования своего видео с захвата. Это сработало . Но когда я пытаюсь установить кадров в секунду, она не может работать, кадр в закодировать видеопоток, всегда 30.Как установить частоту кадров при использовании iOS VTCompression для кодирования видео

В моем коде, я использовал этот код, чтобы попытаться установить кадров в секунду (но это не работает)

status =VTSessionSetProperty(EncodingSession, kVTCompressionPropertyKey_ProfileLevel, 
kVTProfileLevel_H264_Main_AutoLevel); 

status =VTSessionSetProperty(EncodingSession, kVTCompressionPropertyKey_AverageBitRate,(__bridge CFTypeRef _Nonnull)(@500000)); 
status =VTSessionSetProperty(EncodingSession, kVTCompressionPropertyKey_MaxKeyFrameInterval, (__bridge CFTypeRef _Nonnull)(@15)); 

status =VTSessionSetProperty(EncodingSession, kVTCompressionPropertyKey_H264EntropyMode, kVTH264EntropyMode_CABAC); 

status = VTSessionSetProperty(EncodingSession, kVTCompressionPropertyKey_RealTime, kCFBooleanTrue); 

ответ

0

вы можете установить частоту кадров захвата (AVCaptureSession), чтобы управлять временем обратного вызова видеоданных в секундах;

(void) captureOutput:(AVCaptureOutput *) captureOutput 
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer 
fromConnection:(AVCaptureConnection *)connection 

Вы знаете, как установить битрейт кодировщика?

+0

CFNumberRef bitrateRef = CFNumberCreate (kCFAllocatorDefault, kCFNumberSInt32Type, & tbitrate); status = VTSessionSetProperty (enCompressionSession, kVTCompressionPropertyKey_AverageBitRate, bitrateRef); CFRelease (bitrateRef); –

+0

CFNumberRef bitrateRef = CFNumberCreate (kCFAllocatorDefault, kCFNumberSInt32Type, & tbitrate); status = VTSessionSetProperty (enCompressionSession, kVTCompressionPropertyKey_AverageBitRate, bitrateRef); CFRelease (bitrateRef); –