FFFFx029A

FFFFx029A
Рейтинг
142
Регистрация
01.09.2007
Интересы
god mode
In Itself We Trust
pikasso:
Не знаю, оно или нет, но посмотрите, нашел в гугле:
Тыц

Спс, какраз юзал эту статью))) Фишка была вокруг x264 либы, которую в отличии от других либ, нужно было компилить без опции --enable-shared

Установил FFMpeg 0.6 со следующими параметрами:

./configure --enable-libfaac --enable-shared --enable-memalign-hack --enable-gpl --enable-libtheora --enable-libmp3lame --enable-libopenjpeg --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-avfilter --enable-swscale --enable-libfaad --enable-x11grab --enable-pthreads

вроде для салата все готово, а вот сконвертить flv в .mp4 - никак(

При таком способе получаю на выходе только звук (без видео почемуто)

ffmpeg -i 19411-2010_08_30_20_16_43-www.bomz.org_bomzhi_moscow.flv.tmp 19411-2010_08_30_20_16_43-www.bomz.org_bomzhi_moscow.flv.mp4

Ответ сервера:


FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers
built on Aug 30 2010 20:10:05 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
configuration: --enable-libfaac --enable-shared --enable-memalign-hack --enable-gpl --enable-libtheora --enable-libmp3lame --enable-libopenjpeg --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-avfilter --enable-swscale --enable-libfaad --enable-x11grab --enable-pthreads
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x9fbb430]max_analyze_duration reached
[flv @ 0x9fbb430]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 4.29 (1000/233)
Input #0, flv, from '19411-2010_08_30_20_16_43-www.bomz.org_bomzhi_moscow.flv.tmp':
Metadata:
duration : 51
width : 176
height : 144
videodatarate : 0
framerate : 4
videocodecid : 2
audiosamplerate : 22050
audiosamplesize : 16
stereo : false
audiocodecid : 2
filesize : 1323585
Duration: 00:00:51.02, start: 0.000000, bitrate: 64 kb/s
Stream #0.0: Video: flv, yuv420p, 176x144, 4.29 tbr, 1k tbn, 1k tbc
Stream #0.1: Audio: mp3, 22050 Hz, 1 channels, s16, 64 kb/s
Output #0, mp4, to '19411-2010_08_30_20_16_43-www.bomz.org_bomzhi_moscow.flv.mp4':
Metadata:
encoder : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 176x144, q=2-31, 200 kb/s, 1k tbn, 4.29 tbc
Stream #0.1: Audio: libfaac, 22050 Hz, 1 channels, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 217 fps= 0 q=2.0 Lsize= 1054kB time=50.34 bitrate= 171.6kbits/s
video:810kB audio:233kB global headers:0kB muxing overhead 1.094163%

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

-f mp4 -r 29.97 -vcodec libx264 -s 640x480 -b 1000kb -cmp +chroma -deblockalpha 0 -deblockbeta 0 -b 1250k -maxrate 1500k -bt 256k -refs 1 -bf 3 -coder 1 -me_method umh -me_range 16 -subq 7 -g 250 -keyint_min 25 -level 30 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec libfaac -ab 112kb -ar 48000 -ac 2

Но теперь чото картинку не хочет с видео делать, точнее делает, но записует туда явно не JPG, хотя занимает 8-10кб 320х240, а в браузере пишет Unsupported Media Type, Error 415.

Делал так: /usr/local/bin/ffmpeg -y -itsoffset -3 -i 94756-2010_08_30_21_45_11-www.bomz.org_bomzhi_moscow.flv.mp4 -vcodec mjpeg -vframes 1 -an -f rawvideo -s 293x240 94756-2010_08_30_21_45_11-www.bomz.org_bomzhi_moscow.flv.mp4.jpg

P.S Мож кто знает оптимальные параметры общие для основных форматов? или там под каждый формат видео свои параметры нужны?

j4ck:
Если рекурсия не пашет, можно скормить с помощью find как то так:

find ./ -name "*.flv" -exec flvtool2 -U {} \;

Там оказывается папку надо скармливать, вот так заработало: flvtool2 -Ur /videopath/

FFFFx029A добавил 30.08.2010 в 13:59

DeveloperRu:
интересно, а подобные небольшие видео-хостинги себя окупают ?

Если повесить порнуху - то да, а все остальное не особо, просто становится удобнее видео заливать...

j4ck:
Все доступно расписано в мане
http://h264.code-shop.com/trac/wiki/Encoding
и у меня в бложике

Работоспособность проверена на freebsd, ubuntu.
Есть небольшая php библиотека-класс для конверта, могу поделиться.

у меня libx264 нету и не получаетс проинсталить, а yum install ffmpeg ffmpeg-devel = не находит ниче, создал для юма даг файл, вроде терь нахоит ffmpeg пакет, но после инстала ффмпега нету(


yum install ffmpeg ffmpeg-devel Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.halifax.rwth-aachen.de
* base: ftp.halifax.rwth-aachen.de
* extras: ftp.halifax.rwth-aachen.de
* updates: ftp.halifax.rwth-aachen.de
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ffmpeg.i386 0:0.5.2-2.el5.rf set to be updated
--> Processing Dependency: libImlib2.so.1 for package: ffmpeg
--> Processing Dependency: libdirac_encoder.so.0 for package: ffmpeg
--> Processing Dependency: libdirac_decoder.so.0 for package: ffmpeg
--> Processing Dependency: libpostproc.so.51 for package: ffmpeg
--> Processing Dependency: libmp3lame.so.0 for package: ffmpeg
--> Processing Dependency: libfaac.so.0 for package: ffmpeg
--> Processing Dependency: libx264.so.68 for package: ffmpeg
--> Processing Dependency: a52dec for package: ffmpeg
--> Processing Dependency: libopencore-amrwb.so.0 for package: ffmpeg
--> Processing Dependency: libopencore-amrnb.so.0 for package: ffmpeg
--> Processing Dependency: libpostproc.so.51(LIBPOSTPROC_51) for package: ffmpeg
---> Package ffmpeg-devel.i386 0:0.5.2-2.el5.rf set to be updated
--> Processing Dependency: a52dec-devel for package: ffmpeg-devel
--> Processing Dependency: imlib2-devel for package: ffmpeg-devel
--> Processing Dependency: x264-devel for package: ffmpeg-devel
--> Processing Dependency: faad2-devel for package: ffmpeg-devel
--> Processing Dependency: faac-devel for package: ffmpeg-devel
--> Processing Dependency: xvidcore-devel for package: ffmpeg-devel
--> Processing Dependency: lame-devel for package: ffmpeg-devel
--> Running transaction check
---> Package a52dec.i386 0:0.7.4-8.el5.rf set to be updated
---> Package a52dec-devel.i386 0:0.7.4-8.el5.rf set to be updated
---> Package dirac.i386 0:1.0.2-1.el5.rf set to be updated
--> Processing Dependency: libcppunit-1.12.so.0 for package: dirac
---> Package faac.i386 0:1.26-1.el5.rf set to be updated
---> Package faac-devel.i386 0:1.26-1.el5.rf set to be updated
---> Package faad2-devel.i386 0:2.7-1.el5.rf set to be updated
--> Processing Dependency: faad2 = 2.7-1.el5.rf for package: faad2-devel
--> Processing Dependency: libfaad.so.2 for package: faad2-devel
---> Package ffmpeg-libpostproc.i386 0:0.5.2-2.el5.rf set to be updated
---> Package imlib2.i386 0:1.4.4-1.el5.rf set to be updated
--> Processing Dependency: libid3tag.so.0 for package: imlib2
---> Package imlib2-devel.i386 0:1.4.4-1.el5.rf set to be updated
---> Package lame.i386 0:3.98.4-1.el5.rf set to be updated
---> Package lame-devel.i386 0:3.98.4-1.el5.rf set to be updated
---> Package opencore-amr.i386 0:0.1.2-1.el5.rf set to be updated
---> Package x264.i386 0:0.0.0-0.4.20090708.el5.rf set to be updated
---> Package x264-devel.i386 0:0.0.0-0.4.20090708.el5.rf set to be updated
---> Package xvidcore-devel.i386 0:1.2.2-1.el5.rf set to be updated
--> Processing Dependency: xvidcore = 1.2.2 for package: xvidcore-devel
--> Processing Dependency: libxvidcore.so.4 for package: xvidcore-devel
--> Running transaction check
---> Package cppunit.i386 0:1.12.0-3.el5.rf set to be updated
---> Package faad2.i386 0:2.7-1.el5.rf set to be updated
---> Package libid3tag.i386 0:0.15.1b-3.el5.rf set to be updated
---> Package xvidcore.i386 0:1.2.2-1.el5.rf set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
ffmpeg i386 0.5.2-2.el5.rf dag 2.5 M
ffmpeg-devel i386 0.5.2-2.el5.rf dag 2.7 M
Installing for dependencies:
a52dec i386 0.7.4-8.el5.rf dag 78 k
a52dec-devel i386 0.7.4-8.el5.rf dag 23 k
cppunit i386 1.12.0-3.el5.rf dag 811 k
dirac i386 1.0.2-1.el5.rf dag 2.9 M
faac i386 1.26-1.el5.rf dag 151 k
faac-devel i386 1.26-1.el5.rf dag 5.6 k
faad2 i386 2.7-1.el5.rf dag 354 k
faad2-devel i386 2.7-1.el5.rf dag 9.5 k
ffmpeg-libpostproc i386 0.5.2-2.el5.rf dag 40 k
imlib2 i386 1.4.4-1.el5.rf dag 924 k
imlib2-devel i386 1.4.4-1.el5.rf dag 9.0 k
lame i386 3.98.4-1.el5.rf dag 576 k
lame-devel i386 3.98.4-1.el5.rf dag 21 k
libid3tag i386 0.15.1b-3.el5.rf dag 75 k
opencore-amr i386 0.1.2-1.el5.rf dag 376 k
x264 i386 0.0.0-0.4.20090708.el5.rf dag 898 k
x264-devel i386 0.0.0-0.4.20090708.el5.rf dag 299 k
xvidcore i386 1.2.2-1.el5.rf dag 511 k
xvidcore-devel i386 1.2.2-1.el5.rf dag 141 k

Transaction Summary
================================================================================
Install 21 Package(s)
Upgrade 0 Package(s)

Total size: 13 M
Is this ok [y/N]: y
Downloading Packages:
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Public key for xvidcore-1.2.2-1.el5.rf.i386.rpm is not installed



а потом собственно косяк что не проинсталило


yum update ffmpeg ffmpeg-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.halifax.rwth-aachen.de
* base: ftp.halifax.rwth-aachen.de
* extras: ftp.halifax.rwth-aachen.de
* updates: ftp.halifax.rwth-aachen.de
Setting up Update Process
Package(s) ffmpeg available, but not installed.
Package(s) ffmpeg-devel available, but not installed.

No Packages marked for Update

FFFFx029A добавил 30.08.2010 в 14:56

Вообщем pgpcheck убрал внешним параметров и вуаля)

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.72. 2
libavformat 52.31. 0 / 52.64. 2
libavdevice 52. 1. 0 / 52. 2. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
built on Jun 13 2010 23:49:29, gcc: 4.1.2 20080704 (Red Hat 4.1.2-48)
At least one output file must be specified

Ща снова нефурды, вылазит при конверте ffmpeg -i file.flv -f mp4 file.mp4

ffmpeg: relocation error: ffmpeg: symbol frame_hook_process, version LIBAVFORMAT_52 not defined in file libavformat.so.52 with link time reference

pikasso:
Этот параметр создает файлы очень большого размера, лучше использовать статичный битрейт, попробуйте прописать 600000.

pikasso добавил 30.08.2010 в 06:02
ЗЫ
Судя по всем вашим последним темам вы создаете какой то видео хостинг ?

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

ЗЫ: с FLV решил перейти на .MP4 и вот неконверт(((

вот может ffmpeg у меня корявый!?


ffmpeg
FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers
built on Jun 23 2010 14:29:29 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
configuration: --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.11. 0 / 0.11. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

(CentOS стоит, сложно сюда ставилось, 6й ffmpeg тольк пошел и то попатчить пришлось)

php -r 'phpinfo();' | grep ffmpeg
ffmpeg
ffmpeg-php version => 0.6.0-svn
ffmpeg-php built on => Aug 30 2010 00:00:33
ffmpeg-php gd support => enabled
ffmpeg libavcodec version => Lavc52.72.2
ffmpeg libavformat version => Lavf52.64.2
ffmpeg swscaler version => SwS0.11.0
ffmpeg.allow_persistent => 0 => 0
ffmpeg.show_warnings => 0 => 0

Пытаюсь конвертить из FLV в .MP4, а оно в итоге только звук слышно, а видео нет и скриншот не делает(

Вот что вывело, мож кто шарит:



ffmpeg -i /video/31015-2010_08_29_23_10_44-www.bomz.org_bomzhi_moscow.flv.tmp -f mp4 -vcodec mpeg4 -vb 900kb -s 720x540 -r 25 -ab 96kb -ac 2 /video/31015-2010_08_29_23_10_44-www.bomz.org_bomzhi_moscow.flv.mp4
FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers
built on Jun 23 2010 14:29:29 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
configuration: --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.11. 0 / 0.11. 0
[flv @ 0x8254420]max_analyze_duration reached
[flv @ 0x8254420]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 4.29 (1000/233)
Input #0, flv, from '/video/31015-2010_08_29_23_10_44-www.bomz.org_bomzhi_moscow.flv.tmp':
Metadata:
duration : 51
width : 176
height : 144
videodatarate : 0
framerate : 4
videocodecid : 2
audiosamplerate : 22050
audiosamplesize : 16
stereo : false
audiocodecid : 2
filesize : 1323585
Duration: 00:00:51.02, start: 0.000000, bitrate: 64 kb/s
Stream #0.0: Video: flv, yuv420p, 176x144, 4.29 tbr, 1k tbn, 1k tbc
Stream #0.1: Audio: mp3, 22050 Hz, 1 channels, s16, 64 kb/s
File '/video/31015-2010_08_29_23_10_44-www.bomz.org_bomzhi_moscow.flv.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to '/video/31015-2010_08_29_23_10_44-www.bomz.org_bomzhi_moscow.flv.mp4':
Metadata:
encoder : Lavf52.64.2
Stream #0.0: Video: mpeg4, yuv420p, 720x540, q=2-31, 900 kb/s, 25 tbn, 25 tbc
Stream #0.1: Audio: aac, 22050 Hz, 2 channels, s16, 96 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 217 fps= 19 q=2.1 Lsize= 4353kB time=50.48 bitrate= 706.4kbits/s
video:3735kB audio:606kB global headers:0kB muxing overhead 0.277040%

Вот еще вариант коммерческий http://miniwm.ru/soft.php?read=2022

bearman:
FFFFx029A, а надо было всего параметр взять в кавычки " .... да, жизнь - суровая штука, иногда чтобы поцеловаться, надо сначала переспать ..

да я раз в пол года в этом копаюсь, яж не сисадмин... 🤪

bearman:
хаха, сурово

Вообщем косяк оказался непонятным, если в URL есть знак "&" то все что после него - не воспринимается и если заменить на "&" - ваще ашипку выдает..

Вообщем сделал так:

screen -d -m /usr/bin/wget -O - myurl

P.S скрипт легко завершает работу и запускает новый процес в фоне который не спеша конвертит мне видео..

Ну я тут поковырялся, и возник новый вопрос..

Как запустить в скрипте url аля site.ru/?video_id=555 и так чтоб оно в фон ушло, а скрипт который это запустил, быстренько доделал свои черные дела и завершился..!?

Пробывал так:

...

shell_exec("screen -d -m /usr/bin/wget -O - http:// site.ru /path/script.php?id=111");

...

ответ:

Resolving bomz.org... 88.198.37.9

Connecting to bomz.org|88.198.37.9|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 0 [text/html]

Saving to: `STDOUT'

но чото не выходит, оно должно запускать в фоне процесс и качать страничку не в файл, а куда-то там в пустоту, но блин не пашит, url вроде как запрашивается ок, но пишет 0 байт(

мужики, хелп

Всего: 1126