带计时器的预定录制 ffmpeg 14.04

带计时器的预定录制 ffmpeg 14.04

在 14.04 上,如何设置定时录制,在设定的时间后停止,并带有声音和视频?我想提前 6 小时录制一些内容,持续 1 小时。视频和声音必须保持顶级质量,并且视频质量不能低于原始流,这一点非常重要。我的屏幕是 1366x736。

我实际上想要从 m3u 流(iptv)录制,但如果这不可能,那么我可以捕获屏幕。

如果无法直接录制 m3u 流,那么关于录制桌面的一个问题是:录制时是否必须打开电脑的音频才能在视频中听到声音?

提前致谢!

答案1

一次性调度的一种方法是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。

对于桌面录制,请参见:

答案2

你可以使用如下的 shell 脚本:

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()秒进行简单的计算...

相关内容