我正在尝试使用 mplayer 从实时 http 流中保存音频。保存音频成功。如果没有实时流正在播放,它不会自动退出。如果没有实时流,有什么方法可以设置超时吗?
代码:mplayer -i url -t 00:00:10 -acodec libmp3lame -ab 24 -ar 8000 audio.mp3
提前致谢。
答案1
我已经通过使用解决了它预计. 你可以使用以下命令启动流媒体播放./play.sh
:
while [ '1' == '1' ];
do
expect try_stream.exp $1
sleep 3
done
这使用try_stream.exp
:
set timeout 4
spawn mplayer -nocache $argv
expect {
"Starting playback" {
interact
}
timeout {
send \003;
exit 1
}
}
基本上,它会尝试播放流,如果 3 秒内无法播放,它会放弃(.exp 脚本)并重试(.sh 脚本)。只要您遇到问题(例如服务器非常繁忙),它就会工作。不幸的是,我不知道如何处理 mplayer 在开始播放后卡住的情况,在这种情况下,Expect 没有输出字符串可以检测。