|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
|
.NET 4.x Скоростное создание скриншотов - до 30 в секунду28.03.2016, 19:48. Показов 2522. Ответов 20
Метки нет (Все метки)
Всем привет! Я настолько отважный парень, что решился написать программу для захвата видео с экрана! В общем у меня отчасти получилось: Сначала я делал скриншоты рабочего стола через VB, и записывал их в отдельные PNG файлы, затем через BAT файл, используя библиотеку ffmpeg склеивал эти PNG'шки в MP4 файл, в целом, всё нормально, качество идеальное. Но проблема состоит в том, что VB не способен делать больше 5 скринов в секунду
! Подскажите пожалуйста, как создавать как минимум 30 скринов в секунду(Язык программирования не важен, главное, что-бы быстро)
0
|
|
| 28.03.2016, 19:48 | |
|
Ответы с готовыми решениями:
20
Создание скриншотов Создание и сохранение скриншотов Создание серии скриншотов |
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
|
| 29.03.2016, 01:06 | |
|
По вашему вопросу, могу посоветовать только то, что первое в голову пришло (может быть и глупость):
Собственно попробовать создать еще потоки, которые так-же будут делать скриншоты, передавать им Stopwatch (миллисекунды), и сохранять их по этому имени. Добавлено через 8 минут В 2 потока, за 4 секунды, делает более > 200 скриншотов. Добавлено через 5 минут P.S. Память не жалеет...
0
|
|
|
47 / 47 / 7
Регистрация: 26.12.2014
Сообщений: 189
|
|
| 29.03.2016, 08:43 | |
|
Когда-то делал подобное, может даже исходники найду. Попробуй получить дескриптор экрана, а затем копируй через BitBlt winapi. Со скоростью все должно быть в порядке, если в память сохранять.
0
|
|
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
||||||
| 29.03.2016, 09:34 | ||||||
Сообщение было отмечено _Ender_ как решение
Решение
Вот, проверил > 50 в секунду.
1
|
||||||
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
||
| 29.03.2016, 09:50 [ТС] | ||
|
Спасибо, сейчас проверю
Добавлено через 9 минут Добавлено через 5 минут Извини, а можно ещё сделать кнопку остановки, и файлы называть по номеру кадра, а то у меня какая-то ошибка.
0
|
||
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
|||||||||||
| 29.03.2016, 10:15 | |||||||||||
|
Да можно, конечно:
Добавлено через 5 минут Кнопку остановки, лучше так (иначе могу возникнуть ошибки с примером выше, не проверял просто):
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
|
| 29.03.2016, 10:25 [ТС] | |
|
А в PNG можно? Чёт я забыл как Format.PNG писать
Добавлено через 3 минуты А в PNG можно? Чёт я забыл как Format.PNG писать Добавлено через 2 минуты Всё, вспомнил: ImageFormat.Png Добавлено через 1 минуту Через Imports System.Drawing.Imaging
0
|
|
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
||
| 29.03.2016, 10:26 | ||
|
А вы попробуйте переименовать в JPG и загрузить на форум, на что вам напишут:
219.jpg: Это PNG изображение имеет неверное расширение. Просто сохраняйте с расширением png, не знаю, почему я там написал bmp .Добавлено через 59 секунд
0
|
||
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
|
| 29.03.2016, 10:32 [ТС] | |
|
Отлично, а то в BMP почему-то не компилировался видео файл! Последняя просьба: нужно измерить средний fps!
0
|
|
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
|
| 29.03.2016, 10:34 | |
|
Средний FPS, после остановки?
0
|
|
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
|
| 29.03.2016, 10:43 [ТС] | |
|
Да!
0
|
|
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
||||||
| 29.03.2016, 10:43 | ||||||
|
Если после остановки, то:
Кликните здесь для просмотра всего текста
1
|
||||||
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
|
| 29.03.2016, 10:54 [ТС] | |
|
Отлично, доделаю, скину прогу. Спасибо большое! У меня ругается на E:\test(C:\ffmpeg), а на C:\ffmpeg\ робит, это наверное из-за того, что у меня VB2008
Добавлено через 2 минуты Можно ещё 3-ю кнопку для удаления остаточных файлов (Наших скринов)
0
|
|
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
|
| 29.03.2016, 10:55 | |
|
Это что? E:\test(C:\ffmpeg)
?E - у меня лок. диск. Ты используй свой путь (я тестировал у себя) и не забудь там папку создать.
0
|
|
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
|
| 29.03.2016, 10:56 [ТС] | |
|
Я же в скобках свой написал
0
|
|
|
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
|
||||||
| 29.03.2016, 11:02 | ||||||
|
Jason, нельзя останавливать потоки через Boolean.
Правильнее будет через Suspend и Resume, в таком случае потоки остановятся на безопасных поинтерах и при этом снимется нагрузка с системы. Правда стоит отметить, что Suspend и Resume уже устаревшее. Сейчас насколько я знаю рекомендуется использовать мьютексы.
0
|
||||||
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
||||||
| 29.03.2016, 11:02 | ||||||
|
ВНИМАНИЕ! Код удалит все файлы из папки! Поэтому "кормить" это, только папкой со скриншотами, либо сделать проверку на расширение.
0
|
||||||
|
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
|
|
| 29.03.2016, 11:12 | |
|
Дядя Корней, первый раз слышу о том, что так нельзя останавливать поток (не правильное решение).
Вот скриншот студии, нагрузка ЦП (красное во время работы, синее после работы). Может, конечно я и не прав, с удовольствием почитаю мнения других.
0
|
|
|
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
|
|||||||
| 29.03.2016, 12:18 | |||||||
|
Jason, книга А.Дубовцев | Microsoft .NET. Наиболее полное руководство
Стр. 393. С иллюстрациями показан наглядный пример остановки с boolean и Suspend. Вариант с boolean не высвобождает ресурсы и нагрузка остается. Добавлено через 1 минуту Jason, и да, у вас на скриншоте включен debug режим, он работает совсем не так, как релиз версия. В дебаг совсем иначе идет распределение памяти. Добавлено через 28 минут Пример
0
|
|||||||
|
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 9
|
|
| 29.03.2016, 13:13 [ТС] | |
|
У меня опять возникла проблема: я запуская ffmpeg следующей командой:ffmpeg -r 20 -f image2 -i %d.png test.mp4 .%d значит все файлы png то-есть: 1.png, 2.png и т.д. Я запускаю батник cmd'шкой, и эта cmd'шка не видит % и-за чего и не удаётся кодировать видеофайл(
0
|
|
| 29.03.2016, 13:13 | |
|
Помогаю со студенческими работами здесь
20
Создание скриншотов и запись их в поток
Слишком медленное создание скриншотов Очень быстрое создание картинок (скриншотов) Скоростное мышление Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|