2011-09-21 17 views
5

Estoy en Ubuntu y quiero grabar la salida de PulseAudio en un archivo, para hacer una grabación de un programa de pygame. El formato no importa, porque puedo cambiarlo después, por lo que el audio en bruto está bien.Streaming PulseAudio a archivo (posiblemente con GStreamer)

Al mirar a mi alrededor, parece que GStreamer podría ser capaz de manejar esto, pero no estoy familiarizado con él, y la búsqueda exhaustiva no ha dado una respuesta. Entonces, las respuestas que involucren a GStreamer o de otra manera son bienvenidas.

Gracias!

Respuesta

15

Hay un monitor para cada receptor de impulsos de audio. Usted sólo tiene que conseguir su nombre:

$ pactl list 
... 
Sink #0 
    State: RUNNING 
    Name: alsa_output.pci-0000_00_1b.0.analog-stereo 
    Description: Internal Audio Analog Stereo 
    Driver: module-alsa-card.c 
    Sample Specification: s16le 2ch 44100Hz 
    Channel Map: front-left,front-right 
    Owner Module: 4 
    Mute: no 
    Volume: 0: 40% 1: 40% 
      0: -23.87 dB 1: -23.87 dB 
      balance 0.00 
    Base Volume: 96% 
       -1.00 dB 
    Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor 
    Latency: 119973 usec, configured 210000 usec 
    Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
    ... 

línea Nota monitor de origen: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor. Es su fuente de monitor.

En primer lugar, es necesario activar el sonido que:

$ pacmd 
Welcome to PulseAudio! Use "help" for usage information. 
>>> set-source-mute alsa_output.pci-0000_00_1b.0.analog-stereo.monitor false 
>>> exit 

y ahora se puede grabar forma sonora que:

$ parec \ 
>  --format=s16le \ 
>  --device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \ 
> | oggenc --raw --quiet -o dump.ogg - 

O con cojos:

$ parec \ 
> --format=s16le \ 
> --device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \ 
> | lame -r - dump.mp3 

Lo mismo podría ser hecho con gstreamer, pero no tiene mucho sentido si no necesita un procesamiento complejo:

$ gst-launch-0.10 \ 
> pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \ 
> ! lame \ 
> ! filesink location=dump.mp3