Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: animated gif from movie

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как сделать такое
Snegfighter
Отправлено: 12 Октября, 2008 - 10:39:36
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




суть - пользователь загружает ролик на сайт. ролик декодируется в флв с опр разрешением (с этим разобрался, проблем нет)
А вот еще хочу сделать так, чтобы из этого ролика делался анимационный джиф (*.gif) из кифрэймов (keyframe).

что то вроде такого, только нужно чтобы эта картинка сохранялась в отдельной папке.
при этом, кажды фрэйм желательно наложить на фон 140х110


Цитата:

$gif = new ffmpeg_animated_gif(1, 120, 90, 3, 0);
while ($frame = getNextKeyFrame($filename))
{
$gif->addFrame($frame);
}


Библиотека включена и гд2 и ффмпег. Огорчение
 
 Top
valenok
Отправлено: 12 Октября, 2008 - 12:06:51
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




$gif->addFrame($frame); правильно отрабатывает ?
В результате получается массив фреймов ?


-----
Truly yours, Sasha.
 
My status
 Top
Snegfighter
Отправлено: 13 Октября, 2008 - 01:30:02
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




о кстати... раз массив, то нада идентификатор ставить... 0_о
хотя по идее без идентификатора он по умолчанию будет $gif[0], $gif[1]....

не знаю, как проверить есть ли массив? я просто с этой функцией не разобрался.. с гд2 и пхпффмпег.
по идее я вставил проверку на
грубо говоря так
CODE (text):
скопировать код в буфер обмена
  1.  
  2. if (!isset($gif))
  3. echo "ашыпко!!";
  4. else
  5. echo "Ашипки нету )";
  6.  
 
 Top
valenok
Отправлено: 13 Октября, 2008 - 01:46:21
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




ну вы документацию откройте, посмотрите что делает функция addframe
проведите отладку


-----
Truly yours, Sasha.
 
My status
 Top
Snegfighter
Отправлено: 13 Октября, 2008 - 07:50:23
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




$frame->addFrame(ffmpeg_frame frame_to_add) //Add a frame to the end of the animated gif.
frame_to_add - The ffmpeg_frame object to add to the end of the animated gif.

То есть функция addframe добавляет кадр в конец анимированного gif
Только не просто кадр а ffmpeg_frame-объект. который он берет из
$frame = getNextKeyFrame($filename)

Документация:

$movie->getNextKeyFrame() //Returns the next key frame from the movie as an ffmpeg_frame object. Returns false if the frame was not found.


так, посмотрел еще
$movie = new ffmpeg_movie(String path_to_media, boolean persistent) - видимо вот тут подставляется параметр $filename, а уже в getNextKeyFrame идет без параметра...

Вот так не работает почему то... Недовольство, огорчение $filename определяется раньше. грубо говоря это video/1.avi

CODE (text):
скопировать код в буфер обмена
  1.  
  2. $frame = new ffmpeg_movie($filename);
  3.  
  4. $gif = new ffmpeg_animated_gif(1, 120, 90, 3, 0);
  5. while ($frame -> getNextKeyFrame())
  6. {
  7. $gif->addFrame($frame);
  8. }
  9. imagegif (1, $gif);
  10.  
  11. if (!isset($gif))
  12. echo "ашыпко!!";
  13. else
  14. echo "Ашипки нету )";
  15.  
  16.  
  17.  


в смысле не пишет ни есть ли ошибка ни нету ли...

Включил отображение всех ошибок пхп

Warning: Can't open movie file video\origin\The-Rasmus-In-The-Shadows.avi in {path}\tmp\upload1.php on line 25

Fatal error: Call to a member function getNextKeyFrame() on a non-object in {path}\tmp\upload1.php on line 28

(Отредактировано автором: 13 Октября, 2008 - 08:14:57)

 
 Top
valenok
Отправлено: 13 Октября, 2008 - 14:05:03
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Fatal error: Call to a member function getNextKeyFrame() on a non-object
переведите


-----
Truly yours, Sasha.
 
My status
 Top
Snegfighter
Отправлено: 13 Октября, 2008 - 16:44:25
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




позвонить члену функции ВзятьСледущийКлючевойФрейм() на не-объект Улыбка

Ну я понимаю, что функция библиотеки php_ffmpeg вызывает поток который объектом этой функции не является. Т.е., то что передается этой функции в качестве параметра с которым она предназначена работать не является требуемым типом. как я понял. Но почему вопрос, ведь я ей ее же функцией другой только даю этот тип. Недовольство, огорчение

погуглил, посмотрел... обычно ошибка возникает если не инициализировано то что вызывается... Но у меня функция то вызывать должно все что надо. И почему открыть не может мувик, если функция к нему оращается после того как скопирует ролик.
 
 Top
valenok
Отправлено: 13 Октября, 2008 - 17:42:58
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




не не, вы на код смотрите и ошибку читайте.
Переводится она так:

Вызов функции getNextKeyFrame() у не-объекта

Смотрим у чего мы вызываем эту функцию. По коду похоже что
$frame -> getNextKeyFrame() - функцию мы вызываем у объекта $frame.
А php говорит что это не объект. Что делать ?

Подсказка: обычно ошибка возникает если не инициализировано то что вызывается


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB