sábado, 7 de fevereiro de 2015

Como transmitir o audio do microfone usando o vlc

Depois de um longo período sem publicar nada estou de volta com mais uma nova dica. Tudo começou com a chegada de um novo membro da família aqui em casa.


Olha a cara de felicidade dele

A preocupação inicial era como este filhote ia se adaptar quando. tanto eu quanto minha esposa, ficamos fora trabalhando e, na primeira semana, o medo é que o filhote ia sofrer e chorar quando ficar sozinho. Então como ouvir o que está acontecendo estando a quilômetros de distância?? Felizmente encontrei uma solução pesquisando em alguns forums especializados. Tudo que é preciso é utilizar o vlc no Linux para transmitir e pode usar o mplayer ou qualquer outro cliente para esta tarefa.


Depois de alguns testes cheguei na seguinte configuração que usei na minha Debian:

cvlc -vvv alsa://hw:1,0 --sout '#transcode{acodec=aac,ab=32}:rtp{dst=192.168.0.1,port=1234,sdp=rtsp://192.168.0.1:7171/teste.sdp}'

O que interessa mais é o rtsp://192.168.0.1:7171/teste.sdp aonde define a porta e o endereço que será utilizado pelo cliente. Nos testes que fiz apenas setei o acodec para aac já que a configuração original não funcionou muito bem comigo. Na minha maquina utilizei o alsa direto mas, para aqueles que usam pulseaudio podem simplesmente mudar de alsa:// para pulse:// que o efeito pode ser o mesmo, veja na configuração do pulseaudio qual o caminho melhor para aplicar no comando.

Tendo tudo isso agora é receber o audio que está sendo transmitido pelo microfone. No meu caso utilizei o mplayer mas pode utilizar o vlc e qualquer outro tocador que suporte rtsp. Por exemplo:

mplayer rtsp://192.168.0.1:7171/teste.sdp

Neste exemplo utilizei apenas o endereço da rede interna mas, se for utilizar em rede externa, é só mudar o endereço 192.168.0.1 para qualquer outro que esteja nas interfaces de rede. Dessa maneira deu para monitorar o filhote durante a semana e percebi que se adaptou bem ao novo ambiente para minha felicidade e da minha esposa.

Tenham uma boa semana.