2016-06-20 17 views
0

Ich versuche Videoclips zusammen zu kombinieren verwenden MediaCodec API. Mit Decoder, MediaMuxer kann ich Videoclips zusammen kombinieren, aber der Übergang zwischen den einzelnen Clips scheint zu langweilig. Ich möchte einige Übergangseffekte zwischen jedem Clip hinzufügen, wie GoPro Quik (mit schönen Übergängen). Soweit ich weiß, kann der OpenGL Shader die Übergangseffekte erzeugen, aber ich weiß nicht wie. Könnte mir jemand mit einer Anleitung oder einem Beispiel helfen? Danke!Videoclip Übergangseffekte

Antwort

1

Der erste Schritt wäre "ein Video über die Textur abspielen", für das Sie einige Beispiele auf der SO finden können.

Dann werden Sie einige mathematische Fähigkeiten benötigen, um das Video korrekt mit Frames auf dem Bildschirm zu positionieren. Eine gewisse Skalierung wird normalerweise mindestens zwischen den Videos benötigt, es sei denn, Sie können garantieren, dass alle die gleichen Abmessungen haben.

Einige Übergänge sind einfach mit Transformationen oder Ändern der Sprite-Positionen gemacht, aber wenn Sie eine schöne Überblendung möchten, benötigen Sie möglicherweise mehrere Texturen (Video Frame Samples) im gleichen Shader, für die Sie einen Blick in die "aktive Textur" werfen müssen ".

Dann ist die Frage, ob Sie das Video abspielen möchten oder Sie nur ein neues Video mit Ihren Übergängen erstellen möchten. Um es zu spielen, benötigst du ein Video, um Samples in Echtzeit zu erzeugen, und suchst dann andere Spieler, um Puffer für eine bestimmte Dauer zu geben. Wenn Sie das Video erstellen möchten, müssen Sie einige Ziel-FPS festlegen, mit denen Sie die Beispieldauern erstellen und die Videoframes zu dieser Dauer suchen und zeichnen. Die zweite würde ein FBO (ein Frame-Puffer-Objekt) und keine Oberflächenansicht benötigen, aber in beiden Fällen würde ich vorschlagen, dass Sie auf FBO zeichnen und die Textur (an die FBO angehängt) an die Oberfläche neu zeichnen.

Dies ist alles nur der Videoteil, also müssen Sie das Audiomaterial an einem bestimmten Punkt separat wiedergeben. Wenn Sie ein neues Video erstellen, müssen Sie die Audiobeispiele an das Video anhängen mit OpenGL zu tun.

+0

Vielen Dank für Ihre Anleitung. Ich versuche mehrere Texturen zu verwenden, um etwas zu mischen. Und ich mache all das in jni Schicht, ich weiß nicht, wie man eine Textur an FBO anfügt, irgendwelche Beispiele? –

+0

Versuchen Sie zum Beispiel nach "Android FBO Textur" zu suchen ... –