Audio Dateien umwandeln in Android?

B

BAWSTi

Neues Mitglied
0
Guten Morgen zusammen,

ich bin noch recht neu in der Programmierbranche generell, dennoch arbeite ich zur Zeit an einer App und stehe gerade vor einem Problem zu dem ich leider auch nach ausführlicher Suche nichts konkretes finden konnte, dass mir geholfen hat. Zugegeben, manches was ich fand, verstand ich auch einfach nicht auf Grund von mangelnder Erfahrung.
Genug drum herum geredet...

Ich möchte in meiner App eine lokal (interner Speicher oder extSDCard) gespeicherte Audio Datei umwandeln. Genauer gesagt möchte ich .wav Dateien in .bwf und .mp2 umwandeln. Ja, ich weiß dies mögen ungewöhnliche Formate sein, das hat aber auch seinen Sinn und Zweck.

Ich weiß leider nicht wie ich diese Funktion implementieren kann und hoffe, dass hier jemand vielleicht weiter helfen kann.

Ich habe lediglich gefunden, dass es wohl mit FFmpeg "möglich" sein soll, aber es überhaupt erst mal unter Android zum laufen zu kriegen ist schon ein Kampf an sich. (Ist mir bisher auch nicht gelungen)

Ich hoffe es kann jemand helfen.

Danke im Vorraus.

Grüße,

BAWSTi
 
Hi, vielleicht wird es deinen Anforderungen nicht entsprechen, aber warum kannst du die Datei nicht an einen Server schicken, und er schickt dir die umgewandelten Formate zurück?

Normalerweise ist das was du möchtest schon möglich. Man hat eine Datei, die nullen und einzen beinhaltet. Diese in einer ganz bestimmten Reihenfolge. (wav)
Jetzt musst du diese nullen und einzen an andere Stellen setzen. (andere nullen und einzen schreiben).
FFmpeg benutzt sehr wahrscheinlich Aufrufe auf einem x86 und ist für arm nicht geschrieben und compiliert. (meine Vermutung)
Egal wie du es machen möchtest, (Selber ein Formatierungstool in Java oder C schreiben, oder ffmpeg auf Android portieren), fände ich meinen Ansatz mit "Cloud-Umwandlung" am einfachsten.
 
@Kardroid Danke erst einmal für deine Antwort. Ich denke nicht, dass Cloud-Umwandlung eine Möglichkeit darstellt. Ich blockiere in der App die Internetverbindung indem ich eine Wifi Verbindung zu einer FlashAir SD Karte aufbaue. Somit habe ich zur Laufzeit der App im Normalfall keinen Internetzugriff. Darüber hinaus können die Dateien die ich umwandeln will "beliebig" groß ausfallen, was Cloud-Umwandlung weiter ungeeignet macht in diesem Fall, da es zu viel Volumen beanspruchen könnte.
 
Hi, ich habe ein wenig gegooglet. Du kannst ffmpeg wohl mit einen arm benutzen und kompilieren. Am besten du ließt dich in das NDK ein. Zumindest in die Konfiguration und das Aufrufen von nativem C Code.
Mit Android Studio 1.3 sollte wohl NDK Support inklusive sein. Ich habe damals immer noch Eclipse benutzen müssen.(Pre 1.0 Android Studio)
 
@Kardroid Wie ich bereits im ursprünglichen Post erwähnte, ist es mir durchaus bewusst, dass es funktioniert mit ffmpeg. Ich kriegs nur zum verrecken nicht ans laufen. Hab mich jetzt seit 3 Tagen mit ffmpeg rumgeschlagen.
 
Da deine Anforderung sehr speziell ist, deine Frage aber nicht, kann dir hier keiner helfen, außer Links zu irgendwelchen Seiten mitgeben, die du dann sehr wahrscheinlich schon gefunden hast.

Funktioniert das NDK nicht? Hast du ffmpeg schon auf nem Linux-System installiert und mit x86 versucht deine Dateien zu konvertieren? Wenn du spezieller fragst, kann dir vielleicht auch geholfen werden.
Ein Stück Code, welches du einfach in dein Projekt einfügen kannst und es dann läuft, wird dir hier, meiner Meinung nach, keiner geben.

Ich habe das letzte Mal jemandem hier sehr gut helfen können, weil er ein GIT-Hub Repository extra für den Fall erstellt hat.
Ich sage dir hier meine Hilfe zu, wenn du dein Projekt mit dem Fehler öffentlich machen kannst. Wichtig wäre hierbei, dass das Finden der Datei etc. schon alles implementiert ist und nur noch die Aufrufe für ffmpeg fehlen.
 
Wie ich bereits sagte, ich bin sehr neu in der ganzen Programmierbranche.... und auf Linux hab ich nichts installiert weil ich von Linux erst recht keine Ahnung habe.

Falls es den Eindruck erweckt haben sollte, dass ich hier Code-Schnipsel erwarte, die auf magische Weise mein Problem lösen, habe ich mich entweder falsch ausgedrückt oder es wurde falsch aufgefasst. Ja ich bin ein Neuling und habe generell keine Ahnung von dem was ich hier tue, zumindest noch nicht. Aber ich will es eben lernen. Nach eigener Recherche habe ich allerdings leider nichts gefunden, dass mir helfen konnte.

Was ich mit meiner originnellen Frage wissen wollte, war ob es jemanden hier gibt, der dieses oder ein ähnliches Problem schon einmal bearbeitet hat und welche Methoden zur Lösung führten.

Um ffmpeg zum laufen zu kriegen für Android braucht man einiges an "Mehr-Wissen" so wie ich das beurteilen kann anhand meiner bisher misslungenen Versuche.

Das Projekt mit Fehler veröffentlichen wird nicht möglich sein, da ich mir nicht in meinem Projekt damit rumpfuschen wollte und es somit in einem Extra-Projekt testen wollte. Da es aber nie zum Erfolg gekommen ist, habe ich das Projekt immer wieder gelöscht, neu erstellt und was neues versucht.
 
Hi,

ich meinte mit "dein Projekt" einfach ein Beispielprojekt mit genau deinem Fehler, wo du nicht mehr weiterkommst.
Ich habe schon mit dem NDK eigenen nativen Code kompiliert und kompilierten Code in Android Studio über Grunt eingebunden. Also ohne Erfahrung bin ich nicht. Nur ich habe keine Lust extra ein Projekt zu erstellen, welches eine Wave-Datei einliest ggf. auf Usereingaben reagieren muss etc.

Mein Satz mit dem Linux sollte nur dafür da sein, ob du dir 100% sicher bist, dass ffmpeg auch wirklich deine Aufgaben durchführen kann. Ich habe auch schon ffmpeg auf Mac und Windows eingesetzt und es hat schon ziemlich viele Parameter die man benutzen kann. Du kannst es auch mit Windows durchführen, aber Android hat einen Linux unterbau und damit ist es ein wenig besser vergleichbar.
Also du kannst auch auf deinem Desktop eine wav-Datei mittels ffmpeg konvertieren. Falls es damit funktioniert, dann würde ich mich an deiner Stelle erst um die Androidumsetzung kümmern.
 
Installier ein Linux auf einer E:\ partition .
Ich hab Puppy Linux . Nutze "frugal" , weil "full" macken hat . ( Ich selber nutze "full" ) .
Puppy linux ist in der Regel unter 200 MB ohne die devx , die den gcc Compiler enthaelt .

ffmpeg ist ganz interessant .
Aber neuerere ffmpeg Versionen convertieren scheinbar anders als aeltere ffmpeg.
Jedenfalls spielen meine neueren ffmpeg't .mp4 zu .mp3 nicht auf Android 2.x.y , aber auf Android 4.x.y .

Kann mir nicht vorstellen, dass es ffmpeg nicht fuer ARCH=arm gibt .

Aber es braucht eine Cross-Compiler toolchain,
oder einen PC mit ARM Architektur (inkl. OS ) um es zu kompellieren .

Fuer Windows gibt es noch cygwin , die Linux emulator shell .
 

Ähnliche Themen

B
Antworten
4
Aufrufe
495
bb321
B
M
  • MikelKatzengreis
Antworten
5
Aufrufe
132
swa00
swa00
D
Antworten
23
Aufrufe
2.553
Data2006
D
Zurück
Oben Unten