VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Интервал (шаг) сохранения кадров из видеоролика FFMPEG-PHP
3
Собственно сам модуль написан и все работает уже давно, но хотелось бы улучшить алгоритм выдирания кадров из ролика
сейчас шаг расчитывается исходя из нескольких параметров
1. заданные пользователем в форме значения скрин формы
- кол-во сохраняемых картинок (INT)
- с какого кадра начать (INT)
2. полученные из ролика данные
- общее кол-во кадров
- продолжительность ролика
- FrameRate - получаемый одной из функций класса ffmpeg_movie() (или количество кадров разделенное на продолжительность ролика)
затем инициализация класса + задание необходимых переменных полученных из формы
сначала определяем, с какого кадра нужно начать сохранение (получено из формы)
думаю немного переписать шаблон формы, что бы пользователь не счтал кадры, а указывал с какой секунды начать, а скрипт уже посчитает с какого кадра начать сохранение
так вот, не знаю почему, но мне не очень нравится этот алгоритм =)
может кто то предложит другой алгоритм расчета шага?
в новой версии файловика, планирую добавить этот модуль в дистрибутив
kerk, а возможно ли сделать захват текущего кадра? А далее количество кадров от выбранной "точки отсчёта". Мне кажется, секунды в данном случае в принципе не имеют смысла, мы выбираем нужный кадр вручную.
Т.е. по умолчанию брать не фиксированный кадр, а 0.05 от всех кадров, а остальные 0.95 делить на части как и задумано.
Quote:
Originally Posted by Svetlana
Мне кажется, секунды в данном случае в принципе не имеют смысла, мы выбираем нужный кадр вручную.
А там разве есть секунды? Насколько я понял, там все в кадрах. Но вот перевести их в секунды не помешало бы, это будет куда более понятно для рядового пользователя.
Словом, хорошо бы начало первого кадра в секундах и первоначальное значение пусть зависит от длины самого видео. А если нужно захватить первым кадром название видео, смотрим время, указываем в настройках. Очень желательно, что бы это редактировалось после сохранения видео, с возможностью заново пересоздать изображения с новыми настройками. Имхо.
Sellrion
Kernel panic
Join Date: Aug 2007
Location: Екатеринбург
Posts: 2,536
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 1920
Репутация в разделе: 386
0
Quote:
Originally Posted by kerk
не знаю почему, но мне не очень нравится этот алгоритм =)
Почему же он тебе не нравится?)) Кстати забавно, что кому-то вообще в голову пришла идея заставить пользователя считать кадры. Это гениально.))
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,715
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 7723
0
Quote:
Originally Posted by Smalesh
А там разве есть секунды?
да, есть, $this->duration как раз кол-во секунд, я просто не указал это в первом посте
переделал я форму в шаблоне, теперь узер может выбрать не с какого кол-ва кадров начать выборку, а именно секунды
если поле "начать" пустое или ноль, начинается с первой секунды
Quote:
Originally Posted by Smalesh
Очень желательно, что бы это редактировалось после сохранения видео
картинки можно выдрать в любое время* и с разными значениями полей формы
Quote:
Originally Posted by Svetlana
возможно ли сделать захват текущего кадра?
посмотреть текущее время и задать его в форме, правда минуты придется перевести в секунды, да, это несколько неудобно, но в противном случае, если распарсить весь ролик и делать раскадровку без сохранения, это дикая нагрузка
там и так функция выдирающая ресурс из ролика, тяжелая ппц
почитал в инете об этом расширении, народ ругается на тормоза в функции $frame->toGDImage(), советуют переходить на бинарники и другое расширение PHP-FFMPEG (не путать с этим FFMPEG-PHP )
вобщем пока сделал так, но тормоза все равно остались, функция не пропускает кадры до следующего нужного, а читает стрим дальше
PHP Code:
// $start_at - начинать с секунды // $frame_rate - fps $start_frame = round($start_at * $frame_rate); $frames_left = $framecount - $start_frame; $calc = array('start' => $start_frame, 'step' => intval($frames_left / $save_frames)); // $calc['start'] - начать сохранение с фрейма // $calc['step'] - интервал // затем в другой функции, в цикле собираем массив $next = $calc['start']; $count = 0; while(($key_frame = $this->movie->getFrame($next)) != false AND ++$count <= $this->save_frames) { $data['resource']["{$this->movie->getFrameNumber()}"] = $key_frame->toGDImage(); $next += $calc['step']; } return $data;
т.е. делим оставшиеся кадры на кол-во сохраняемых картинок, получаем интервал
прикручивал и слайдер от YUI с двумя ползунками, что бы можно было выбирать "откуда начать" и "где закончить", но потом снес нафик, если ролик длинный, то шкала-ползунок вылезает за края экрана
а делать с overflow: hidden тоже криво получается
*в правах группы кол-во разрешенных картинок к файлу должно быть 0 (неограничено)
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,715
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 7723
0
Sellrion,
сарказм хорош в меру
а по теме?
@Svetlana
Эксперт
Join Date: Mar 2013
Location: Украина, Херсон
Награды в конкурсах:
Posts: 1,185
Версия vB: 4.2.х
Пол:
Reputation:
Expert 1752
Репутация в разделе: 610
1
Quote:
Originally Posted by Smalesh
А там разве есть секунды? Насколько я понял, там все в кадрах. Но вот перевести их в секунды не помешало бы, это будет куда более понятно для рядового пользователя.
Я не код имею в виду, а логику пользователя. Ловить нужный кадр, ориентируясь на секунды - всё равно что пытаться определить положение рисового зёрнышка, пользуясь метровой линейкой.
Можно, конечно, задать с её помощью нужную область поиска, но дальше - искать другие измерительные устройства.
Svetlana добавил 04.01.2015 в 16:11
Quote:
Originally Posted by kerk
переделал я форму в шаблоне, теперь узер может выбрать не с какого кол-ва кадров начать выборку, а именно секунды
Да, так и представлялось.
Svetlana добавил 04.01.2015 в 16:31
Я использую (довольно примитивно) AVS Video Editor, пользователь там оперирует временем, но время указано до тысячной секунды. При этом всё равно при редактировании есть опция "на 1 кадр вперёд/назад" (кнопки со стрелками). Если бы использовала только время, растерялась бы.
Last edited by Svetlana : 01-04-2015 at 05:32 PM.
Reason: Добавлено сообщение
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,715
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 7723
1
Quote:
Originally Posted by Svetlana
но время указано до тысячной секунды.
можно и в форме сделать тысячные, но это будет только путать пользователя =)
за 1 секунду в среднем проскакивает 25-30 кадров (fps - frames per second)
так вот как лучше все таки?
посекундно делать выбор в форме или покадрово?
Sellrion
Kernel panic
Join Date: Aug 2007
Location: Екатеринбург
Posts: 2,536
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 1920
Репутация в разделе: 386
3
kerk, да не сарказм это был.) Кроме того, что пользователю предлагается считать кадры, я не понимаю чем тебя не устраивает первый алгоритм. Вообще, я бы подумал над другим вопросом: это все зачем?) Цель в том, чтобы где-то в интерфейсе показывать несколько кадров из загруженного ролика? Тогда зачем вообще пользователю эти настройки времени, кадров и д.р.? Пользователь, на мой взгляд, должен иметь возможность показывать или не показывать кадры у себя где-то там в видео галерее. Все. Если он включил показ кадров, то какую прикладную задачу решает возможность указать стартовый фрейм и количество кадров? С таким же успехом это может произойти автоматически. Если говорить о прикладных задачах, то пользователю может быть предложено выбрать обложку для видео из нескольких выбранных автоматически кадров или пользователю может быть предложено вообще самостоятельно указать необходимые кадры для отображения, тогда, как показано в посте @Svetlana, нужно показывать плеер с пошаговой прокруткой и т.д.
Исходя из вышесказанного, такие настройки целесообразны для админки глобально. С какого кадра выбирать, сколько кадров показывать у каждого и через какой шаг.
Оставь и то и то. А если номер кадра не будет совпадать со временем - хрясь файл с винта с уведомлением "ЫЫЫ... Не угадал!"
Quote:
Originally Posted by Svetlana
пользователь там оперирует временем, но время указано до тысячной секунды.
А номера кадра там нет?
В принципе, можно оставить время, но с возможностью работать с тысячными. В интерфейсе нули после запятой не светить, кому нужно - допишет (скопирует с программы) самостоятельно.
Smalesh добавил 04.01.2015 в 17:01
Quote:
Originally Posted by Sellrion
может быть предложено вообще самостоятельно указать необходимые кадры для отображения
Под каждым изображением поле с указанием времени, с возможностью задать свое значение и кнопка сохранить? А первоначально кадры разбивать автоматом по настройкам админки?
Last edited by Smalesh : 01-04-2015 at 06:02 PM.
Reason: Добавлено сообщение