ffmpeg - выбор скриншота из видео

1. Дмитрий (04.05.2011 / 05:07)
Такая ситуация. При загрузке видео нужно автоматически выбирать из ролика кадр для скриншота.
Выбираю так:
shell_exec("ffmpeg -i '" . $filename . "' -f image2 -ss 00:00:03.000 -vframes 1 -y '" . $prevfile . "'");
где $filename - только что загруженный видеоролик
$prevfile - полный путь к создаваемому скриншоту
00:00:03.000 - третья секунда ролика

Все супер. НО - не выбирается скриншот из видео-формата ".mp4" (из .flv .avi и .3gp картинка выбирается отлично, в хорошем качестве).
Посоветуйте, плиз, как выбрать скриншот из .mp4

Немного добавлю - при загрузке ролика я конвертирую форматы, отличные от .flv и .mp4 - в .flv
Конвертирую так:
shell_exec("ffmpeg -i '" . $filename . "' -ar 22050 -ab 64k -f flv -b 700k -s 520x360 -y '" . $newfilename . "'");
где $filename - только что загруженный видеоролик
$newfilename - полный путь к создаваемому ролику .flv

Хотел конвертировать и .mp4 в .flv но беда в том, что и конвертировань не получается.

Для этого формата нужен какой-то костыль?

2. Дмитрий (04.05.2011 / 16:04)
очень актуально

3. Дмитрий (05.05.2011 / 06:10)
чо, никто не съел собаку на этом?

4. Wwwyd (05.05.2011 / 07:19)
пересмотри свою сборку ffmpeg'а, скорей всего у тебя в сборке нет кодеков обработки mpeg4

5. Александр (31.10.2018 / 06:49)
Приветствую всех, При загрузке файла на сервер выскакивает такая ошибка

Fatal error: Class 'ffmpeg_movie' not found in /var/www/u45265/data/www/newap.cf/panel/upload.php on line 131


А вот собственно эти строки 130 и 131:

/* Создаем объект ffmpeg */
$video = new ffmpeg_movie(ROOT.'/'.$url_file);

На сервере я так предполагаю поддержки ffmpeg нет,. В скрипте в самих кодах это ffmpeg можно убрать как-нибудь???

6. Кевин Митник (31.10.2018 / 14:08)
сломаешь себе скрипт, так как он использует ffmpeg

7. Александр (31.10.2018 / 14:15)
Кевин Митник, так как его заставить считать не критической ошибкой отсутствие ffmpeg??

8. Вантуз-мен (31.10.2018 / 15:34)
Александр, оберни вызов в try catch и catch оставь пустым
http://php.net/manual/ru/language.exceptions.php

9. Александр (31.10.2018 / 18:02)
Кусок кода


Помогите исключить этот ffmpeg, чот я там Сань по ссылке ничего не догнал, там ещё в зависимости от версии php , у меня 5.2 т.к если выше ставить то скрипт ругатся начинает при подключении к базе.

10. Вантуз-мен (31.10.2018 / 19:13)
/* Создаем папку */
if(!mkdir(ROOT.'/'.$dir, 0777))
{
message('Произошла ошибка при создании папки '.$dir.' !');
}
chmod(ROOT.'/'.$dir, 0777);


/* Копируем файл */
if(!copy($_FILES['file']['tmp_name'], ROOT.'/'.$url_file))
{
unlink(ROOT.'/'.$dir);
message('Ошибка при копировании файла!');
}	


11. Александр (31.10.2018 / 19:42)
Вантуз-мен, чего это?

12. Вантуз-мен (31.10.2018 / 20:35)
Я исключил ffmpeg, как ты просил

13. Александр (31.10.2018 / 23:02)
Так у меня ошибка в строчке которая красным выделена)


/* Создаем объект ffmpeg */
$video = new ffmpeg_movie(ROOT.'/'.$url_file);

14. Александр (01.11.2018 / 00:12)
[code][/code]

15. Вантуз-мен (01.11.2018 / 01:06)
Александр, посмотри внимательно в своем коде, там все что ниже работает с этой переменной $video

16. Александр (01.11.2018 / 02:41)
Вантуз-мен, ну тогда получается что эта канитель из за $video
А с ней что делать тогда?

17. JustZero (01.11.2018 / 12:38)
Александр, либо убирай полностью все что связано с ffmpeg, либо ставь php-ffmpeg модуль.

18. Александр (01.11.2018 / 12:50)
JustZero, скорее всего надо хостинг с ffmpeg искать, так как я пробовал удалять всё что связано с ffmpeg и в итоге ошибка подключения к серверу. Скрипт по ходу заточен под него(((

19. ramzes (05.11.2018 / 10:17)
<?php
print_r(get_declared_classes());
?>
или
<?php
print_r(class_exists('ffmpeg_movie'));
?>
начинать надо с главного

URL: https://visavi.net/topics/21231