Estoy tratando de capturar la salida de la tarjeta de sonido y codificarla en formato Vorbis ogg usando el siguiente comando:
arecord -f cd -t raw | oggenc - -r -o file.ogg
Sin embargo, la entrada de micrófono de la computadora se graba en lugar de la salida de la tarjeta de sonido.
La salida del comando arecord -l
es
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
El resultado del comando arecord -L
está contenido en esta entrada de pastebin .
La arecord
página del manual indica que el dispositivo de entrada se puede seleccionar usando la -D
bandera, pero no da ejemplos sintácticos.
Me gustaría saber cómo cambiar la entrada arecord
del micrófono a la tarjeta de sonido. No estoy interesado en alternativas basadas en GUI como Audacity. Gracias.
Editar: estoy ejecutando Debian 7.0 (estable) con la arecord
versión 1.0.25, la vorbis-tools
versión 1.4.0 y el controlador ALSA versión 1.0.24.
fuente
alsamixer
. Si selecciono la tarjeta loopback dentroalsamixer
(tecla F6 para seleccionar la tarjeta de sonido), recibo el mensajeThis sound device does not have any controls
. Si salgo del mezclador y regreso, encuentro que la tarjeta de sonido se restablece del loopback a la tarjeta predeterminada. Intentar suspender (ctrl-z
) y el fondo (bg
) elalsamixer
proceso después de seleccionarloopback
no permite la grabación exitosa de audio a través delarecord
comando.alsamixer
no afecta al resto del sistema; solo cambia los controles que se muestran. ¿Cuáles son los controles de selección de grabación del dispositivo Conexant?Master
) y un control de captura (Capture
) dentroalsamixer
. La captura se puede activar y desactivar con la barra espaciadora dentroalsamixer
y está activada de forma predeterminada. Avíseme si esto no es lo que pretendía. Gracias.Respuestas:
Sugeriría usar el controlador ALSA loopback. Para cargarlo:
Esto debería agregar un nuevo dispositivo de captura a la salida de
arecord -L
.Si solo tiene una tarjeta de sonido física en su computadora, puede hacer que la tarjeta de sonido loopback sea la predeterminada para todas las aplicaciones creando un archivo
.asoundrc
en su carpeta de inicio con el siguiente contenido:Mientras este archivo esté en su lugar, cualquier salida de sonido de todas las aplicaciones debe ir al adaptador de bucle invertido en lugar de a los altavoces reales. Simplemente especifique el dispositivo correcto en su comando arecord y una vez que haya terminado, elimine el
.asoundrc
archivo para volver a la normalidad.fuente
.asoundrc
en mi directorio personal y reiniciar la sesión del emulador de terminal, el audio todavía se dirige a los altavoces. Elarecord -f cd -t raw | oggenc - -r -o file.ogg
comando no registra nada. Emitirarecord -l
proporciona la misma lista que antes, pero con dos líneas adicionales paracard 1: Loopback
(devices 0, 1
), cada una con 8 subdispositivos (#0-#7
). Del mismo modo,arecord -L
añadido las tres líneas siguientes:sysdefault:CARD=Loopback [newline] Loopback, Loopback PCM [newline] Default Audio Device
. Continúa en el siguiente comentario debido al límite de caracteres.arecord -f cd -t raw --device=sysdefault | oggenc - -r -o file.ogg
graba un archivo de audio en blanco durante el tiempo que se ejecuta el comando (no extrae datos de audio del micrófono como antes). Desafortunadamente,sysdefault
es degenerado ya que se define como ambosCARD=PCH
(primera línea dearecord -L
) yCARD=Loopback
(última línea dearecord -L
). Gracias por cualquier sugerencia de seguimiento que pueda proporcionar.años más tarde la lucha continúa ... cómo especificar el dispositivo de grabación, he aquí:
Entonces el formato para la cadena del dispositivo es
hw:<card>,<device>
fuente
Tuve el mismo problema y encontré otra solución aquí . La idea principal es usar
pacat
. Para mí funciona así:1) encontrar dispositivo de monitor:
2) Capturar audio a archivo:
3) Convertir archivo a
wav
:¡Eso es!
fuente
parec
lugar depacat --record
. También puede evitar el usosox
y el usoparec -d <monitor> --file-format=wav output.wav
. Puede enumerar los formatos de archivo disponibles conparec --list-file-formats
.Su hardware no admite capturar su salida; Una vez que los datos se hayan introducido en el dispositivo de reproducción real, desaparecerán.
Debe usar algún software que duplique los datos de audio antes de que se escriban en el hardware.
Sugeriría usar PulseAudio; allí puede simplemente seleccionar una de sus salidas como fuente de captura:
fuente
pavucontrol
e intenté grabar usandognome-sound-recorder
. Cuando abrognome-sound-recorder
y comienzo a recodificar (Ctrl-R
), la secuencia aparece en la ventana de Control de volumen de PulseAudio. Sin embargo, la transmisión en realidad no registra ningún dato (la duración final es 0:00). Además, ¿está familiarizado con cómo realizar la grabación a través de la línea de comandos en lugar de una GUI? Gracias .Vaya a Control de volumen PulseAudio -> pestaña Dispositivos de entrada. En la parte inferior, elija mostrar "TODOS los dispositivos de entrada". Compruebe si "Monitor de audio estéreo analógico interno" no está silenciado y el volumen sube y baja mientras reproduce el audio.
Utilice el Grabador de audio para grabar Fuente de audio = Audio estéreo analógico interno (entrada de audio). Ver captura de pantalla a continuación.
fuente
Acabo de instalar una grabadora de audio: https://launchpad.net/audio-recorder que en sus opciones muestra lo que necesita ...
fuente