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 :: ffmpeg скриншот

 PHP.SU

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


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

> Описание: Сделать скриншоты через n колличество времени
Айратиус
Отправлено: 11 Мая, 2015 - 14:59:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


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




Извиняюсь за повтор, но реально горит
Делаю скриншот таким образом
PHP:
скопировать код в буфер обмена
  1. $mp4='video.mp4';
  2. $time=104;
  3. $sekunda=$time/10;
  4. $sekunda=(int)$sekunda; //10
  5. $k=1;
  6. for($i=$sekunda; $i<$time; $i=$i+$sekunda)
  7. {      
  8.         exec ('ffmpeg -ss '.$i.'   -i '.$mp4.' -f image2 -vframes 1 kadr/'.$k.'.png');
  9.         $k++;
  10. }


Из-за цикла используется много ресурсов. В данном случае получается 10 кадров. Как можно этого добиться без цикла? Есть ли способ просто в exec прописать интервалы через которые надо делать скриншоты и сохранять в таком формате
 
 Top
dcc0
Отправлено: 11 Мая, 2015 - 15:26:41
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Может быть:
https://trac[dot]ffmpeg[dot]org/wiki/Cre[dot][dot][dot]of%20the%20video

Набирал в Гугл

ffmpeg screenshot every 5 seconds
(Добавление)
Раз в минуту:

ffmpeg -i myvideo.avi -vf fps=1/60 img%03d.jpg

А там дели fps, насколько надо.
Вроде, работает.


-----
Март 2021. Бросил программирование
 
 Top
Айратиус
Отправлено: 12 Мая, 2015 - 14:04:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


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




dcc0 пишет:
Может быть:
https://trac[dot]ffmpeg[dot]org/wiki/Cre[dot][dot][dot]of%20the%20video

Набирал в Гугл

ffmpeg screenshot every 5 seconds
(Добавление)
Раз в минуту:

ffmpeg -i myvideo.avi -vf fps=1/60 img%03d.jpg

А там дели fps, насколько надо.
Вроде, работает.


У меня почему то не заработало. На хабре увидел что-то вроде -r 0.1 поставить и будет кадр каждые 10 секунд, но работает коряво. Например видео 34 секунды и делает 5 кадров.

1 кадр -нулевой момент (как только началось видео сразу скрин)
2 кадр -1-ая секунда
3 кадр -10-ая секунда
4 кадр -20-ая секунда
5 кадр -30-ая секунда
 
 Top
dcc0
Отправлено: 12 Мая, 2015 - 14:20:02
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Что именно не работает - exec ? Права на директорию проверь ...

exec("ffmpeg -i /home/user/video/alenkij_cvetoch ek_cirkova.avi -vf fps=1/60 /var/www/2/out%d.png");


Имею видео примерно 59 минут, получаю 57 кадров

Не забываем, что на выполнение скрипта в php лимит

Ставлю fps=1/10
получаю 337 кадров
(Добавление)
И да, даже если ошибка с правами, нет доступа на чтение или запись, никаких предупреждений не будет, даже если включен error_reporting

(Отредактировано автором: 12 Мая, 2015 - 14:33:34)



-----
Март 2021. Бросил программирование
 
 Top
Мелкий Супермодератор
Отправлено: 12 Мая, 2015 - 14:33:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




dcc0 пишет:
Не забываем, что на выполнение скрипта в php лимит

Зависит от платформы. Под никсами вызов exec в учёте времени выполнения скрипта не участвует, под виндами - учитывается.


-----
PostgreSQL DBA
 
 Top
dcc0
Отправлено: 12 Мая, 2015 - 14:51:37
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Цитата:
Зависит от платформы. Под никсами вызов exec в учёте времени выполнения скрипта не участвует, под виндами - учитывается.

ok-ok!

Я даже приврал, видео 56 минут ровно, т.е. 57 кадров аккурат, начиная с 1-го.

Так что - все как часы.


-----
Март 2021. Бросил программирование
 
 Top
Айратиус
Отправлено: 12 Мая, 2015 - 15:24:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


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




dcc0 пишет:
Цитата:
Зависит от платформы. Под никсами вызов exec в учёте времени выполнения скрипта не участвует, под виндами - учитывается.

ok-ok!

Я даже приврал, видео 56 минут ровно, т.е. 57 кадров аккурат, начиная с 1-го.

Так что - все как часы.


Не знаю почему, у нас есть отличия.

exec вообще работает это точно. Но! Я беру удаленный файл (файл не на моем сервере) и видео mp4

с правами тоже все в порядке ибо один скрин то у меня получается. Да и кучу тестов проводил. не в правах дело. либо из-за того что формат видео другой, или же что файл на другом сервере

(Отредактировано автором: 12 Мая, 2015 - 15:26:45)

 
 Top
dcc0
Отправлено: 12 Мая, 2015 - 17:17:39
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Нахожу открытый ftp
PHP:
скопировать код в буфер обмена
  1. exec("ffmpeg -i 'ftp://ftp.startrekftp.ru/1/STARTREK/fan_trek/Star_Trek_-_Aurora_(ENG)/aurorapt1med288.wmv'  -vf fps=1/10 /var/www/2/out%d.png");


Длительность видео 11.52
Получаю 72 скриншота.

У тебя Windows или Linux? В консоли проверь сначала.
Может, в самом ffmpeg дело. Версия. Может, нет поддержки чего-то.

Допустим, не понимает какой-нибудь кодек (может, звуковой) и отключатся, а exec тебе ничего и не показывает.

(Отредактировано автором: 12 Мая, 2015 - 17:26:14)



-----
Март 2021. Бросил программирование
 
 Top
Айратиус
Отправлено: 14 Мая, 2015 - 11:10:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


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




dcc0 пишет:
Нахожу открытый ftp
PHP:
скопировать код в буфер обмена
  1. exec("ffmpeg -i 'ftp://ftp.startrekftp.ru/1/STARTREK/fan_trek/Star_Trek_-_Aurora_(ENG)/aurorapt1med288.wmv'  -vf fps=1/10 /var/www/2/out%d.png");


Длительность видео 11.52
Получаю 72 скриншота.

У тебя Windows или Linux? В консоли проверь сначала.
Может, в самом ffmpeg дело. Версия. Может, нет поддержки чего-то.

Допустим, не понимает какой-нибудь кодек (может, звуковой) и отключатся, а exec тебе ничего и не показывает.



centos 6 стоит, выполнил в консоли


[root@v55555 ~]# ffmpeg -i 'ftp://ftp.startrekftp.ru/1/STARTREK/fan_trek/Star_Trek_-_Aurora_(ENG)/aurorapt1med288.wmv' -vf fps=1/10 /var/www/test/data/www/admin/new video/ffmpeg out%d.png
ffmpeg version 0.10.15 Copyright (c) 2000-2014 the FFmpeg developers
built on Aug 30 2014 15:49:19 with gcc 4.4.7 20120313 (Red Hat 4.4.7-3)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-libass --enable-libcdio --enable-libcelt --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil 51. 35.100 / 51. 35.100
libavcodec 53. 61.100 / 53. 61.100
libavformat 53. 32.100 / 53. 32.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
ftp://ftp.startrekftp.ru/1/STARTREK/fan_trek/Star_Trek_-_Aurora_(ENG)/aurorapt1med288.wmv: No such file or directory
 
 Top
dcc0
Отправлено: 14 Мая, 2015 - 11:27:31
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Помимо всего прочего, обратите внимания - new video
Обычно требуется экранировать пробел в консоли.
Можно так:
new\ video

Но судя по сообщению, предположу, что ffmpeg ищет локальный файл.

Что говорит
ffmpeg -protocols ???

Лучше
ffmpeg -protocols | grep ftp
и можно еще grep http

Если нет поддержки ftp, то проверяйте на каком-нибудь файле по http...
она-то должна быть и про экранирование не забывайте

(Отредактировано автором: 14 Мая, 2015 - 11:44:51)



-----
Март 2021. Бросил программирование
 
 Top
Айратиус
Отправлено: 14 Мая, 2015 - 12:47:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


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




dcc0 пишет:
Помимо всего прочего, обратите внимания - new video
Обычно требуется экранировать пробел в консоли.
Можно так:
new\ video

Но судя по сообщению, предположу, что ffmpeg ищет локальный файл.

Что говорит
ffmpeg -protocols ???

Лучше
ffmpeg -protocols | grep ftp
и можно еще grep http

Если нет поддержки ftp, то проверяйте на каком-нибудь файле по http...
она-то должна быть и про экранирование не забывайте


Вот с http ресурса - mp4

CODE (htmlphp):
скопировать код в буфер обмена
  1. [NULL @ 0x105b640] Unable to find a suitable output format for '/var/www/data/admin/newvideo/ffmpeg'
  2. /var/www/airat/data/www/site.ru/admin/newvideo/ffmpeg: Invalid argument
На пути не обращайте внимания, правил в качестве конфиденциальности
 
 Top
dcc0
Отправлено: 14 Мая, 2015 - 14:23:34
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Судя по ответам поисковика, тема поднимается много раз, но внятного и однозначного решения я не нашел.

Т.е. причины одной и той же ошибки и решения несколько варьируются, поэтому даже ссылок давать не буду, сами можете набрать:

Unable to find a suitable output format thumbnails

Можно написать в крайнем случае сюда, для скорейшего ответа обычно просят показать весь вывод терминала:
http://ffmpeg-users[dot]933282[dot]n4[dot]nabble[dot]com/
(Добавление)
Вот интересно, что будет, если поменять выходной формат с png на jpg или gif?
(Добавление)
Да, таки, похоже, не понимает у вас png

Тогда опять в консоль с такой командой:

ffmpeg -codecs | grep png

(Отредактировано автором: 14 Мая, 2015 - 14:41:48)



-----
Март 2021. Бросил программирование
 
 Top
Айратиус
Отправлено: 14 Мая, 2015 - 14:42:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


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




dcc0 пишет:
Судя по ответам поисковика, тема поднимается много раз, но внятного и однозначного решения я не нашел.

Т.е. причины одной и той же ошибки и решения несколько варьируются, поэтому даже ссылок давать не буду, сами можете набрать:

Unable to find a suitable output format thumbnails

Можно написать в крайнем случае сюда, для скорейшего ответа обычно просят показать весь вывод терминала:
http://ffmpeg-users[dot]933282[dot]n4[dot]nabble[dot]com/
(Добавление)
Вот интересно, что будет, если поменять выходной формат с png на jpg или gif?
(Добавление)
Да, таки, похоже, не понимает у вас png



Уже набирал. Ищу, если найду отпишусь тут. А по поводу формата изображения ошибка та же самая (.jpg, .jpeg, .gif)
 
 Top
dcc0
Отправлено: 14 Мая, 2015 - 14:45:20
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Т.е. приходим к тому, что для Centos
нужен ffmpeg с поддержкой zlib-devel,
Вероятно, придется пересобрать ffmpeg.
(Добавление)
В любом случае, похоже, если пересобрать, то чудо произойдет
http://stackoverflow[dot]com/questio[dot][dot][dot]-watermark-issue
(Добавление)
Мой вывод при попытке сделать скрины из сети , файл .mp4
Команда все та же
ffmpeg -i 'http://download.wavetlan.com/SVV/Media/HTTP/H264/Talkinghead_Media/H264_test1_Talkinghead_mp4_480x360.mp4' -vf fps=1 4/out%d.jpeg

Вывод
Спойлер (Отобразить)



В конечно счете отрабатывает и с jpeg, с gif и даже с tiff

(Отредактировано автором: 14 Мая, 2015 - 14:53:21)



-----
Март 2021. Бросил программирование
 
 Top
dcc0
Отправлено: 14 Мая, 2015 - 22:43:38
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Как вариант еще - грешат на "плохой бинарник"...
http://forum[dot]videohelp[dot]com/threa[dot][dot][dot]o-image-sequence
Предлагают качнуть отсюда. Можно попробовать со статичными библиотеками.
http://ffmpeg.zeranoe.com/builds/

(Отредактировано автором: 14 Мая, 2015 - 23:00:47)



-----
Март 2021. Бросил программирование
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB