在 14.04 上,如何设置定时录制,在设定的时间后停止,并带有声音和视频?我想提前 6 小时录制一些内容,持续 1 小时。视频和声音必须保持顶级质量,并且视频质量不能低于原始流,这一点非常重要。我的屏幕是 1366x736。
我实际上想要从 m3u 流(iptv)录制,但如果这不可能,那么我可以捕获屏幕。
如果无法直接录制 m3u 流,那么关于录制桌面的一个问题是:录制时是否必须打开电脑的音频才能在视频中听到声音?
提前致谢!
答案1
一次性调度的一种方法是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 维基: ALSA
答案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()
秒进行简单的计算...