2009-02-28 14 views
5

In meinem Programm, es wird MP4 Video in, und ich möchte es eine MP3 (ohne irgendwelche Server-Side Zeug.) Da Android (und meine App) auf vielen verschiedenen Hardware-Konfigurationen ausführen müssen , das bedeutet, dass ich FFMPEG wahrscheinlich nicht verwenden kann. Ich weiß, dass dies sehr Akku- und Verarbeitungsintensiv sein kann, besonders für ein Mobiltelefon, aber ich brauche diese Option für meine Benutzer. Ich finde keine nativen Bibliotheken für Java, die FFMPEG nicht verwenden.Android Strip Audio Von Video

Antwort

2

ich kleines Problem mit FFMPEG zu sehen, da apparently it runs on 11 von Debian unterstützten Architekturen. Nur die Architektur, die nicht unterstützt wird, ist offensichtlich m68k, andere sind alte Versionen in den Ports des FreeBSD-Kernels oder des Hurd-Kernels. Und von dem, was ich über Android weiß, wird sich die Tatsache, dass es auf ARM basiert, in absehbarer Zeit nicht ändern.

Natürlich könnte es einige Probleme mit Java-Wrappers rund um nativen Code geben. Ist das das Problem? Ich bin weder ein Android noch ein Java-Programmierer, aber ich bin mir sicher, dass Sie die Plattform erkennen und den entsprechenden nativen Wrapper dynamisch laden können.

1

Ich habe es nicht verwendet, aber ich habe heruntergeladen und schaue auf die API für IBM Toolkit for MPEG-4. Es sieht ein wenig Licht auf Datenzugriffsfunktionen, obwohl. Die Implementierung ist jedoch reines Java. Es sieht so aus, als hätten sie ihre Codec-Gläser verschleiert.

4

MPEG_4 Teil 14 (Dateierweiterung .mp4) ist ein Containerformat. Mit anderen Worten, dies gibt an, wie mehrere Medienströme zusammen verpackt werden können. Das Verarbeiten von Containerformaten ist viel weniger rechenintensiv als zum Beispiel das Komprimieren oder Dekomprimieren von Video. Ich wäre überrascht, wenn es sich als zu rechenintensiv herausstellen würde, eine .mp4-Datei durchzulesen und einen Audiostream auf einem Handy-ARM-Prozessor zu extrahieren.

Ich habe auch keine sofort geeigneten Java-Bibliotheken gesehen. Es wäre wahrscheinlich nicht schwer, eine eigene Bibliothek zu erstellen. Das Analysieren von Containerformaten ist viel einfacher als das Dekomprimieren von Video. Und Sie haben die libavformat-Implementierung in ffmpeg als Referenz. Die MPEG4 Part 14-Standards sind hier zu finden:

http://webstore.iec.ch/preview/info_isoiec14496-14%7Bed1.0%7Den.pdf

und hier:

http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html