iOS - Wie spielt man ein video mit Transparenz?
Ich ein video aufgenommen mit einem bluescreen. Wir haben die software zu konvertieren, dass video auf einem transparenten hintergrund. Was ist der beste Weg, um zu spielen dieses video überlagert ein benutzerdefiniertes UIView? Immer wenn ich gesehen habe videos auf das iPhone ist es immer startet, der player-Schnittstelle. Jeder Weg, dies zu vermeiden?
- Hey Adam , Können Sie mir sagen, welche software Sie einsetzen, um das video zu machen, um einen transparenten hintergrund?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weiß nicht, ob jemand noch interessiert, außer mir, aber ich bin mit GPUImage und den Chromakey-filter um dies zu erreichen^^ https://github.com/BradLarson/GPUImage
EDIT: Beispiel-code, was ich gemacht habe (kann datiert werden jetzt):
Ich gehabt haben können, zu ändern GPUImage ein bisschen, und es funktioniert möglicherweise nicht mit der neuesten version von GPUImage aber das ist, was wir verwendet
GPUImagePicture
(z.B. aus einer transparenten PNG-Datei), um eine Mischung mitGPUImageMovie
, daGPUImageChromaKeyBlendFilter
erwartet zwei Eingänge.GPUImagePicture
: stackoverflow.com/questions/33244347/...Müssen Sie erstellen Sie einen benutzerdefinierten player mit AVFoundation.Rahmen, und dann verwenden Sie ein video mit alpha-Kanal. Das AVFoundation-framework ermöglicht viel mehr robuste handeling von video, ohne viele der Einschränkungen von MPMedia Rahmen. Erstellen eines benutzerdefinierten player ist nicht so schwer wie Leute es machen raus zu sein. Ich habe geschrieben, ein tutorial gibt es hier:
http://www.sdkboy.com/?p=66
Gehe ich davon aus, was Sie zu tun versuchen, ist tatsächlich entfernen Sie den blauen Bildschirm in Echtzeit von Ihrem video: Sie benötigen zum Abspielen der Videos über OpenGL, führen die pixel-Shader auf die frames, und schließlich machen alles mit einer OpenGL-Ebene mit einem transparenten hintergrund.
Sehen die Aufnahme von der Kamera mit AV-Foundation auf iOS 5 Sitzung von der WWDC 2011, die erklärt Techniken, um genau das zu tun (Uhr Chroma-Key - demo um 9:00 Uhr). Vermutlich ist die source heruntergeladen werden kann, aber ich kann nicht finden den link jetzt.
Den GPUImage funktionieren würde, aber es ist nicht perfekt, weil das iOS-Gerät ist nicht der Ort, um Ihre video-Verarbeitung. Sie sollten alles tun, was Ihr auf dem desktop mit einem professionellen video-tool, mit chromakey, dann exportieren Sie ein video mit alpha-Kanal. Dann importieren Sie das video in Ihrem iOS-Anwendung-bundle, wie hier beschrieben - spielen-Filme-mit-einer-alpha-Kanal-auf-dem-ipad. Es gibt eine Menge Qualität und Ladezeit-Probleme können Sie vermeiden, indem Sie sicherstellen, dass Ihr video ist richtig verwandelte sich in ein alpha-Kanal-video, bevor es geladen wird auf dem iOS-Gerät.
Einzige Weg, um zu vermeiden, mit der player-Oberfläche zu Rollen Sie Ihre eigenen video-player, die ziemlich schwierig ist, das richtige zu tun. Sie können ein benutzerdefiniertes overlay auf der Oberseite des player-Schnittstelle, um es so Aussehen, dass der Benutzer immer noch in Ihrer Anwendung, aber Sie haben tatsächlich nicht die Kontrolle der Ansicht. Vielleicht möchten Sie versuchen, spielen Sie Ihre transparente Videos in der player-Oberfläche und sehen, ob es zeigt sich, wie transparent. Sehen Sie, wenn es eine Eigenschaft für die Hintergrundfarbe in den player. Würden Sie wollen, um das zu setzen, transparent zu.
--Mike
Ich bin nicht sicher, dass die iPhone-APIs lassen Sie einen Film anzeigen, über die eine andere Ansicht haben und noch immer Transparenz.
Du nicht vermeiden können, starten die Spieler-Schnittstelle, wenn Sie möchten, verwenden Sie den integrierten player.
Hier ist was ich versuchen würde:
Ich glaube nicht, dass Sie tun können, viel besser als dieser, ohne zu schreiben Sie Ihre eigenen Spieler, und ich habe keine Ahnung, ob diese Methode funktionieren würde oder nicht.
Je nach Größe Ihres videos und das, was du versuchst zu tun, Sie könnten auch versuchen Herumspielen mit animierten GIFs.
wenn Sie könnten extrahieren der frames aus dem video und speichern Sie Sie als Bilder, die dann Ihr video wiedergegeben werden konnte durch die änderung der Bilder. Hier ist ein Beispiel, wie könnten Sie reproduzieren Ihre Bilder, so dass es aussieht wie ein video:
in diesem Bild, dass ich hochgeladen, die Namen der Bilder haben einen anderen Namen, aber wenn Sie benennen Sie Ihre Bilder als: frame1, fram2, fram3.... dann können Sie, dass innerhalb einer Schleife.
Ich noch nie versucht, ich weiß nur, es funktioniert für einfache Animationen. Hoffe, es funktioniert.