ffmpeg - Конвертор видео (пример 3GP - FLV)

Категория: / DEV Блог / Сервер (FreeBSD)
Как сделать, чтобы ffmpeg успешно мог конвертировать 3gp в flv.
Ось FreeBSD 5.5.

Cтавим из портов lame.

cd /usr/ports/audio/lame
make && make install


Качаем и конфигурируем ffmpeg-devel

cd /usr/ports/multimedia/ffmpeg-devel
make fetch
make extract


Правим мейкфайл /usr/ports/multimedia/ffmpeg-devel/Makefile

CONFIGURE_ARGS= --cc="$CC" --prefix="$PREFIX" \
                --make="$GMAKE" \
                --disable-debug \
                --enable-memalign-hack \
                --enable-shared \
                --source-path=$WRKSRC \
                --enable-amr_nb


Теперь необходимо скачать и распаковать сам кодек (Внимание, папка FFMpeg-2006032300 - временная и может называться по-другому,
но она как правило одна в папке work, так что не ошибётесь)

mkdir ./work/FFMpeg-2006032300/libavcodec/amr_float/
cd ./work/FFMpeg-2006032300/libavcodec/amr_float/


А теперь качаем и распаковываем сам кодек (необходимо извлечь все файлы из архива, которые лежат в папке c-code )

mkdir temp && cd temp
wget http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-540.zip
unzip 26104-540.zip
unzip 26104-540_ANSI_C_source_code.zip
mv ./c-code/*.* ../


Поправка для FreeBSD (by J4ck)

Вручную с сайта 3gpp.org качать ничего не нужно.
Для поддержки 3gp необходимо собрать дополнительно два пакета

1. /usr/ports/audio/libmrnb
2. /usr/ports/audio/libmrwb (опционально)


Makefile порта ffmpeg подключит собранные библиотеки автоматически.

Собираем ffmpeg

cd /usr/ports/multimedia/ffmpeg
make && make install


Далее:

Преобразование в FLV:

ffmpeg -i video.avi -ar 22050 -ab 32 -f flv -s 320x240 video.flv
 
-i input file name
-ar audio sampling rate in Hz
-ab audio bit rate in kbit/s
-f output format
-s output dimension


Конверт в последовательность кадров

ffmpeg -i video.flv -an -r 1 -y -s 320x240 video%d.jpg
 
-i Input file name
-an disable audio
-r fps
-y overwrite file
-s output dimension


Определенный кадр

ffmpeg -i video.flv -an -ss 00:00:03 -t 00:00:01 -r 1 -y -s 320x240 video%d.jpg
 
-ss record start time
-t record end time last for


Дополнительно

PHP Класс для работы с ffmpeg

http://www.phpclasses.org/browse/package/3747.html

Имеет некоторые неточности, которые нужно подогнать под вашу систему.
Зависимости: /usr/ports/multimedia/ruby-flvtool2

По-умолчанию путь до flvtool2 - /usr/bin, хотя из портов программа установится в /usr/local/bin
Также неправильно указывается кодек mp3: -acodec 'mp3' вместо 'libmp3lame'.

Дока по ffmpeg

http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html