Запись по расписанию ffmpeg 14.04 с таймером
Как настроить запись по расписанию, которая останавливается через установленное время со звуком и видео 14.04? Я хочу записать что-то на 6 часов вперед, что длится 1 час. Очень важно, чтобы видео и звук были высокого качества и чтобы качество видео не ухудшалось по сравнению с исходным потоком. Мой экран 1366x736.
Я хочу на самом деле записывать из потока m3u (iptv), но если это невозможно, я могу вместо этого сделать снимок экрана.
И вопрос о записи рабочего стола, если запись потока m3u напрямую невозможна: должен ли быть включен звук компьютера во время записи, чтобы получить звук на видео?
Заранее спасибо!
2 ответа
Одним из методов одноразового планирования является at
команда.
Введите запланированное время:
at 4:00 PM
Затем появится подсказка, где вы вводите команду для запуска:
ffmpeg -i input.m3u -c copy -t 01:00:00 output.foo
-c copy
опция включит режим потокового копирования, который сохранит качество, потому что он будет просто переделывать вместо дополнительного кодирования.-t 01:00:00
опция установит продолжительность на один час.ffmpeg
затем выйдет через час.
Затем нажмитеCtrl+ D, чтобы сохранить команду.
Если это будет регулярно запланированное событие, вы можете использовать вместо этого cronjob.
Что касается записи на рабочем столе, см.:
- Захватывает ТОЛЬКО настольный звук с помощью ffmpeg (через PulseAudio)
- FFmpeg Wiki: ALSA
Вы можете использовать скрипт оболочки следующим образом:
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()
для простых расчетов с секундами...