ho sviluppato e l'applicazione iOS che farà risparmiare catturato dati della videocamera in un file e ho usatoCome ottenere il timestamp corrente catturato dei dati della fotocamera da CMSampleBufferRef in iOS
(void) captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
per catturare CMSampleBufferRef e questo codificherà in nel formato H264 e i frame verranno salvati in un file usando AVAssetWriter.
Ho seguito il codice sorgente di esempio per creare questa app:
http://www.gdcl.co.uk//2013/02/20/iOS-Video-Encoding.html
Ora voglio ottenere timestamp dei frame video salvati per creare un nuovo file di film,
per questo che ho fatto le seguenti cose
1) individuare il file e di creare AVAssestReader
leggere il file
CMSampleBufferRef sample = [asset_reader_output copyNextSampleBuffer];
CMSampleBufferRef buffer;
while ([assestReader status]==AVAssetReaderStatusReading){
buffer = [asset_reader_output copyNextSampleBuffer];
//CMSampleBufferGetPresentationTimeStamp(buffer);
CMTime presentationTimeStamp = CMSampleBufferGetPresentationTimeStamp(buffer);
UInt32 timeStamp = (1000*presentationTimeStamp.value)/presentationTimeStamp.timescale;
NSLog(@"timestamp %u",(unsigned int)timeStamp);
NSLog(@"reading");
// CFRelease(buffer);
valore stampato mi dà un timestamp errato e ho bisogno di ottenere il tempo catturato del frame.
C'è un modo per ottenere fotogramma catturato timestamp,
Ho letto seguente Link per ottenerlo timestamp ma non elaborare correttamente la mia domanda di cui sopra How to set timestamp of CMSampleBuffer for AVWriter writing
aggiornamento
ho letto il time-stamp di esempio prima che scriva su un file, mi ha dato un valore xxxxx (33333.23232)
dopo aver provato a leggere il file mi ha dato un valore diverso, un motivo specifico per questo ??
@ fireclaw48 ho trovato questo link, ma non dà una risposta adeguata, penso che questo sia per impostare un nuovo timestamp –
Ho avuto lo stesso problema, hai ricevuto la risposta? –