2012-12-03 17 views
11

Sto registrando un filmato con AVCaptureSession e AVCaptureMovieFileOutput. Sto anche registrando i dati di accelerazione e cercando di allineare i dati di accelerazione con il video.AVCaptureSession e AVCaptureMovieFile Timestamp frame di uscita

Sto cercando di trovare un modo per ottenere il tempo di inizio della registrazione del file video. Io sto facendo la seguente:

currentDate = [NSDate date]; 
[output startRecordingToOutputFileURL:fileUrl recordingDelegate:self]; 

Tuttavia, secondo i miei test, la registrazione video inizia 0.12 secondi prima della chiamata a startRecordingToOutputFileURL è fatta. Presumo questo perché i vari buffer video sono già pieni di dati che vengono aggiunti al file.

È comunque necessario ottenere l'NSDate effettivo del primo fotogramma del video?

+0

hai provato con NSTimer? – kumar

+0

Se si imposta un canale di uscita per acquisire i dati di esempio della cornice non elaborata, è possibile accedere alla data/ora di ciascun fotogramma. Ma non sono stato in grado di configurare AVCaptureSession sia con un output di filmato che con dati di esempio di frame grezzi, quindi non so come ottenere il timestamp esatto del primo frame registrato nel file del filmato. – algal

+0

Ti sto solo dando qualche suggerimento ma non ho la vera risposta. AVFoundation usa molto KVO sei sicuro che non ci sono proprietà modificate in "tempo reale"? Hai provato a stampare AVItemMetadatas del file film? – Andrea

risposta

0

se ottengo la tua domanda correttamente, vuoi sapere il timestamp di quando viene registrato il primo fotogramma. potresti provare

CMTime captureStartTime = nil; 

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

     if !captureStartTime{ 
     captureStartTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer); 
     } 
    // do the other things you want 
} 
+0

Quando ho provato questo, non ero in grado di catturare l'output dei file di film. Avete un esempio funzionante che cattura sia i timestamp del buffer di esempio sia un file di film? – algal

Problemi correlati