como usar o tempo limite no mplayer?

1

Estou tentando salvar o áudio usando o mplayer de um fluxo de HTTP ao vivo. salvar o áudio é bem-sucedido. Se não houver transmissão ao vivo, ela não sai automaticamente. Existe alguma maneira de definir o tempo limite se não houver transmissão ao vivo?

código: mplayer -i url -t 00:00:10 -acodec libmp3lame -ab 24 -ar 8000 audio.mp3

Obrigado antecipadamente.

    
por manoj 14.06.2010 / 01:56

1 resposta

0

Eu resolvi isso usando Espero . Você inicia o streaming jogando com ./play.sh :

while [ '1' == '1' ]; 
do
  expect try_stream.exp $1 
  sleep 3
done

E isso usa try_stream.exp :

set timeout 4
spawn mplayer -nocache $argv
expect {
  "Starting playback" { 
    interact
  }
  timeout { 
    send 
while [ '1' == '1' ]; 
do
  expect try_stream.exp $1 
  sleep 3
done
3; exit 1 } }

Basicamente, ele tenta reproduzir o fluxo e, se não puder fazê-lo dentro de 3 segundos, desiste (script .exp) e tenta novamente (script .sh). Funciona desde que você tenha problemas como um servidor muito ocupado. Infelizmente eu não sei como lidar com o caso quando o mplayer fica preso quando ele começa a tocar, não há uma string de saída para o Expect detectar nesse caso.

    
por 19.04.2012 / 17:58