Шукати в цьому блозі

четвер, 24 вересня 2009 р.

Установка ffmpeg с использованием MacPorts с поддержкой amr, faad, faac аудио кодеков в Mac OS X "Snow Leopard"

Исходные данные:
Обновленная система Mac OS X "Snow Leopard".
Установленые MacPorts
Установленый пакет XCode

Для начала необходимо переустановить пакет разработчика, а также обновить порты:
Обновление портов:

sudo ports -v selfupdate

рекомендуемо обновляем установленые с портов приложения

sudo port update outdate

Велика вероятность того, что часть приложений не сможет обновиться, опытным путем была
установлена следующая процедура:
- удаление "капризных" приложений sudo port uninstall portname
- установка из обновленного дерева портов вручную sudo port install portname
Как правило, в большинствеслучаев такое нелогичное "шаманство" помогает.
Ставим заново с портов кодеки faac и faad2.

sudo port install faac
sudo port install faad2

Хотя при установке правильных ключей, и сборке ffmpeg из портов, эти кодеки должны установиться по зависимости.

На официальном сайте http://ffmpeg.org/ есть новость:
July 24, 2009
FFmpeg has removed support for libamr as of svn revision 19365. It has been replaced with support for libopencore-amr. Naturally the configure options have changed. The libamr options have been removed and there are two new options to take their place:

* --enable-libopencore-amrnb
* --enable-libopencore-amrwb

The reason for this change is that the libamr license was non-free, while libopencore-amr is licensed under an Apache 2 license. The change was discussed at length on the developer mailing list during May, June, and July. This has several effects:

* You may now distribute FFmpeg builds with support for dynamically loading libopencore-amr
* Support for AMR-WB encoding has been removed since libopencore-amr does not support it

Что значит, что начиная svn сверсии 19365 поддержка в ffmpeg "несвободной" версии отановлена, далнейшее развитие подразумевает
использование libopencore-amr, исходники которой можно найти на ресуре http://opencore-amr.sourceforge.net/

В свою очередь, в портах версия ffmpeg 0.5 с поддержкой non-free кодеков, поэтому скачиваем последние актуальные исходники libamr.

Например, на ресурсе http://ftp.penguin.cz/pub/users/utx/amr/ были найдены исходники:

http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2
http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2

датированные 22.05.2008

скачиваем, распаковываем, устанавливаем:

tar -jxvf amrnb-7.0.0.2.tar.bz2
cd amrnb-7.0.0.2
./configure
make
sudo make install

tar -jxvf amrwb-7.0.0.3.tar.bz2
cd amrwb-7.0.0.3.tar.bz2
./configure
make
sudo make install

Теперь необходимо отредактировать параметры сборки ffmpeg.

sudo port edit ffmpeg

Раздел аргументов кофигурирования должен содержать следующие ключи:

--enable-libfaac \
--enable-libfaad \
--enable-libamr-nb \
--enable-libamr-wb \
--enable-nonfree \

Выходим из редактора сохранив изменения.


Собираем ffmpeg:

sudo port install ffmpeg.

В идеале в конце имеем собраный ffmpeg с поддержкой amr:

ffmpeg
FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --prefix=/opt/local --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libfaac --enable-libfaad --enable-libxvid --enable-libx264 --enable-libamr-nb --enable-libamr-wb --enable-nonfree --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/gcc-4.0 --arch=i386
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 1. 4. 0 / 1. 4. 0
libswscale 1. 7. 1 / 1. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Sep 24 2009 20:18:37, gcc: 4.0.1 (Apple Inc. build 5490)
At least one output file must be specified


Источники:

http://sda00.blogspot.com/2008_03_01_archive.html
http://ubuntuforums.org/showthread.php?t=491885
http://ffmpeg.org/