我正在使用livestreamer来录制来自youtube的定期直播视频,如下所示
livestreamer <youtube-live-url> best -o out_file.mp4
每周四晚上8点到晚上10点需要进行录音。
在这些时候,我不能总是在电脑前。
我在考虑使用crontab-e
在给定时间,周四晚上8点开始使用上述命令开始录音,这很容易。
必须在当天晚上10点用CTRL + C停止流。 杀死进程将无法正常工作,因为流不会被写入文件。必须使用CTRL + C关闭直播。
问题是我不知道如何将PID分配给初始进程,然后将CTRL + C发送到同一进程,所有进程都是从crontab完成的,以关闭流并将文件写出来。
任何想法。也许Crontab是或者不是解决这个问题的最好方法。
特定的工作配方,如果有人有,请进行此录制,请
答案 0 :(得分:1)
看看timeout。它允许您运行命令并在给定的时间后使用特定的终止信号终止它。
您可以在cron命令中使用此功能,在2小时后使用ctrl-c(SIGINT)停止livestreamer。
您应该在cron命令中使用full path和livestreamer的完整路径。您可以使用 :
找到这些内容$ which timeout
/usr/bin/timeout
$ which livestreamer
/usr/local/bin/livestreamer
要记录两小时的段,您的cron命令将是:
/usr/bin/timeout -s SIGINT 2h /usr/local/bin/livestreamer <url> /path/to/out.mp4
答案 1 :(得分:0)
可以添加--yes-run-as-root
代码: 23 0 * * * / usr / bin / timeout -s SIGINT 1m / usr / local / bin / livestreamer youtube.com/watch?v=y60wDzZt8yg 240p -o /home/kes/Desktop/out_file.mp4 --yes-run -以根用户身份