CoreAnimation, AVFoundation und die Möglichkeit, Video-Export zu machen

8

Ich suche nach dem richtigen Weg, um meine Bildersequenz in ein Quicktime-Video zu exportieren.

Ich weiß, dass AV Foundation in der Lage ist, Videos zusammenzuführen oder zu rekombinieren und Audiotracks hinzuzufügen, die ein einzelnes Video-Asset aufbauen.

Nun ... mein Ziel ist ein bisschen anders. Ich würde ein Video von Grund auf neu erstellen. Ich habe eine Reihe von UIImage und ich muss sie alle in einem einzigen Video rendern. Ich habe die gesamte Apple-Dokumentation über AV Foundation gelesen und die AVVideoCompositionCoreAnimationTool-Klasse gefunden, die eine CoreAnimation aufnehmen und als Video neu codieren kann. Ich überprüfte auch das AVEditDemo-Projekt, das von Apple zur Verfügung gestellt wurde, aber etwas scheint bei meinem Projekt nicht zu funktionieren.

Hier meine Schritte:

1) Ich erstelle den CoreAnimation Layer

%Vor%

2) Dann instanziiere ich die AVComposition

%Vor%

3) Ich exportiere das Video in den Dokumentenpfad

%Vor%

Beim und vom Export erhalten Sie diesen Fehler:

Export beendet: Fehlerdomäne = AVFoundationErrorDomain Code = -11822 "Kann nicht geöffnet werden" UserInfo = 0x49a97c0 {NSLocalizedFailureReason = Dieses Medienformat wird nicht unterstützt., NSLocalizedDescription = Kann nicht geöffnet werden}

Ich habe es in der Dokumentation gefunden: AVErrorInvalidSourceMedia = -11822,

AVErrorInvalidSourceMedia Der Vorgang konnte nicht abgeschlossen werden, da einige Quellmedien nicht gelesen werden konnten.

Ich bin mir absolut sicher, dass die von mir erstellte CoreAnimation richtig ist, weil ich sie in eine Testschicht gerendert habe und ich konnte sehen, dass die Animation korrekt abläuft.

Jeder kann mir helfen zu verstehen, wo mein Fehler ist?

    
Gabriele 17.02.2011, 16:32
quelle

2 Antworten

4

Vielleicht brauchst du einen gefälschten Film, der komplett schwarzen Rahmen enthält, um die Videoebene zu füllen, und dann einen CALayer hinzuzufügen, um die Bilder zu manipulieren

    
Eric.Cheng 23.03.2012, 02:03
quelle
4
  

Ich habe die Klasse AVVideoCompositionCoreAnimationTool gefunden, die eine CoreAnimation aufnehmen und sie als Video neu codieren kann

Mein Verständnis war, dass dies Coreanimation nur aufnehmen und zu einem bestehenden Video hinzufügen konnte. Ich habe gerade die Dokumente überprüft, und die einzigen verfügbaren Methoden erfordern eine Videoebene.

EDIT: Ja. Ich glaube, Sie sollten AVAssetWriter verwenden und Bilder an den Writer anhängen, wenn Sie nach Dokumenten und WWDC-Videos suchen. Etwas wie:

%Vor%     
Adam 08.03.2011 10:22
quelle