реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Определить значения RGB пикселя в окошке воспроизведения, медиаплеера. Расположения пикселей задаются маской
skyled
сообщение Oct 7 2010, 12:52
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Borland C++. Нужно во время воспроизведения видео определять и записывать в файл значения пикселей. Расположение пикселей определяется картинкой с внешним видом конструкции. Для простоты пока можно просто массивом координат этих пикселей. А вообще задумка в том, чтоб перемещая картинку с расположением пикселей получать разное изображение на изделии (каждый пиксель будет там отображаться RGB светодиодом. Подскажите как мне это сделать? Спасибо.
Go to the top of the page
 
+Quote Post
neiver
сообщение Oct 7 2010, 15:54
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Стандартный метод сдесь с помощью WinApi создать контекст устройства для монитора:
CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL);
и использовать функцию GetPixel - она вернет цвет пикселя с указанными координатами.

Однако тут естьзасада с тем, что потоковое видео на современных(и не очень) видеокартах воспроизводится через так называемый оверлейный буффер. При этом картинка из видеозаписи на попадает во фреймбуфер, а отображается сразу на монитор(упрощенно говоря). И вместо цвета пикселя их вашего видео GetPixel вернет цвет фона окна, где оно(видео) воспроизводится. Чтобы этого избежать нужно чтобы видео воспроизводилось через программый кодек без аппаратного ускорения. Как это сделать зависит от конкретной программы (или видеокарты). Как-то так.
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 8 2010, 06:10
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Откуда у вас берется видео? Скорее всего вам надо смотреть в сторону DirectShow (99% программ для воспроизведения чего угодно используют именно его). В DS вам нужно будет вклинится в граф воспроизведения вашего видео (там, где уже есть раскодированный поток) и извлекать из него нужные биты. Возможно придется написать DS Filter (для вклинивания в граф).

В любом случае это не задача для Borland C++. Хотя управляющую морду для этого всего на нем написать можно smile.gif
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Oct 12 2010, 22:01
Сообщение #4


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Можно сделать по первому методу испоользуя Media Player Classic из пакета K-Lite codec pack. В настройках плеера(output) есть много различных вариантов вывода картинки в окно.
Чтобы проверить годится ли выбранный вариант: запускаем видео, жмем Print Screen, в пэинт вставляем. Если видео видно - значит это оно, а если чёрный квадрат, то ничего не выйдет и надо менять параметры.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение Oct 12 2010, 23:25
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Цитата(sigmaN @ Oct 13 2010, 02:01) *
Можно сделать по первому методу испоользуя Media Player Classic из пакета K-Lite codec pack. В настройках плеера(output) есть много различных вариантов вывода картинки в окно.
Чтобы проверить годится ли выбранный вариант: запускаем видео, жмем Print Screen, в пэинт вставляем. Если видео видно - значит это оно, а если чёрный квадрат, то ничего не выйдет и надо менять параметры.

Коль пошла такая пьянка smile.gif
Объясните мне - штука такую видел в winxp (а в семерке сделать уже не получается sad.gif , хотя мож дело в видеокарте...).
1. Включаю Media Player Classic. Ставлю на паузу. Делаю принт-скрин. Сохраняю картинку в bmp-формате. Открываю эту картинку просмотрщиком картинок (пробовал тот же паинт, office picture manager). Вижу картинку.
2. Закрываю Media Player - в картинке черный квадрат. sad.gif
3. Снова открываю Media Player, запускаю любое видео - в окне просмотрщика картинок вижу тоже самое видео...
huh.gif
Go to the top of the page
 
+Quote Post
neiver
сообщение Oct 13 2010, 08:50
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Видео оверлей
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Oct 13 2010, 14:23
Сообщение #7


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Student Pupkin, дело точно не в видеокарте, я сам проводил такой эксперимент. В пэинте получается как-бы дырка, через которую видно окно плеера. Подвигав пэинт, можно в этом убедиться. А вот почему так получается - я не знаю. Во время скриншота в общем там не чёрный цвет получается, а окно в овернлей что-ли.... ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
neiver
сообщение Oct 13 2010, 17:56
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Я уже писал, почему так происходит.

Википедия
Цитата
As a consequence of hardware overlay use, a screenshot program (for example, the one automatically built into Windows that activates when a user presses the PrtSc key) often does not capture the content appearing in the hardware overlay window. Rather, a blank region containing only the special mask color is captured. This is because the screen capture routine doesn't consider the special video memory regions dedicated to overlays - it simply captures the shared main screen as rendered by the software's graphical subsystem. Some Digital Rights Management schemes use hardware overlay to display protected content on the screen, taking advantage of this quirk to prevent the copying of protected documents by way of screen capture[citation needed]. Disabling the support for overlays causes the normal overlay-using software to fallback to the shared memory, thus enabling screenshot capture.


Сообщение отредактировал neiver - Oct 13 2010, 17:57
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016