2012-08-12 3 views
12

Ich bin nicht der in ArrayList<Bitmap> Video-Frames mit. Ich habe diesen Rahmen mit MediaMetadataRetriever.getFrameAtTime() Methode über eine Videodatei (.mp4) zugegriffen.Android, Java - Darstellung eines Video Bitmap-Frames mit einem Video zu umkehren (Xuggler)

i in umgekehrter Reihenfolge der Frames in Arraylist. Jetzt mit dieser umgekehrten Reihenfolge Frame-Warteschlange möchte ich ein Video so dat es würde umgekehrt werden (ich hoffe, ich bin auf der richtigen Spur).

Nachdem das Video zu schaffen ich will es auch auf SD-Karte speichern.

, wie dies zu erreichen? Oder Ist die andere Methode, ein Video in Java umzukehren?

Edit 1:(*** Mit xuggler *) **

i xuggler versucht mit ... Ich habe versucht, mit es .jar-Datei ist. aber es wirft einige Fehler auf.

[2012-08-18 00:29:16 - xugglertest2] The library 'xuggle-xuggler-5.2.jar' contains native libraries that will not run on the device. 
    [2012-08-18 00:29:16 - xugglertest2] The following libraries were found: 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-ferry.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler-io.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-ferry.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler-io.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle.so 

Was soll ich tun ??

i xuggler-xuggler-5.4.jar in libs Ordner Projekt kopiert und dann Pfad zu bauen hinzuzufügen. m ich mache es richtig?



Edit 2:(mit ffmpeg)
Ich habe ffmpeg für Android auf Ubuntu Plattform kompiliert wie pro Here
I-Dateien gemäß dem Dokument zusammengestellt wurde.
Jetzt kann mir jemand sagen, wie ich die kompilierten Dateien in Android-Anwendung verwenden kann? was genau soll ich mit diesen Dateien tun ??
Ich habe keine passende Dokumentation gefunden. jede Hilfe wäre gr8.


bearbeiten 3: (portiert Android -ffmpeg)

hey .. endlich i ubuntu zusammengestellt ffmpeg auf i libffmpeg.so bekam. Ich habe es erfolgreich android portiert. libffmpeg.so wird erfolgreich in Android-Aktivität geladen. Jetzt möchte ich einfach einen einfachen ffmpeg-Befehl oder ein Programm testen.
können Sie vorschlagen, wo soll ich suchen? kannst du mir einen Beispielbefehl vorschlagen, um es zu testen.

Danke und Grüße

+0

Haben Sie dieses Problem lösen? Bitte hilf mir, ich habe eine ähnliche Anforderung. –

+0

leider habe ich nicht. Ich werde die Lösung hier posten, sobald ich das löse. –

+0

Wenn Sie auf die Videodatei zugreifen können, können Sie sie nicht einfach auf die SD-Karte kopieren? getFrameAtTime() bekommt sowieso nur 1 Frame, also bin ich mir nicht sicher, wie Sie daraus Video erstellen werden. – hovanessyan

Antwort

10

können Sie ffmpeg verwenden Video aus Bildern zusammenzustellen. Sie können ffmpeg in Java (Android) in ein paar Möglichkeiten integrieren (eine direkt über sie

Runtime.getRuntime().exec("ffmpeg <options>");

ausgeführt werden), aber wahrscheinlich eine gute Möglichkeit, es über das Xuggler Projekt zu tun - es stützt sich stark auf ffmpeg.Für den Startpunkt, hier ist ein set of introduction tutorials und hier ist ein komplettes Tutorial how to encode video from sequence of images. Es ist viel Arbeit und Lesen, aber alle Informationen, die Sie brauchen, sind da. Viel Glück!

+0

Oder Sie ffmpeg als gemeinsam genutzte Bibliothek und Link dagegen bauen könnte; schreibe einen JNI-Wrapper und du solltest alles einstellen. – Shark

+0

Bitte sehen Sie sich mein Problem an. Jede Hilfe wäre großartig. siehe Bearbeiten –

+0

versuchen Sie, alle Gläser aus xuggler> Aktien> Java> Gläser auf den Build-Pfad – hovanessyan

0

In Bezug auf Ihre xuggler Nutzung, die Version Ihrer Bibliothek wird auf Ihre speziellen Gerät nicht funktionieren, da es für x86_64 und i686-Plattformen kompilierte native Code enthält:

[2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/ 
[2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/ 

versuchen zu finden Version dieser Bibliothek mit nativen Code-Teile kompiliert für ARMv6 (am häufigsten Android-Architektur - enthält ältere Geräte, wenn nicht Geräte älter als ~ 1-2 Jahren unterstützen möchten, wäre ARMv7 besser).

Andernfalls müssen Sie die ffmpeg für ARM kompiliert erhalten und es mit Unterstützung von Android NDK zu nutzen. Sie müssen einen Code in C/C++ schreiben, der die Kodierung Ihrer Bilderserie in eine bestimmte Datei implementiert und sie mit der JNI-Schnittstelle einhüllt. Sie können Java-Arrays an native Implementierungen von Klassenmethoden übergeben.

bitte Probe Android NDK Anwendungen in SDK-Beispiele sehen, um zu sehen, wie JNI in Ihrem Code verwenden