我希望使用 VLC 自动录制 https 音频流。 流有下降的趋势,所以我需要每小时创建一个新的捕获,但为了流畅的编辑,我希望每个实例记录 65 分钟。
我不确定如何编写脚本,以便旧的在新的启动后 5 分钟终止。
我用于捕获的命令是:
vlc https://server.com/live --sout="#duplicate{dst=std{access=file,mux=mp3,dst='/home/ubuntu/test1.mp3'},dst=nodisplay}"
(此外,我想用当前日期时间信息替换"test1",但这是另一个线程。
干净地退出 vlc 比杀死进程更好:
--stop-time=3900
(65 * 60(
停止时间
流将在此位置停止(以秒为单位(。
https://wiki.videolan.org/VLC_command-line_help/
其余的可以通过 shell 循环来完成:
while : ; do
vlc --stop-time=3900 --play-and-exit https://server.com/live --sout="#duplicate{dst=std{access=file,mux=mp3,dst='/home/ubuntu/test1.mp3'},dst=nodisplay}" &
sleep 3600
done
while do : ; vlc &; sleep 3600 done
在后台启动一个实例,然后等待 3600 秒,然后永远启动下一个实例(直到按Ctrl+c(。
另一种选择可能是使用 crontab 条目,该条目每整小时启动一个新实例:crontab -e
0 * * * * vlc --stop-time=3900 --play-and-exit https://server.com/live --sout="#duplicate{dst=std{access=file,mux=mp3,dst='/home/ubuntu/test1.mp3'},dst=nodisplay}" 1>>~/.vlc.dump.log 2>&1
编辑:正如@DaveZachritz所指出的那样,它也需要--play-and-exit