Android Strip Audio из видео - PullRequest
       31

Android Strip Audio из видео

6 голосов
/ 01 марта 2009

В моей программе он получает видео в формате MP4, и я хочу, чтобы он выводил MP3 (без каких-либо вещей на стороне сервера). Поскольку Android (и мое приложение) должны работать на разных аппаратных конфигурациях, это означает, что я не может использовать FFMPEG. Я знаю, что это может потребовать очень много энергии от аккумулятора и вычислительной мощности, особенно для мобильного телефона, но мне нужна эта опция для моих пользователей. Я не могу найти нативные библиотеки для Java, которые не используют FFMPEG.

Ответы [ 3 ]

4 голосов
/ 08 марта 2009

MPEG_4 Часть 14 (расширение файла .mp4) - это формат контейнера. Другими словами, это определяет, как несколько медиа потоков могут быть упакованы вместе. Обработка контейнерных форматов намного дешевле в вычислительном отношении, чем, например, сжатие или распаковка видео. Я был бы удивлен, если бы это оказалось слишком вычислительно дорогим для чтения файла .mp4 и извлечения аудиопотока на процессоре ARM сотового телефона.

Я не видел ни одной подходящей библиотеки Java. Вероятно, не составит труда создать собственную библиотеку. Разбор форматов контейнеров гораздо проще, чем распаковка видео. И у вас есть реализация libavformat в ffmpeg в качестве ссылки. Стандарты MPEG4 Part 14 можно найти здесь:

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

и здесь:

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

3 голосов
/ 10 марта 2009

Я вижу небольшую проблему с FFMPEG, поскольку , очевидно, работает на архитектурах 11 , поддерживаемых Debian. По-видимому, только не поддерживаемая архитектура - m68k, другие - старые версии в портах для ядра FreeBSD или ядра Hurd. И из того, что я знаю об Android, тот факт, что он основан на ARM, не изменится в ближайшее время.

Конечно, могут быть некоторые проблемы с обертками Java вокруг нативного кода. Это проблема? Я не Android и не Java-программист, но я уверен, что вы можете определить платформу и динамически загрузить соответствующую встроенную оболочку.

1 голос
/ 05 марта 2009

Я не использовал его, но я скачал и смотрю API для IBM Toolkit для MPEG-4 . Тем не менее, это немного освещает функции доступа к данным. Реализация чисто Java, хотя. Похоже, они запутали свои банки с кодеками.

...