Grabar radio por internet con MPlayer
Copyright © 10 Abril 2004 Juan Martín López (nauj27)
MPlayer es capaz de guardar un flujo de audio en formato PCM/RAW/WAV directamente usando la opción -ao pcm pero aquí veremos como grabarlo directamente en OGG. También se podría hacer lo mismo usando LAME para grabarlo en MP3. en realidad se puede aplicar para cualquier programa que desee procesar el sonido.
Lo primero es crear un archivo FIFO con el que comunicaremos los dos programas:
nauj27:~# mkfifo /tmp/mplayer-fifo
Con esto se creará un archivo /tmp/mplayer-fifo que usaremos como salida para MPlayer y como entrada para oggenc:
nauj27:~# mplayer -cache 8 mms://a319.l1103733391.c11037.e.lm.akamaistream.net/D/319/11037/v0001/reflector:33391 -ao pcm -aofile /tmp/mplayer-fifo
MPlayer 1.0pre3-3.2.3 (C) 2000-2003 MPlayer Team
CPU: Advanced Micro Devices Athlon 4 /Athlon MP/XP Palomino 1401 MHz (Family: 6, Stepping: 2)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE
[...]
Cache fill: 0,00% (0 bytes) ASF file format detected.
============ ASF Stream group == START ===
object size = 32
stream count=[0x1][1]
stream id=[0x1][1]
max bitrate=[0x5093][20627]
============ ASF Stream group == END ===
Clip info:
name: Sonido en Directo
author: Cadena 100
copyright: Cadena 100
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 22050 Hz, 2 ch, 16 bit (0x10), ratio: 2501->88200 (20,0 kbit)
Selected audio codec: [ffwmav2] afm:ffmpeg (DivX audio v2 (ffmpeg))
==========================================================================
Checking audio filter chain for 22050Hz/2ch/16bit -> 22050Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 22050 hz, little endian signed int
AF_pre: 22050Hz 2ch Signed 16-bit (Little-Endian)
PCM: File: /tmp/mplayer-fifo (WAVE)
PCM: Samplerate: 22050Hz Channels: Stereo Format Signed 16-bit (Little-Endian)
PCM: Info: fastest dumping is achieved with -vc dummy -vo null
PCM: Info: to write WAVE files use -waveheader (default); for RAW PCM -nowaveheader.
El -cache 8 es importante para que la comunicación sea más fluida desde internet. Usar un valor mayor puede causar cortes por no poder mantener el buffer lleno y un valor menor también puede provocar cortes por no tener suficientes datos para ir decodificando. Ya solo falta abrir el programa que va a procesar el sonido en otro terminal por ejemplo, de manera que los datos comiencen a fluir por la tubería:
nauj27:~# oggenc -o blah.ogg /tmp/mplayer-fifo
Abriendo con el módulo wav: WAV file reader
Codificando \"/tmp/mplayer-fifo\" a
\"blah.ogg\"
con calidad 3,00
[ 0,1%] [quedan 33m18s ] /
Para cortar, basta con usar Control+C.





