Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с видеопамятью 
:(
    Опции темы
Leksey
Дата 3.8.2005, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



В теме "Запись видео с рабочего стола", которую я создал в разделе Общие вопросы посоветовали обратиться сюда по поводу работы с видеопамятью.
comcon1 предложил такую идею для записи видео с рабочего стола?
Цитата

Я никогда не работал с видеопамятью. Создай такую тему где-нить в WinApi. Или обратись к Chaos - , я помню, он умеет. А насчет сравнения я бы посоветовал так. Вот вся видеопамять:
[********************************************************* ]
^________________________________________________________^
ptr1______________________________________________________ptr2
Смотришь, где начинаются изменения (_beg, и где заканчиваются _end). Отводишь память под размер (_end - _beg) и спасаешь в оперативе.
Таким образом ты хранишь список таких структур:

struct modification {
char *_end, *_beg;
char *heap;
modification *nxt;
};

Прогу стоит писать на чистом С с использованием системных вызовов. Будет быстрее.
char * - указатель на байтовую переменную, чтобы при вычитании получать реальные размеры блоков.

Специалисты, поправьте меня.


Как вы думаете можно это реализовать и какие средства для работы с видеопамятью предоставляет WinAPI?
PM MAIL   Вверх
ManiaK
Дата 3.8.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Цитата
Функция GetDesktopWindow возвращает дескриптор рабочего стола. Окно рабочего стола занимает весь экран. Это та область, на которой изображаются все иконки и остальные окна.


С помощью этой функции можно получить дескриптор окна. Через дескриптор - контекст устройства (HDC), а через него все биты рабочего стола.
PM MAIL WWW   Вверх
Leksey
Дата 3.8.2005, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



А что-нибудь вроде размещения в видеопамяти куска информации?
PM MAIL   Вверх
ManiaK
Дата 3.8.2005, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Цитата(Leksey @ 3.8.2005, 15:49)
А что-нибудь вроде размещения в видеопамяти куска информации?

В Windows напрямую с видеопамятью работать нельзя.
PM MAIL WWW   Вверх
JoyEx
Дата 3.8.2005, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Цитата(ManiaK @ 3.8.2005, 14:51)
Цитата(Leksey @ 3.8.2005, 15:49)
А что-нибудь вроде размещения в видеопамяти куска информации?

В Windows напрямую с видеопамятью работать нельзя.

А DirectX тогда для чего?

DirectDraw может отобразить нужный "кусок" видеопамяти в твой процесс.


Leksey
С помощью HDC ничего не выйдет с захватом видео, если её выводят аппаратно, через OVERLAY.



--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Leksey
Дата 3.8.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



JoyEx А как выйдет?
К тому же мне важно изображение моего окна на рабочем столе, и я не использую OVERLAY.
И как мне найти нужный кусок видеопамяти в котором изображение рабочего стола?
PM MAIL   Вверх
ManiaK
Дата 3.8.2005, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Цитата(JoyEx @ 3.8.2005, 17:04)
С помощью HDC ничего не выйдет с захватом видео, если её выводят аппаратно, через OVERLAY.

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

А нужно ли это?.. Про видео ничего не говорилось.
PM MAIL WWW   Вверх
Leksey
Дата 3.8.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



Что самое обидное софта который делает аналогичные вещи просто навал ом в Интернете. smile
PM MAIL   Вверх
Дрон
Дата 3.8.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 93



Цитата(ManiaK @ 3.8.2005, 17:21)
Ты будешь смеяться, я пересмотрел все темы, которые были на этом форуме по данной теме: все приходили к выводу, что даже с помощью DD видео не ухватить

Это вроде как раз потому, что видео в основном играется через оверлеи.
А оверлеи эта такая хитрая штука, которая обрабатывается на аппаратном уровне и само изображение может находится в любой области видеопамяти.


--------------------
Да. Именно так.
PM   Вверх
JoyEx
Дата 3.8.2005, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Leksey

Если нету overlay, то тогда нет ничего проще smile

HDC - это описатель для "куска" видеопамяти, а Windows обычно работает с одной видеостраницей (все, что видно на экране на ней и находится) и поэтому, получив контект HDC своего Рабочего стола (тебе же ManiaK говорил уже) можешь спокойно сохранять картинку. В MSDN April 2003 есть пример "Storing an Image" (Windows GDI). Маленькие "куски" с Рабочего стола (- это тоже окно) в режиме приближенному к реальному времени можно таким образом сграбить, правда, это еще не видео, но вышесказанное можно спокойно сделать на WinAPI.

Цитата(ManiaK)

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

Вот
Пример 1
Пример 2
Пример 3
Пример 4


там еще есть много чего ...






--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Leksey
Дата 3.8.2005, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



[quote]
правда, это еще не видео
[quote]
Вот, а нужно именно видео и чтобы во время записи не было тормозов на среднестатистическом компе.
С фоткой проблем нет.
Попробовал напрямую копировать рабочий целиком без всякой оптимизации в Avi поток .При расширении 1024x768 тормоза жуткие.

Добавлено @ 20:42
[quote]
правда, это еще не видео
[quote]
Вот, а нужно именно видео и чтобы во время записи не было тормозов на среднестатистическом компе.
С фоткой проблем нет.
Попробовал напрямую копировать рабочий целиком без всякой оптимизации в Avi поток .При расширении 1024x768 тормоза жуткие.

PM MAIL   Вверх
JoyEx
Дата 3.8.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Тогда просмотри внимательнее мой предыдущий ответ (Часть 2), где ссылки ПримерX



--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Fixin
Дата 3.8.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Так ты что хочешь?
1) Записать (скопировать) видео, которое воспроизводится?
Или
2) Записать видео про то, как окошки открываются, мышка двигается и тп.
PM MAIL ICQ   Вверх
Leksey
Дата 3.8.2005, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



Цитата

2) Записать видео про то, как окошки открываются, мышка двигается и тп.

Вот вот оно самое!!!
PM MAIL   Вверх
Fixin
Дата 3.8.2005, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Ловишь указатель на Раб Стол (GetDesctopWindow), организуешь класс ДД на него, получаешь указатель на память и копируешь каждые х*100 мсек видеодамп. Скорость 24 Гц - в не надо. Достаточно 6-12 - сам смотри. И делай преобразование в 8 битную картинку. Для начала просто набор бмп-шек гони, потом можно и видео делать. Просто надо будет узнать, как кодеки юзать.

Это сообщение отредактировал(а) Fixin - 3.8.2005, 22:15
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.