Роллинг настольный рекордер? [закрыто]

11

Мне нужен фрагмент программного обеспечения для Windows, который будет постоянно записывать то, что я делаю, на моем рабочем столе, отбрасывая отснятый материал, который старше [30] секунд. Его запись будет катящейся.

Идея в том, что я могу как-то нажать кнопку и посмотреть, что только что произошло.

Я не хочу нянчиться. То есть я не хочу, чтобы какое-то программное обеспечение было разработано для показа экрана (чего я не пытаюсь сделать). Мой уклон против этого основан на моем (возможно, неправильном?) Предположении, что мне регулярно приходилось начинать / останавливать запись в течение дня.

Идея состоит в том, что эта часть программного обеспечения будет потреблять меньше ресурсов (чем видеомагнитофон) на моем устройстве, поскольку она хранит только очень ограниченный объем видеоматериала в памяти (и низкое качество будет даже приемлемым), поскольку она отбрасывает кадры довольно быстро после того, как они захвачены.

Где я могу найти программный продукт с такими функциями?

копье
источник
2
дайте нам знать вашу платформу. На linux написание скрипта, который делает именно это с использованием ffmepg, было бы тривиально.
Брайс
Я отредактировал вопрос, чтобы отразить, что мне нужно решение для Windows.
Ланс
Я хотел бы иметь именно это, кто-нибудь придумает решение для Windows?
Киран
Я согласен. Я не могу поверить, что этого еще не существует. Игровой видеорегистратор Xbox One обладает такой же функциональностью годами, как и GoPros («циклическая запись») и другие видеокамеры («предварительная запись»).
Алдавива
Оказывается, у Open Broadcaster Software есть именно эта функция, она называется «Replay Buffer». Включите его в меню «Настройки»> «Вывод» и выберите длительность, затем нажмите «Запустить буфер воспроизведения». Вы захотите назначить горячую клавишу для Replay Buffer - Save Replay, которая записывает видео последних N секунд в ваш путь записи. К вашему сведению, вам на самом деле не нужно транслировать ваш поток где-либо, просто чтобы использовать OBS для записи, так что вы можете использовать его только локально, а не транслировать на Twitch или что-то еще.
Алдавива

Ответы:

1
  • Установите рекордер захвата экрана: https://github.com/rdp/screen-capture-recorder-to-video-windows-free
  • Поместите каталог ffmpeg, который он устанавливает, на ваш путь. На моей машине это было: C: \ Program Files (x86) \ Screen Capturer Recorder \ configuration_setup_utility \ vendor \ ffmpeg \ bin
  • Запустите следующий пакетный скрипт:

Пакетный скрипт:

echo off
:loop
ffmpeg -loglevel info -t 300 -f dshow -video_device_number 0 -i video="screen-capture-recorder" -vcodec libx264 -pix_fmt yuv420p -s hd720 -preset ultrafast -vsync vfr -acodec libmp3lame -f mpegts - | ffmpeg -f mpegts -i - -c copy "current.mp4"
del old.mp4
mv current.mp4 old.mp4
goto loop
Киран
источник
Круто, спасибо! Я должен был измениться, mvчтобы move /Yпотом это работало. Также это будет -t 30 для 30 с.
xr280xr
Кроме того, укажите mkv в качестве формата файла вместо mp4, если вам нужна возможность смотреть видео, пока оно еще записывается.
Копье
4

Предполагая, что вы работаете в какой-то форме Windows, и вам на самом деле не нужна запись в режиме реального времени, я думаю, что вам нужен TimerSnapper.

http://www.timesnapper.com/

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

Есть старая версия, которая бесплатна, и есть более новая Профессиональная версия с намного большим количеством функций.

Стив Хинер
источник
1

ОК. В linux следующий скрипт создаст три файла .avi в / tmp /, в которых будут записаны последние несколько мгновений.

#!/bin/bash
while true; do
    ffmpeg -f x11grab -s 1280x800 -r 60 -i :0.0 -f avi /tmp/rolling.avi &> /dev/null &
    disown
    PID=$!
    sleep 30; 
    kill -KILL $PID
    cp /tmp/rolling_1.avi /tmp/rolling_2.avi
    cp /tmp/rolling.avi /tmp/rolling_1.avi
    rm /tmp/rolling.avi 
done

Очевидно, вам придется заменить аргументы ffmpeg для разрешения экрана и т. Д.

Приветствую b0fh и ~ quack за помощь в решении некоторых проблем с bash-уведомлениями в этой теме.

Brice
источник
это будет записывать 30 секунд, а затем удалить и начать снова. Он хочет 30 секунд непрерывной работы (так что только в то время, когда он хочет повторить, он всегда получает 30 секунд после нажатия кнопки)
t123
0

Некоторое программное обеспечение, предназначенное для записи ТВ, обладает такой способностью. Может быть, вы можете направить ввод из вашего программного обеспечения для захвата экрана?

Крис Нава
источник