Estou tentando capturar a saída da placa de som e codificá-la no formato Vorbis ogg usando o seguinte comando:
arecord -f cd -t raw | oggenc - -r -o file.ogg
No entanto, a entrada do microfone do computador é gravada e não a saída da placa de som.
A saída do comando arecord -l
é
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
A saída do comando arecord -L
está contida nesta entrada pastebin .
A arecord
página de manual indica que o dispositivo de entrada pode ser selecionado usando o -D
sinalizador, mas não fornece exemplos sintáticos.
Gostaria de saber como alterar a entrada arecord
do microfone para a placa de som. Não estou interessado em alternativas baseadas em GUI, como o Audacity. Obrigado.
Edit: Estou executando o Debian 7.0 (estável) com a arecord
versão 1.0.25, vorbis-tools
versão 1.4.0 e o driver ALSA versão 1.0.24.
linux
audio
audio-recording
alsa
user001
fonte
fonte
alsamixer
. Se eu selecionar a placa de loopbackalsamixer
(tecla F6 para selecionar a placa de som), recebo a mensagemThis sound device does not have any controls
. Se eu sair do mixer e retornar, acho que a placa de som é restaurada do loopback para a placa padrão. Tentar suspender (ctrl-z
) e colocar em segundo plano (bg
) oalsamixer
processo após a seleçãoloopback
não habilita a gravação bem-sucedida do áudio por meio doarecord
comando.alsamixer
não afeta o resto do sistema; apenas muda quais controles são mostrados. Quais são os controles de seleção de gravação do dispositivo Conexant?Master
) e um controle de captura (Capture
) dentroalsamixer
. A captura pode ser ativada e desativada com a barra de espaço dentroalsamixer
e está ativada por padrão. Informe-me se não foi isso que você pretendia. Obrigado.Respostas:
Eu sugiro usar o driver de loopback ALSA. Para carregá-lo:
Isso deve adicionar um novo dispositivo de captura à saída de
arecord -L
.Se você tiver apenas uma placa de som física em seu computador, poderá tornar a placa de som de loopback o padrão para todos os aplicativos, criando um arquivo
.asoundrc
em sua pasta pessoal com o seguinte conteúdo:Enquanto esse arquivo estiver no lugar, qualquer saída de som de todos os aplicativos deve ir para o adaptador de loopback, e não para os alto-falantes reais. Basta especificar o dispositivo correto no seu comando arecord e, quando terminar, remova o
.asoundrc
arquivo para voltar ao normal.fonte
.asoundrc
no meu diretório pessoal e reiniciar a sessão do emulador de terminal, o áudio ainda é direcionado para os alto-falantes. Oarecord -f cd -t raw | oggenc - -r -o file.ogg
comando não registra nada. A emissãoarecord -l
fornece a mesma lista de antes, mas com duas linhas adicionais paracard 1: Loopback
(devices 0, 1
), cada uma com 8 subdevices (#0-#7
). Da mesma forma,arecord -L
adicionados os seguintes três linhas:sysdefault:CARD=Loopback [newline] Loopback, Loopback PCM [newline] Default Audio Device
. Continua no próximo comentário devido ao limite de caracteres.arecord -f cd -t raw --device=sysdefault | oggenc - -r -o file.ogg
gravar um arquivo de áudio em branco pela duração em que o comando é executado (ele não extrai dados de áudio do microfone como antes). Infelizmente,sysdefault
é degenerado, pois é definido como sendoCARD=PCH
(primeira linha dearecord -L
) eCARD=Loopback
(última linha dearecord -L
). Obrigado por todas as sugestões de acompanhamento que você pode fornecer.anos depois, a luta continua ... como especificar o dispositivo de gravação, eis:
Portanto, o formato da string do dispositivo é
hw:<card>,<device>
fonte
Eu tive o mesmo problema e encontrei outra solução aqui . A idéia principal é usar
pacat
. Para mim, funciona assim:1) encontre o dispositivo monitor:
2) Capturar áudio em arquivo:
3) Converta arquivo para
wav
:É isso aí!
fonte
parec
vez depacat --record
. Você também pode evitar o usosox
e usoparec -d <monitor> --file-format=wav output.wav
. Você pode listar os formatos de arquivo disponíveis comparec --list-file-formats
.Seu hardware não suporta a captura de sua saída; depois que os dados entram no dispositivo de reprodução real, eles desaparecem.
Você precisa usar algum software que duplique os dados de áudio antes de serem gravados no hardware.
Eu sugiro usar o PulseAudio; lá você pode simplesmente selecionar uma de suas saídas como fonte de captura:
fonte
pavucontrol
e tentei gravar usandognome-sound-recorder
. Quando abrognome-sound-recorder
e começo a recodificar (Ctrl-R
), o fluxo aparece na janela do controle de volume PulseAudio. O fluxo, na verdade, não registra nenhum dado (a duração final é 0:00). Além disso, você conhece como executar a gravação por linha de comando em vez de uma GUI? Obrigado .Vá para Controle de volume PulseAudio -> guia Dispositivos de entrada. Na parte inferior, escolha mostrar "TODOS os dispositivos de entrada". Verifique se "O monitor do áudio estéreo analógico interno" não está mudo e o volume aumenta e diminui à medida que você reproduz o áudio!
Use o gravador de áudio para gravar a fonte de áudio = estéreo analógico de áudio interno (entrada de áudio). Veja a captura de tela abaixo.
fonte
Acabei de instalar o gravador de áudio: https://launchpad.net/audio-recorder, que em suas opções mostra o que você precisa ...
fonte