Как проиграть AMR на Linux?
0. Лирика
Недавно я приобрел мобильный телефон с поддержкой звукового формата AMR.
На радостях я ощасливил себя загрузкой пары сотен реалтонов в этом формате :)
И тут стал вопрос о их прослушивании перед заливкой в телефон.
Под Linux "из коробки" AMR поддерживают RealPlayer и HelixPlayer -
первый отказался воспроезвести ссылаясь на занятость звукового устройства,
а второй заявил, что у него нет возможности проиграть данный формат, хотя на
сайте заявлена его поддержка :(
Выбор остановился на MPlayer, в состав которого входит FFMpeg и для которого
есть исходники кодеков AMR со спецификациями.
1. Берем MPlayer из CVS:
Вы можете получить MPlayer через анонимный CVS.
Выполните следующие команды, чтобы получить последние исходники:
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main
Когда у вас спросят пароль, просто нажмите <enter>. Директория с именем main
будет создана в текущей директории.
Следует заметить, что CVS MPlayer не функционирует без копии библиотек libavcodec,
libavformat и libavutil из FFmpeg. Скачайте FFmpeg CVS:
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg
Когда у вас спросят пароль, просто нажмите <enter>. Директория с именем ffmpeg
будет создана в текущей директории.
Скопируйте libavcodec, libavformat и libavutil поддиректории в директорию main.
2. Добавляем поддержку amr:
Читаем коммент в mplayer/libavcodec/amr.c
Качаем нужный файл, распаковываем куда надо,
пересобираем mplayer с поддержкой amr-nb.
Спасибо B084
В коментах amr.c даны прямые ссылки на архивы.
Насколько понял они не самые последние.
У меня нормально собирался mplayer из cvs с
http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-610.zip
http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-600.zip
Спасибо isn
Распаковываем 26204-600.zip/26204-600_ANSI-C_source_code.zip/c-code в main/libavcodec/amrwb_float
Распаковываем 26104-610.zip/26104-610_ANSI_C_source_code.zip/c-code в main/libavcodec/amr_float
3. Собираем MPlayer:
Включаем поддержку amr в MPlayer
./configure --enable-amr_wb --enable-amr_nb --prefix=/usr
make
4. Слушаем amr в MPlayer
На моей системе Slackware 10.2 + Droppline Gnome 2.12.2
mplayer играл только одну секунду напрямую через alsa
Проблема решилась использованием вывода через esd:
mplayer -ao esd *.amr
PS:
Сей документ был написан 23 февраля 2006 года.
Использован MPlayer из CVS от 22 февраля 2006 года.
Благодарность за содействие в решении проблемы B084 и isn
из форума LOR.
(c) 2006 Anatoliy Okhotnikov aka AcidumIrae