這是我一直在使用了一段時間
#!/bin/bash
ls *asf &> /dev/null
if [[ $? -eq 0 ]]; then
CNT=$(ls *asf | tail -1 | perl -p -i -e 's/recording_0*(\d*).*/$1/');
else
CNT=0;
fi
while true; do
NAME=recording_$(printf "%03d" $CNT);
if [[ -f $NAME.asf ]]; then
CNT=$[ $CNT + 1 ];
continue;
fi
echo "recording $NAME";
mplayer "http://your.stream.goes.here" -dumpstream -dumpfile $NAME.asf &> $NAME.log &
sleep 2h;
killall mplayer;
CNT=$[ $CNT + 1 ];
done
這將產生錄音具有下列名稱 recording_000.asf recording_001.asf 等 並與mplayers輸出日誌文件的bash腳本(萬一你需要它)。 我已經將時間段硬編碼爲2h,但您可以輕鬆更改該時間段。
謝謝,但澄清我想捕捉音頻流,而不是流音頻文件。我已經修改了這個問題來澄清這個問題。 – mattauckland