К примеру мне нужно нужно получить информацию о времени воспроизведения файла. или 3-й кадр видео. как это сделать?
Спустя 12 минут, 32 секунды (17.09.2012 - 08:16) vagrand написал(а):
Спустя 7 минут, 42 секунды (17.09.2012 - 08:24) Strannik написал(а):
собственно говоря оттуда только что =)
выполнять нужно через exec ?
на сервере путь ffmpeg: /usr/bin/ffmpeg /usr/local/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
код
не выполняется... выдает String(0) ""
почему?
выполнять нужно через exec ?
на сервере путь ffmpeg: /usr/bin/ffmpeg /usr/local/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
код
$videoInfo = exec('/usr/bin/ffmpeg -i /hsphere/local/home/c292729/testwork.ru/1/1.mp4');
var_dump($videoInfo);
не выполняется... выдает String(0) ""
почему?
Спустя 1 час, 7 минут, 16 секунд (17.09.2012 - 09:31) Strannik написал(а):
код:
выдает следующее:
для конвертирования применял код:
но он не сработал...
подскажите как отсюда вывести Duration? как получить картинку из 10-го кадра и как конвертировать в формат ogg ?
$src = "/hsphere/local/home/c292729/testwork.ru/1/1.mp4";
$command = "/usr/bin/ffmpeg -i " . $src . " 2>&1";
shell_exec($command)
выдает следующее:
FFmpeg version 0.6.5, Copyright © 2000-2010 the FFmpeg developers
built on Jan 29 2012 23:56:18 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
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-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
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
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/hsphere/local/home/c292729/testwork.ru/1/1.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
Duration: 00:03:24.12, start: 0.000000, bitrate: 449 kb/s
Stream #0.0(und): Video: h264, yuv420p, 640x360, 350 kb/s, 25 fps, 25 tbr, 50 tbn, 50 tbc
Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 95 kb/s
At least one output file must be specified
для конвертирования применял код:
shell_exec('/usr/bin/ffmpeg -i /hsphere/local/home/c292729/testwork.ru/1/1.ogg -s 640x480 -i /hsphere/local/home/c292729/testwork.ru/1/1.mp4');
но он не сработал...
подскажите как отсюда вывести Duration? как получить картинку из 10-го кадра и как конвертировать в формат ogg ?
Спустя 3 часа, 2 минуты, 26 секунд (17.09.2012 - 12:33) vagrand написал(а):
Цитата |
подскажите как отсюда вывести Duration? |
Ну так вот же вам строка:
Duration: 00:03:24.12, start: 0.000000, bitrate: 449 kb/s
берете в руки регулярные выражения и выдираете Duration.
Цитата |
как получить картинку из 10-го кадра |
Цитата |
как конвертировать в формат ogg ? |
Спустя 1 день, 31 минута, 59 секунд (18.09.2012 - 13:05) Strannik написал(а):
просто я по регуляркам не очень поэтому для меня и не просто это...
Спустя 1 час, 13 минут, 38 секунд (18.09.2012 - 14:19) vagrand написал(а):
Strannik
Ну так изучайте регулярки и все будет хорошо.
Ну так изучайте регулярки и все будет хорошо.
Спустя 12 минут, 17 секунд (18.09.2012 - 14:31) killer8080 написал(а):
Цитата (Strannik @ 18.09.2012 - 13:05) |
просто я по регуляркам не очень поэтому для меня и не просто это... |
Какая проблема написать регулярку, под стандартный, консольный вывод?

Спустя 9 часов, 35 минут, 5 секунд (19.09.2012 - 00:06) Strannik написал(а):
Цитата (vagrand @ 18.09.2012 - 14:19) |
Strannik Ну так изучайте регулярки и все будет хорошо. |
в этом и проблема)) учиться и еще раз учиться как говаривал один лысенький дядя...
Спустя 4 часа, 34 минуты, 16 секунд (19.09.2012 - 04:41) Strannik написал(а):
получаем следующее (может быть кому-нибудь пригодится еще):
1) получаем время файла
2) получить изображение в виде кадра фильма:
3) конвертировать в формат .ogg
4) как получить время файла в буфере?
Спасибо всем за помощь=)
1) получаем время файла
ob_start();
passthru("ffmpeg-9260.exe -i \"". $videofile . "\" 2>&1");
$duration = ob_get_contents();
ob_end_clean();
preg_match('/Duration: (.*?),/', $duration, $matches);
$duration = $matches[1];
$duration_array = split(':', $duration);
$duration = $duration_array[0] * 3600 + $duration_array[1] * 60 + $duration_array[2];
$time = $duration * $percent / 100;
$time = intval($time/3600) . ":" . intval(($time-(intval($time/3600)*3600))/60) . ":" . sprintf("%01.3f", ($time-(intval($time/60)*60)));
2) получить изображение в виде кадра фильма:
ffmpeg -i video.avi -an -ss 00:01:30 -r 1 -vframes 1 -s 320Ч240 -y -f mjpeg screenshot.jpg
3) конвертировать в формат .ogg
a)ffmpeg -an -deinterlace -s 400Ч300 -r 20.00 -i CapeCodMarsh.avi -vcodec rawvideo -pix_fmt yuv420p -f rawvideo – | ffmpeg -an -f rawvideo -s 400Ч300 -r 20.00 -i – -f yuv4mpegpipe – | libtheora-1.0/lt-encoder_example –video-rate-target 512k – -o tmp.ogv
b)ffmpeg -y -i CapeCodMarsh.avi -vn -acodec libvorbis -ac 2 -ab 128k -ar 44100 audio.ogg
4) как получить время файла в буфере?
var v = document.getElementById('file_id');
var r = v.buffered.end(0);
Спасибо всем за помощь=)
Спустя 4 часа, 37 минут, 41 секунда (19.09.2012 - 09:18) killer8080 написал(а):
Strannik
а зачем эти пляски с буферизацией? Не проще shell_exec?
а зачем эти пляски с буферизацией? Не проще shell_exec?
Спустя 1 день, 8 часов, 38 секунд (20.09.2012 - 17:19) Strannik написал(а):
можно и так. я написал на скорую руку) вариантов много.