# [MPLAYER+CRON] Grabar un programa de radio (completado)

## coolboy1973

Os planteo:

Me gustaria poder grabar un programa de radio que emiten todos los dias laborables a las 7 de la mañana y hasta las 9. Este se emite por internet, con lo cual he pensado que quizas se pueda grabar en el ordenador, en un archivo mp3 y listo.

Bien, viendo el script de emisoras que hay por otro post (buscar radio), he visto que la secuencia del mplayer para este dial es la siguiente:

```
mplayer -cache 256 http://a624.l857421577.c8574.e.lm.akamaistream.net/D/624/8574/v0001/reflector:21577

```

Bien, ya tenemos la emisora localizada.

Ahora, para grabar la opcion 

```
-ao pcm
```

 nos grabará el archivo  

```
./audiodump.wav
```

Ok, ahora las dudas:

Como hago para que la salida sea mp3 u ogg? ya que en wav, dos horas se dispara.

Como hago para q el archivo de salida se llame: 'no somos nadie 25-11-2004.mp3' o 'no somos nadie 26-11-2004.mp3', etc?

Como hago para que solo funcione 2 horas?

Como hago para que esto lo haga todos los dias de lunes a viernes a las 7 de la mañana?

Saludos y gracias.

P.S. a ver esos chicos listos con conocimiento de scripts, se lo montan para hacerlo general.p.e. Graba tal emisora de tal a tal hora tal dia.

----------

## habiss

 *Quote:*   

> Como hago para que la salida sea mp3 u ogg? ya que en wav, dos horas se dispara.
> 
> Como hago para q el archivo de salida se llame: 'no somos nadie 25-11-2004.mp3' o 'no somos nadie 26-11-2004.mp3', etc?
> 
> Como hago para que solo funcione 2 horas?  

 

Creo que es mejor que te descargues el stream y una vez descargado lo transformas en lo que quieras. Lo puedes hacer con lo opción dumpstream del mplayer:

```
mplayer -cache 256 -dumpstream -dumpfile /tmp/nosomosnadie.stream  -endpos 2:00:00 http://a624.l857421577.c8574.e.lm.akamaistream.net/D/624/8574/v0001/reflector:21577

mplayer -ao pcm -aofile - /tmp/nosomosnadie.stream | oggenc  - -o "nosomosnadie_`date -I`.ogg"

```

Para automatizarlo, programa una tarea cron con los parámetros: "00 07 * * 1-5". Esto lo ejecutará de lunes a viernes a las 7h (si es festivo también lo grabará  :Crying or Very sad:  ).

Espero que te sirva de algo.

----------

## coolboy1973

Me da el siguiente error:

```
jo-jo_machine ~ # ./grabar_radio

rm: cannot remove `/tmp/nosomosnadie.stram': No such file or directory

MPlayer 1.0pre5-3.3.3 (C) 2000-2004 MPlayer Team

CPU: Advanced Micro Devices Athlon MP/XP Thoroughbred 2688 MHz (Family: 6, Stepp

ing: 1)

Detected cache-line size is 64 bytes

CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0

Compilado para CPU x86 con extensiones: MMX MMX2 3DNow 3DNowEx SSE

Reading config file /usr/share/mplayer/mplayer.conf

Reading config file /root/.mplayer/config

Unknown option on the command line: endpos0:05:00

OggEnc v1.0.1 (libvorbis 1.0.1)

(c) 2000-2003 Michael Smith <msmith@xiph.org>

ERROR: No input files specified. Use -h for help.

jo-jo_machine ~ #
```

----------

## habiss

¿puedes pegar el contenido de grabar_audio aquí?

----------

## coolboy1973

```
rm /tmp/nosomosnadie.stram

mplayer -cache 256 -dumpstream -dumpfile /tmp/nosomosnadie.stream -endpos0:05:00

 http://a624.l857421577.c8574.e.lm.akamaistream.net/D/624/8574/v0001/reflector:2

1577

mplayer -ao pcm -aofile - /tmp/nosomosnadie.stream | oggenc  --o "nosomosnadie_`

date -I`.ogg"
```

----------

## habiss

Pon un espacio entre endpos y 0:05:00 y prueba a ver que sale.

----------

## coolboy1973

ya lo he hecho

----------

## habiss

Bueno, coolboy, perdona por haberte confundido, pero no lo había probado. Yo creía que la opción endpos también valía para el mplayer y resulta que es sólo para el mencoder. Con esto, la cosa se complica un poco pero no mucho.

Create el siguente script:

```
#!/bin/bash

# fichero: grabar_nosomosnadie.sh

rm -f /tmp/nosomosnadie.fifo

mkfifo /tmp/nosomosnadie.fifo

mplayer -really-quiet -nocache -ao pcm -aofile /tmp/nosomosnadie.fifo 'http://a624.l857421577.c8574.e.lm.akamaistream.net/D/624/8574/v0001/reflector:21577' &>/dev/null &

PID_DESCARGADOR=$!

oggenc --quiet /tmp/nosomosnadie.fifo -o "nosomosnadie_`date -I`.ogg" &

# para salida en mp3 comentar la línea anterior y descomentar la siguiente.

# lame --quiet /tmp/nosomosnadie.fifo -o "nosomosnadie_`date -I`.mp3" &

sleep 20s # grabamos sólo 20 segundos (substituir por 2h).

kill $PID_DESCARGADOR

rm -f /tmp/nosomosnadie.fifo
```

Pruebalo a ver si esta vez funciona (a mi me funciona).

Si únicamente vas a escuchar la grabación en el ordenador con el mplayer, te recomiendo que no hagas la transformación ni a mp3 ni ogg ya que perderás más información a parte de la que ya se ha perdido al codificar el propio stream. Los streams normalmente vienen bien comprimidos. En este caso ocupa unos 10 megas por hora de audio. El inconveniente de hacerlo así es que no puedes hacer búsquedas en el stream (colocarte en un tiempo determinado, ni saltarte anuncios), por lo menos, con el mplayer no se puede.

Si el programa de radio es sólo de voz (sin música) y tienes problemas de espacio te recomendaría que usaras el codec speex que además es open source y esta especialmente diseñado para grabar la voz humana.

saludos

----------

## coolboy1973

Gracias, muuuuuuuuuuuuuuuuuuchas gracias.

----------

