AvFoundation - Wie verbindet man AVCaptureSession und AVAssetWriter?

8

Ich versuche, AVCaptureSession zu verwenden, um Video von der Kamera zu erfassen, und dann möchte ich AVAssetWriter verwenden, um die Ergebnisse in eine Datei zu schreiben (verwenden Sie mehrere AVAssetWriters, um die Aufnahme in Chunk-Videos zu schreiben, aber wir nicht muss diese Frage damit komplizieren). Ich habe jedoch Probleme herauszufinden, wo Daten tatsächlich an den AVAssetWriter übergeben werden müssen. In der Apple Developer Dokumentation habe ich nur gesehen, dass AVCaptureSession-Daten an einen AVCaptureFileOutput übergeben wurden. Vielleicht verpasse ich nur etwas. Kann der AVAssetWriter nur als Ausgabe der Capture-Sitzung verwendet werden? Ein relevantes Beispiel oder ein Bit des Codes (obwohl nicht notwendig) würde geschätzt werden. Vielen Dank!

    
golmschenk 08.04.2013, 22:11
quelle

2 Antworten

4

Was genau ist dein Ziel? Weil Sie fragen (die Verwendung eines AVAssetWriter als Ausgabe für eine AVCaptureSession) ist nicht möglich.

Grundsätzlich hat ein AVCaptureSession -Objekt Eingaben (zB: eine Kamera, repräsentiert durch einige AVCaptureInput Unterklasse) und Ausgaben (in Form von AVCaptureOutput ). Und eine AVAssetWriter ist keine AVCaptureOutput -Unterklasse, daher gibt es keine Möglichkeit, sie direkt von einer AVCaptureSession zu verwenden.

Wenn Sie einen AVAssetWriter verwenden möchten, müssen Sie die Daten mit einer AVCaptureFileOutput -Instanz schreiben und dann mit einem AVAssetReader zurücklesen, Ihre Daten irgendwie ändern, und dann gib es über ein AVAssetWriter aus.

Beachten Sie Folgendes: AVAssetReader ist dokumentiert, um Echtzeitoperationen nicht zu garantieren.

    
zadr 09.04.2013, 03:24
quelle
6

Schauen Sie sich Ссылка an. Dies zeigt, wie die Erfassungsausgabe mit dem Asset Writer verbunden wird und anschließend die Daten aus dem Asset Writer für das Streaming extrahiert werden.

G

    
Geraint Davies 09.04.2013 20:33
quelle