
Estou trabalhando em um projeto onde um Raspberry Pi está sendo usado como placa de E/S para vários servos, que na verdade são controlados por outro computador, conectado ao RPi via Ethernet.
Preciso adicionar 2 webcams USB ao projeto e gostaria de conectá-las ao RPi, para manter o local único para E/S, se isso fizer sentido.
Estou procurando a maneira mais simples e com menor latência de encaminhar a entrada das webcams para a máquina host. Tentei usar Usbip e ffmpeg para transmitir os dados, mas tive problemas com ambos os métodos. Existem outras sugestões? ou devo continuar seguindo um dos métodos que tentei.
Obrigado!
Responder1
Suas webcams possuem compactação de hardware? Ou você está fazendo compactação no RPi? Seu processador VideoCore é adequado para este tipo de trabalho, mas.... você deve usar OpenMAX para descarregar para o VideoCore, já que o coprocessador ARM onde o Linux roda não está nem perto de ser capaz de compactar até mesmo um fluxo de baixa definição. Os programas que carregam codecs VideoCore são omxplayer
alguns gstreamer
plug-ins.
Mesmo usando o VideoCore, você terá problemas de largura de banda ao obter dados de vídeo brutos através da interconexão interna do USB.
Suas opções viáveis são, portanto,
- Copie vídeo pré-compactado (dentro da própria webcam) de USB para Ethernet.
- Use o módulo de câmera RPi que faz interface com uma porta de vídeo de alta largura de banda no Raspberry Pi, diretamente no VideoCore para processamento e compactação.
A última opção provavelmente terá uma latência um pouco menor, mas você obterá apenas um fluxo. É teoricamente possível intercalar dois fluxos através de uma única porta de vídeo, mas o codec no VideoCore precisaria ser projetado para aceitar e separar os dois fluxos, e os dados técnicos para fazer isso estão disponíveis apenas sob NDA para os maiores clientes da Broadcom.
Você pode encontrar mais informações sobre o processo de desenvolvimento de codecs de vídeo nos fóruns do Rasberry Pi. Versão resumida: a Broadcom faz a maior parte do trabalho, a fundação Raspberry Pi tem acesso aos dados técnicos, mas não tem engenheiros suficientes, e o NDA os proíbe de contratar o trabalho.