Eu tenho uma webcam logitech C920. Ele tem a capacidade de codificar diretamente o vídeo no H264.
Quero reproduzir o que foi feito com um Beaglebone, mas usando um Raspberry Pi: envie um fluxo H264 para a rede . O Raspberry Pi está aqui apenas para empacotar o fluxo no RTP, a compactação de vídeo é feita pela própria webcam. O modo H264 é imposto usando o video4linux.
Até agora, e se eu usar um computador comum com a versão mais recente do Ubuntu, ele funcionará usando o VLC como servidor ou GStreamer. Por exemplo, se eu iniciar no Raspberry Pi um servidor VLC usando o comando:
cvlc --sout=#rtp{sdp=rtsp://:8554/test} 'v4l2:///dev/video0:chroma=H264:width=800:height=600:fps=30'
... e, se eu ler o stream com o VLC em outro computador, está tudo certo.
No entanto, se eu usar o raspberry Pi para enviar o fluxo de vídeo, o resultado será muito ruim. Muito lixo na imagem assim que algo se move. As chaves de imagem são bem recebidas a cada 10 segundos, mas, enquanto isso, não é bom o suficiente em comparação com o fluxo de um computador comum.
Eu também tentei o método descrito para o beaglebone com o utilitário "capture" fornecido : ok se eu transmitir em um computador real, o mesmo problema de lixo se transmitir em um Raspberry Pi.
Não é um problema de rede: fiz algumas verificações de rede com o Wireshark e as estatísticas do VLC, não tenho perda de pacotes. Eu tentei com o Raspbian e o Arch Linux para Raspi (gstreamer 0.10 no raspbian, gstreamer 1.0 no Arch Linux).
Não sei se é relevante ou não, mas também testei com a versão de suporte a flutuação suave do Raspbian. Uma atualização deve ser feita primeiro para usar um kernel 3.2; mas mesmo problema, o vídeo tem algum lixo.
Alguma idéia do que eu poderia fazer para melhorar a qualidade do vídeo?