É suposto que seja possível gravar diretamente no Audacity, mas não consegui fazer isso funcionar no meu sistema (Ubuntu 10.10).
Assim, seguindo as instruções aqui do wiki do Audacity, eu uso o dispositivo de reprodução ALSA
para desviar o áudio para um arquivo.
Isso usa um arquivo .asoundrc
(em seu diretório pessoal):
pcm.teeraw {
type empty
slave.pcm "tee:default,'/tmp/out.raw',raw"
# 48000 S16_LE 2ch (aplay -t raw -f dat)
}
Para gravar a partir do flash (no firefox), eu uso
FLASH_ALSA_DEVICE=teeraw firefox
O arquivo resultante, /tmp/out.raw
, está no formato bruto, portanto, a conversão precisa saber quais são os parâmetros corretos.
Estranhamente, lame
parece capaz de resolver isso sozinho, mas sox
precisa conhecê-lo explicitamente.
Então, o seguinte parece funcionar:
aplay -t raw -f dat -r 44100 /tmp/out.raw # to play
sox -r 44100 -b 16 -e signed -c 2 /tmp/out.raw /tmp/out.wav # to convert to wav
lame /tmp/out.raw # to convert to mp3