我有一个脚本,它使用 pactl 和 parec 录制来自浏览器的音频,该浏览器正在播放广播电台。然后使用 Sox 将捕获的音频压缩为 mp3。它在前台运行时录制得很好,但从 crontab 作业启动时录制的是静音。
以下是录音脚本的关键内容:
# Get sink monitor:
MONITOR=$(pactl list | grep -A2 '^Source #' | grep 'Name: .*\.monitor$' | awk '{
print $NF}' | tail -n1)
# Record it raw, and convert to whatever
cmd="timeout ${TIMESECS}s parec -d \"$MONITOR\" | sox -t raw -r 44100 -sLb 16 -c
2 - \"$TEMPFILE\""
echo $cmd
eval $cmd
为什么脚本在前台可以运行,但从 crontab 启动时却不行?