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!
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.
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
Tags und Links ios avfoundation avassetwriter avcapturesession