Написать powersheell (или vbs) скрипт для записи монитора через ffmpeg и помещения его в шедулер

Задание закрыто
Стоимость:3 000 рублей
Срок выполнения:2 дня
Варианты оплаты:Планируется использовать Безопасную сделку
Дата публикации:2024-07-17 22:08
Обновлено:2024-07-17 22:22
Был(а) на сайте:2024-07-21 11:27

Написать powersheell (или vbs) скрипт для записи монитора через ffmpeg и помещения его в шедулер

 
Задача

Необходим скрипт с помощью которого будет в стэлс-режиме записываться экран Windows 10. Складываться файлами с именованием даты до секунды. Перезапускаться шедулером каждые 5 минут. Для понимания минимальный пример скрипта:

"Get-Date -Format 'yyyy-MM-dd-HH-mm-ss' -OutVariable DATE
ffmpeg.exe -f gdigrab -framerate 2 -i desktop | С:\Users\n\AppData\Local\screen_capture\files\$DATE.mkv

У этого минимального скрипта есть недостатки:
1. При запуске/перезапуске скрипта шедулером "мигает" кратковременно окно консоли powershell.
2. Мерцает курсор мыши при записи. Это недостаток реализации самого ffmpeg, но как понял через hex-эдитор можно заменить пару значений файла avdevice.dll. Если есть консольные опенсорс-утилиты и умеющие в стелс и не имеющие данного недостатка с мерцанием курсора мыши, то приемлемо.

Оставлять заявки могут только авторизованные пользователи.
virgil rs

Фрилансерский уклад един!

Специализация: Программирование и IT
  • 5 000 руб2 дня
Добрый день, готов сделать
Опыт написания скриптов под ffmpeg - 2 года
Николай Шикин

Всегда иду до конца! +7 (978) 124-84-90

Специализация: Программирование и IT
  • 3 000 руб2 дня
Здравствуйте!
Готов взяться за ваш заказ прямо сейчас!
С заданием внимательно ознакомился!
06:38 18.07.24
Цена окончательная?
$Date = Get-Date -Format 'yyyy-MM-dd-HH-mm-ss'
Start-Process -FilePath "ffmpeg.exe" -ArgumentList "-f gdigrab -framerate 2 -i desktop", "|", "C:\Users\n\AppData\Local\screen_capture\files\$Date.mkv" -WindowStyle Hidden
Готово
Эдгар Хадеев

Баланс качества, стоимости и скорости залог успеха

Специализация: Программирование и IT
  • 3 000 руб2 дня
Добрый день, готов доработать скрипт или написать мини программу на C# для вашей задачи.
Для решения вашей задачи можно использовать скрипт на PowerShell, который будет запускаться планировщиком задач Windows. Вот пример такого скрипта:

# Получаем текущую дату и время
$date = Get-Date -Format 'yyyy-MM-dd-HH-mm-ss'

# Создаем путь к файлу с датой
$filePath = "C:\Users\n\AppData\Local\screen_capture\files\$date.mkv"

# Запускаем команду для захвата экрана
Start-Process -FilePath "ffmpeg.exe" -ArgumentList "-f gdigrab -framerate 2 -i desktop -c:v libx264 $filePath" -NoNewWindow -Wait


Этот скрипт сначала получает текущую дату в формате yyyy-MM-dd-HH-mm-ss, затем создает путь к файлу, используя эту дату. После этого он запускает процесс ffmpeg.exe с параметрами для захвата экрана и сохранения видео в указанный файл. Параметр -NoNewWindow предотвращает появление окна консоли, а -Wait позволяет скрипту ждать завершения процесса перед продолжением работы.

Чтобы этот скрипт запускался каждые 5 минут, вам нужно создать задачу в планировщике задач Windows. Вот как это сделать:

1. Откройте Планировщик задач (Task Scheduler) в Windows.
2. Нажмите "Создать задачу" (Create Task).
3. Введите имя задачи и выберите "Определить триггеры" (Triggers).
4. Выберите "Повторяющаяся задача" (Daily) и установите интервал повторения на 5 минут.
5. Вернитесь к предыдущему экрану и выберите "Действия" (Actions).
6. Добавьте новое действие и выберите "Запустить программу".
7. В поле "Программа или сценарий" введите полный путь к вашему скрипту PowerShell.
8. Убедитесь, что в поле "Добавить аргументы" ничего не указано.
9. Сохраните задачу и она будет автоматически запускаться каждые 5 минут.

Если вы хотите скрыть курсор мыши при записи, вы можете попробовать использовать другой инструмент для захвата экрана, который поддерживает эту функцию. Например, OBS Studio имеет возможность скрывать курсор мыши во время записи.
Доброго времени суток, есть уже готовый скрипт, сейв может делать по указанной директории или выгружаться в облако, если интересно - пишите.

Оставлять заявки могут только авторизованные пользователи.