2016-05-03 46 views
0

In meiner Arbeit versuche ich iOS VideoToolBox zu verwenden, um mein Video aus erfassen zu codieren. Es funktionierte . Aber wenn ich versuche, die fps zu setzen, kann es nicht funktionieren, die Video-Kodierungs Stream des fps immer ist 30.Wie Framerate zu bestimmen, wenn iOS VTCompression zum Codieren von Video verwenden

In meinem Code, habe ich diesen Code versuchen fps einstellen (aber es funktioniert nicht)

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); 

Antwort

0

Sie können die Bildrate (AVCaptureSession) für die Aufnahme einstellen, also kontrollieren Sie die Videodatenrückrufzeiten pro Sekunde;

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

Wissen Sie, wie Sie die Bitrate einstellen?

+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); –