Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обработка видео (http://www.flasher.ru/forum/showthread.php?t=214562)

gilbertoo 22.09.2017 12:25

Обработка видео
 
Добрый день! Подскажите, возможна ли в actionscript обработка видео. Например распознавание области, реакция на движение. Больше всего меня интересует, возможно ли как-то распознать "черный экран". Спасибо.

gilbertoo 07.10.2017 07:40

Попробую немного уточнить свой вопрос. Могу ли я как либо узнать цвет пикселя видео в определенной точке, в определенный момент?

undefined 07.10.2017 11:24

Да,можно снять скриншот с видео и работать с ним как с битмапдатой. Если требуется проверить что весь экран черный можно воспользоваться методом
getColorBoundsRect
Вот только флэш однопоточен и такие проверки на каждом кадре скорее всего будут мешать плавному проигрыванию видео

Добавлено через 23 минуты
upd:если взять реальное видео,то там не будет ни одного кадра, где строго все пиксели имют цвет 0х000000,даже если кадр кажется полностью черным.Поэтому можно сжимать кадр,скажем, до размера 32х32 и считать среднюю интенсивность пикселей сжатого кадра.Такую проверку можно и для каждого кадра делать имхо.

illuzor 07.10.2017 15:24

Цитата:

Вот только флэш однопоточен
Нет. Уже давно есть многопоточность.

undefined 07.10.2017 15:56

А толку от нее? Флэш даже если ничего больше не будет попиксельную обработку видео на 30 фпс не потянет.

illuzor 07.10.2017 19:12

undefined, а кто потянет?

undefined 07.10.2017 19:31

Цитата:

Сообщение от illuzor (Сообщение 1202273)
undefined, а кто потянет?

gpu ?

gilbertoo 08.10.2017 23:32

Цитата:

Да,можно снять скриншот с видео и работать с ним как с битмапдатой
Не соображу, а как можно снять скриншот.
Цитата:

Поэтому можно сжимать кадр,скажем, до размера 32х32 и считать среднюю интенсивность пикселей сжатого кадра.Такую проверку можно и для каждого кадра делать имхо.
И тут я у вас тоже спрошу чуть точнее подсказать, какими классами, методами я могу это провернуть, все той же битмапой? Мне, в принципе, совсем не обязательно обрабатывать каждый кадр, достаточно делать проверку раз в секунду или даже реже.

undefined 08.10.2017 23:49

Отрисовать экранный объект в битмапдату
Используй параметр matrix чтоб результат был требуемых размеров
Узнать цвет точки x,y
В принципе этого достаточно.

gilbertoo 11.10.2017 16:55

Цитата:

Поэтому можно сжимать кадр,скажем, до размера 32х32 и считать среднюю интенсивность пикселей сжатого кадра
Я, к сожалению, не могу найти стандартного метода расчета средней интенсивности в заданной области. getColorBoundsRect все-таки делает немного другое, он рисует прямоугольник в том месте где есть указанный цвет.
Может если только взять getPixels и побитово сложить все значения массива?

undefined 11.10.2017 17:33

да,сложить(не побитово,а просто сложить) все пиксели и поделить на 1024
Цитата:

getColorBoundsRect все-таки делает немного другое, он рисует прямоугольник в том месте где есть указанный цвет.
:eek:Рекомендую все же почитать что он делает:
Цитата:

Определяет прямоугольный участок, полностью охватывающий все пиксели заданного цвета в пределах растрового изображения (если параметру findColor присвоено значение true), либо полностью охватывает все пиксели, не содержащие заданный цвет (если параметру findColor присвоено значение false).
Ни слова про рисование.


Часовой пояс GMT +4, время: 18:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.