ffmpeg - Конвертор видео (пример 3GP - FLV)
Категория: / DEV Блог
/ Сервер (FreeBSD)
Как сделать, чтобы ffmpeg успешно мог конвертировать 3gp в flv.
Ось FreeBSD 5.5.
Cтавим из портов lame.
Качаем и конфигурируем ffmpeg-devel
Правим мейкфайл /usr/ports/multimedia/ffmpeg-devel/Makefile
Теперь необходимо скачать и распаковать сам кодек (Внимание, папка FFMpeg-2006032300 - временная и может называться по-другому,
но она как правило одна в папке work, так что не ошибётесь)
А теперь качаем и распаковываем сам кодек (необходимо извлечь все файлы из архива, которые лежат в папке c-code )
Поправка для FreeBSD (by J4ck)
Вручную с сайта 3gpp.org качать ничего не нужно.
Для поддержки 3gp необходимо собрать дополнительно два пакета
Makefile порта ffmpeg подключит собранные библиотеки автоматически.
Собираем ffmpeg
Далее:
Преобразование в FLV:
Конверт в последовательность кадров
Определенный кадр
Дополнительно
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
Ось 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
Народ вот есть ОТЛИЧНАЯ программа для КОНВЕРТИРОВАНИЯ ЛЮБОГО формата видео в любой ДРУГОЙ формат!!! Может даже формат divx, flv, VOB, wmv и другую бяку сконвертировать во что хотите даже в 3PG!!! КЛЮЧЬ ЕСТЬ!!! ОЧЕНЬ ПРОСТАЯ и БЫСТРАЯ в использовании!!! Качаем!!!!!
http://letitbit.net/download/1435.f1930f73ca2f7521f869d208d/VCM_8.0.RAR.html
загрузка видео и аудио файлов MP3, FLV, MP4 со страниц ВКонтакте.ru, Facebook, YouTube, MySpace и мн. др., и конвертация FLV в MP4 3GP MOV MP3
http://softtelecom.ru/soft/mb/mbhelp.htm
libamrnb, а не libmrnb
libamrwb, а не libmrwb, исправьте, пожалуйста, чтобы народ не кувыркался
/usr/ports/audio/libamrnb
/usr/ports/audio/libamrwb
соттветственно
Unknown encoder 'mp3'
Если в системе lame точно собран, то можно попробовать заменить
-acodec 'mp3' на 'libmp3lame'
можно воспользоваться этим классом
http://www.phpclasses.org/browse/package/3747.html
Порт: /usr/ports/graphics/php5-ffmpeg
Доки: http://ffmpeg-php.sourceforge.net/doc/api/
Unable to create and execute files in /tmp. Set the TMPDIR environment
variable to another directory and make sure that /tmp is not mounted
noexec.
Sanity test failed.
If you think configure made a mistake, make sure you are using the latest
version from SVN. If the latest version fails, report the problem to the
ffmpeg-devel@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.err" produced by configure as this will help
solving the problem.
===> Script "configure" failed unexpectedly.
Please report the problem to multimedia@FreeBSD.org [maintainer] and attach
the "/usr/ports/multimedia/ffmpeg/work/ffmpeg-2007-10-04/config.err" including
the output of the failure of your make command. Also, it might be a good idea
to provide an overview of all packages installed on your system (e.g. an `ls
/var/db/pkg`).
*** Error code 1
Stop in /usr/ports/multimedia/ffmpeg.
[root@ /usr/ports/multimedia/ffmpeg]# echo $TMPDIR
[root@ /usr/ports/multimedia/ffmpeg]# export TMPDIR=/usr/tmp
[root@ /usr/ports/multimedia/ffmpeg]# mkdir /usr/tmp
[root@e /usr/ports/multimedia/ffmpeg]# ffmpeg -formats | grep 3gp
FFmpeg version SVN-r10657, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --cc=cc --prefix=/usr/local --make=gmake --disable-debug --enable-memalign-hack --enable-shared --enable-pp --extra-cflags=-I/usr/local/include/vorbis -msse -I/usr/local/include --extra-ldflags=-L/usr/local/lib -la52 --extra-libs=-pthread --enable-gpl --enable-pthreads --mandir=/usr/local/man --enable-liba52 --enable-liba52bin --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libogg --disable-ffplay --enable-libtheora --enable-libvorbis --enable-libx264
libavutil version: 49.5.0
libavcodec version: 51.44.0
libavformat version: 51.14.0
built on Mar 27 2008 13:28:16, gcc: 3.4.2 [FreeBSD] 20040728
E 3g2 3gp2 format
E 3gp 3gp format
DE amr 3gpp amr file format
D mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG4/Motion JPEG 2000 format