Ich nehme einen Film mit AVCaptureSession und AVCaptureMovieFileOutput auf. Ich nehme auch Beschleunigungsdaten auf und versuche, die Beschleunigungsdaten mit dem Video auszurichten.AVCaptureSession und AVCaptureMovieFileOutput frame timestamp
Ich versuche einen Weg zu finden, um die Zeit zu bekommen, in der die Aufzeichnung der Videodatei begann. Ich tue das folgende:
currentDate = [NSDate date];
[output startRecordingToOutputFileURL:fileUrl recordingDelegate:self];
Doch nach meinen Tests, die Videoaufzeichnung beginnt 0,12 Sekunden, bevor der Anruf an startRecordingToOutputFileURL gemacht wird. Ich gehe davon aus, dass die verschiedenen Videopuffer bereits voll mit Daten sind, die der Datei hinzugefügt werden.
Gibt es trotzdem das eigentliche NSDate des ersten Frames des Videos?
haben Sie mit dem NSTimer versucht? – kumar
Wenn Sie einen Ausgabekanal einrichten, um die Raw-Frame-Beispieldaten zu erfassen, können Sie auf den Zeitstempel jedes Frames zugreifen. Aber ich war nicht in der Lage, AVCaptureSession sowohl mit einer Filmausgabe als auch mit rohen Frame-Sample-Daten zu konfigurieren, so dass ich nicht weiß, wie man den genauen Zeitstempel des ersten aufgenommenen Frames in der Filmdatei erhält. – algal
Ich gebe Ihnen nur ein paar Hinweise, aber ich habe keine echte Antwort. AVFoundation viel KVO verwenden Bist du dir sicher, dass sich in "Echtzeit" keine Eigenschaften geändert haben? Haben Sie versucht, die AVItemMetadaten der Filmdatei zu drucken? – Andrea