Модераторы: Daevaorn

Поиск:

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


Опытный
**


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

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



Кто-нибудь сталкивался с такой проблемой?
Что-то я порылся в интернете и ничего особенного не нашел, кроме достаточно большого количества шароварных программ с той же функциональностью.
Еще нашел пару статей ,как из отдельных кадров составлять AVI-файлы, но помоему должно быть какое-нибудь более эффективное решение.
Буду благодарен за советы и ссылки на ресурсы по этому поводу.(Желательно без испоьзования Windows Media Series 9)
PM MAIL   Вверх
Fixin
Дата 1.8.2005, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


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

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



Так что нужно? Как записывать, или чем?
Добавлено @ 17:38
Если как, то вроде надо каждые х секунд копировать себе изображение рабочего стола и его дочерних окон. Вроде так, но никогда не делал. Просто, помощь в поиске. smile
PM MAIL ICQ   Вверх
Leksey
Дата 2.8.2005, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо, но мне кажется это будет слишком тормознуто и есть другие способы решения.
А нужно просто записывать программным путем, а средства не имеют значения.
PM MAIL   Вверх
ManiaK
Дата 2.8.2005, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


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

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



Мне кажется это вопрос немного не в тему. Программным способом иначе как Fixin проделожил вряд ли сделать можно. В инете есть спец. проги - ищи.
Вот первая же ссылка:
http://www.yandex.ru/yandsearch?rpt=rad&te...%F1%F2%EE%EB%E0
PM MAIL WWW   Вверх
Leksey
Дата 2.8.2005, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спец. проги есть, но они как правило с закрытым исходным кодом.
А мне нужно написать свою.
И еще может есть какие-нибудь библиотеки,которые смогут помочь?
PM MAIL   Вверх
comcon1
Дата 2.8.2005, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



А как насчет демона, который снимает видеопамять, а потом сохраняет по таймеру в примитивном формате AVI, для начала можно набор BMP-х.

Это сообщение отредактировал(а) comcon1 - 2.8.2005, 12:47


--------------------
PM MAIL   Вверх
Leksey
Дата 2.8.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что значит снимает видеопамять?(Имелось в виду изображение рабочего стола?)
Этот вариант предлагал Fixin.
Я нашел способ как это сделать с помощью Windows Media Series.
Но тогда у юзера должен быть установлен какой-то кодек,а его дистрибутив больше 10Мб.
Еще я нашел какую-то триальную Dll,которая предназначена для этого, но она очень дорогая.



PM MAIL   Вверх
CoreDumped
Дата 2.8.2005, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Данный вопрос относится не к общим вопросам с++ а к вопросам применения средств операционной системы например API - для этого есть специальный раздел - C/C++: Системное программирование и WinAPI! Выбирайте внимательнее разделы, дабы быть услышанными и правильно понятыми!
PM MAIL   Вверх
comcon1
Дата 2.8.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



Fixin предлагал без конкретики. А я говорю -- залезь в видеопамять и сними все ее содержимое в бинарный поток. В видеопамяти и будет то, что у тебя на экране в данный момент. Далее разбери этот поток и переведи его в BMP-формат, а дальше -- как хочешь.
Я с видеопамятью не работал, но тут есть люди, которые знают, как это сделать.
Это будет не очень быстро. Ведь в памяти 1024x648x3 байт информации. DirectX умеет напрямую работать с видеопамятью, если я не ошибаюсь. Покопай там.


--------------------
PM MAIL   Вверх
Leksey
Дата 2.8.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Странно, а я думал что видеопамять это 64 Мб моей видеокарты.
DirectX конечно позволяет управлять видео памятью,но я сомневаюсь что смогу найти нужный участок, который использует Windows.

Сейчас пытаюсь реализовать то, что сказал Fixin.

Но пока что изображение вверх ногами и при расширении 1024x768 жуткие тормоза.
PM MAIL   Вверх
ManiaK
Дата 2.8.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


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

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



Цитата(Leksey @ 2.8.2005, 18:14)
Странно, а я думал что видеопамять это 64 Мб моей видеокарты.

Для хранения снимка экрана 1024х768х32 нужно: 1024х768х32 = 25165824 бита = 3145728 байта = 3 мегабайта. Остальное - для оптимизации. Эти три мега нужно с частотой не менее 24 Гц считывать из видеопамяти и писать на диск. Если медленней, будут тормоза.
PM MAIL WWW   Вверх
comcon1
Дата 2.8.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



Нет. Видеопамять -- это, конечно, твои 64 метра. Но я имею ввиду работу с участком памяти, который является проекцией экранной картины. ЛЮЮЮДИ!! КТО РАБОТАЛ СВИДЕО ПАМЯТЬЮ НАПИШИТЕ!!


--------------------
PM MAIL   Вверх
Leksey
Дата 2.8.2005, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



CoreDumped извини, но сначала вопрос задумывался,как общий, потому что мне все равно какими средствами пользоваться.
ManiaK извини, я что-то туплю, считывать с частотой 24 Гц это типа 24 кадра в секунду?
Как ты думаешь это реально и на какой машине если да?

PM MAIL   Вверх
comcon1
Дата 2.8.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



24 кадра в секунду это порядка 70 метров в секунду. Скорость, посильная лишь оперативке.
Поэтума некоторое время имеет смысл потратить на наложение. Считывать только те байты, которые отличаются, остальные оставлять нулями. Получится следующая хренотень:
Это слои - массивы ячеек видеопамяти.
-----------------------------------
--- --- ---- --
---
---
--
Эту фичу можно хранить в памяти некоторое разумное время. Если организовать такой массив, как очередь, можно потихонечку писать эту лажу на диск с другого конца очереди, освобождая память.


--------------------
PM MAIL   Вверх
Leksey
Дата 2.8.2005, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А лучше вообще сначала в видеопамять писать, там еще быстрее будет, Вот только как получить указатель на видеопамять рабочего стола?
comcon1 можно поподробнее.
Как я понял ты предлагаешь побайтовое сравнение двух копий экрана?И список различий -фактически еще одна.
В чем преимущество?
PM MAIL   Вверх
comcon1
Дата 3.8.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



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

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

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

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

Это сообщение отредактировал(а) comcon1 - 3.8.2005, 14:28


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


Homo Sapience
***


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

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



Я бы посоветовал кодирование в gif/jpg налету. Потому как метод сравнения всё равно не особо хорош - закрыл развёрнутое на весь экран окно, получил обновление практически всего экрана.

Цитата(Leksey @ 2.8.2005, 21:30)
А лучше вообще сначала в видеопамять писать, там еще быстрее будет

С видео памяти нужно читать.
PM MAIL WWW   Вверх
comcon1
Дата 3.8.2005, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



Почему бы не сделать и сравнение тоже. Ведь он не успеет закодировать 70 метров за секунду. Он разве что из памяти в память перегонит.

Еще можно организовать очередь вот этих структур modification.

В конец ей запендеривать новые данные, а из начала --
перекодировать и писать на диск.
Должны работать два таймера по одному будет сниматься экран, по второму --
будет происходить jpeg\gif конвертирование и запись на диск. Таким образом очередь будет с одного конца расти, с другого -- отъедаться.

Преимущество такого подхода в том, что если поток информации из видеопамяти сузится, запись на диск предыдущих картинок будет идти в том же темпе. В общем, буффер.
Я использовал этот подход с двумя таймерами для создания директории-зеркала. Одна директория полностью повторяет все изменения другой.


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


Опытный
**


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

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



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


Homo Sapience
***


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

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



Цитата(Leksey @ 3.8.2005, 15:47)
В видеопамять и писать можно при необходимости.

Если тебе ОСь это сделать даст. Хотя, в играх текстуры грузят как-то, возможно...
PM MAIL WWW   Вверх
Leksey
Дата 3.8.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Насколько я знаю игры на DirectX работают с видеопамятью напрямую, по крайней мере размещать в видеопамяти инфу и извлекать DirectX позволяет.
PM MAIL   Вверх
comcon1
Дата 3.8.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



Цитата

ManiaK В видеопамять и писать можно при необходимости.
Я даже не думал, что все окажется так сложно.

А что ты хотел?? Задача для системного программиста. Должен знать Ось и ее системные вызовы. Иначе это будет не видео, а развеселый набор фотографий и зависон ( с приветом биллу).


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


Опытный
**


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

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



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


Шустрый
*


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

Репутация: -5
Всего: нет



Попробуй

HyperCam 1.4

Валидол ищи сам.
--------------------
Ищу 2 файлаowl.tchwindows.tch 
PM MAIL   Вверх
ManiaK
Дата 4.8.2005, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


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

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



Цитата(Leksey @ 3.8.2005, 17:13)
Насколько я знаю игры на DirectX работают с видеопамятью напрямую, по крайней мере размещать в видеопамяти инфу и извлекать DirectX позволяет.

Он-то напрямую, но ты можешь работать только через него smile
PM MAIL WWW   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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