W moim programie pobiera wideo MP4 i chcę, aby wyprowadzał plik MP3 (bez żadnych rzeczy po stronie serwera). Ponieważ Android (i moja aplikacja) musi działać na wielu różnych konfiguracjach sprzętowych oznacza to, że prawdopodobnie nie mogę użyć FFMPEG. Wiem, że może to wymagać dużej mocy i mocy obliczeniowej, zwłaszcza w przypadku telefonu komórkowego, ale potrzebuję tej opcji dla moich użytkowników. Nie mogę znaleźć natywnych bibliotek dla Javy, które nie używają FFMPEG.Android Strip Audio From Video
Odpowiedz
widzę mały problem z FFmpeg, ponieważ apparently it runs on 11 architektury wspierane przez Debiana. Jedynie architektura nieobsługiwana to najwyraźniej m68k, inne to stare wersje w portach do jądra FreeBSD lub jądra Hurda. Z tego, co wiem o Androidzie, fakt, że bazuje na ARM, nie zmieni się w najbliższym czasie.
Oczywiście mogą występować pewne problemy z owijkami Java wokół kodu natywnego. Czy to jest problem? Nie jestem programistą Android ani programistą Java, ale jestem pewien, że możesz wykryć platformę i dynamicznie załadować odpowiednie rodzime opakowanie.
Nie użyłem tego, ale pobrałem i patrzę na API dla IBM Toolkit for MPEG-4. Wygląda jednak trochę na funkcje dostępu do danych. Wdrożenie to jednak czysta Java. Wygląda na to, że zaciemnili swoje słoiki z kodekami.
MPEG_4 Część 14 (rozszerzenie pliku .mp4) jest formatem kontenera. Innymi słowy, określa to, w jaki sposób można spakować razem wiele strumieni mediów. Przetwarzanie formatów kontenerów jest znacznie tańsze niż na przykład - kompresowanie lub dekompresowanie wideo. Byłbym zaskoczony, gdyby okazało się, że jest zbyt kosztowna pod względem obliczeniowym, aby odczytać plik .mp4 i wyodrębnić strumień audio na procesorze ARM telefonu komórkowego.
Nie widziałem żadnych natychmiast odpowiednich bibliotek Java. Prawdopodobnie nie byłoby zbyt trudno zbudować własną bibliotekę. Parsowanie formatów kontenerów jest znacznie prostsze niż dekompresowanie wideo. I masz implementację libavformat w ffmpeg jako odniesienie. Standardy MPEG4 Part 14 można znaleźć tutaj:
http://webstore.iec.ch/preview/info_isoiec14496-14%7Bed1.0%7Den.pdf
i tutaj:
http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html