2016-05-03 2 views
0

私の仕事では、iOS VideoToolBoxを使用してキャプチャからビデオをエンコードしようとしています。出来た 。私はFPSを設定しようとする。しかし、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); 
それは私がFPSを設定しようとするために、このコードを使用し、ビデオエンコードストリームのFPSはいつも私のコードでは30

で、動作しないことができる(しかし、それは動作しません)

答えて

0

キャプチャ(AVCaptureSession)フレームレートを設定できるので、ビデオデータのコールバック時間を1秒あたりに制御できます。

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

エンコーダのビットレートを設定する方法はわかっていますか?

+0

CFNumberRef bitrateRef = CFNumberCreate(kCFAllocatorDefault、kCFNumberSInt32Type、&tbitrate); ステータス= VTSessionSetProperty(enCompressionSession、kVTCompressionPropertyKey_AverageBitRate、bitrateRef); CFRelease(bitrateRef); –

+0

CFNumberRef bitrateRef = CFNumberCreate(kCFAllocatorDefault、kCFNumberSInt32Type、&tbitrate); ステータス= VTSessionSetProperty(enCompressionSession、kVTCompressionPropertyKey_AverageBitRate、bitrateRef); CFRelease(bitrateRef); –

関連する問題