如何在 mplayer 中使用超时功能?

如何在 mplayer 中使用超时功能?

我正在尝试使用 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 没有输出字符串可以检测。

相关内容