Запись по расписанию ffmpeg 14.04 с таймером

Как настроить запись по расписанию, которая останавливается через установленное время со звуком и видео 14.04? Я хочу записать что-то на 6 часов вперед, что длится 1 час. Очень важно, чтобы видео и звук были высокого качества и чтобы качество видео не ухудшалось по сравнению с исходным потоком. Мой экран 1366x736.

Я хочу на самом деле записывать из потока m3u (iptv), но если это невозможно, я могу вместо этого сделать снимок экрана.

И вопрос о записи рабочего стола, если запись потока m3u напрямую невозможна: должен ли быть включен звук компьютера во время записи, чтобы получить звук на видео?

Заранее спасибо!

2 ответа

Одним из методов одноразового планирования является atкоманда.

  1. Введите запланированное время:

    at 4:00 PM
    
  2. Затем появится подсказка, где вы вводите команду для запуска:

    ffmpeg -i input.m3u -c copy -t 01:00:00 output.foo
    
    • -c copyопция включит режим потокового копирования, который сохранит качество, потому что он будет просто переделывать вместо дополнительного кодирования.

    • -t 01:00:00опция установит продолжительность на один час.ffmpegзатем выйдет через час.

  3. Затем нажмитеCtrl+ D, чтобы сохранить команду.

Если это будет регулярно запланированное событие, вы можете использовать вместо этого cronjob.

Что касается записи на рабочем столе, см.:

Вы можете использовать скрипт оболочки следующим образом:

runtime_in_sec=3600
wait_time_in_sec=3600*6
sleep $wait_time_in_sec
ffmpeg <the options and the file> &  # alternatively use `avconv` instead of ffmpeg
PID=$!
sleep $runtime_in_sec
kill -9 $PID

Если вы хотите установить точный час, я бы предпочел использовать небольшой скрипт на python или даже просто интерпретатор ipython, потому что работать с датой и временем намного проще. Я бы например использовал time.monotonic() для простых расчетов с секундами...

Другие вопросы по тегам