Tengo una cámara web logitech C920. Tiene la capacidad de codificar directamente el video en H264.
Quiero reproducir lo que se hizo con un Beaglebone, pero usando un Raspberry Pi: envíe un flujo H264 a la red . El Raspberry Pi solo está aquí para empaquetar la transmisión en RTP, la compresión de video se realiza mediante la cámara web. El modo H264 se aplica mediante video4linux.
Hasta ahora, y si uso una computadora común con la última versión de Ubuntu, funciona usando VLC como servidor o GStreamer. Por ejemplo, si inicio en Raspberry Pi un servidor VLC usando el comando:
cvlc --sout=#rtp{sdp=rtsp://:8554/test} 'v4l2:///dev/video0:chroma=H264:width=800:height=600:fps=30'
... y luego, si leo la transmisión con VLC en otra computadora, todo está bien.
Sin embargo, si uso la Raspberry Pi para enviar la transmisión de video, el resultado es bastante pobre. Mucha basura en la imagen tan pronto como algo se mueve. Las claves de imagen se reciben bien cada 10 segundos, pero mientras tanto, no es lo suficientemente bueno en comparación con la transmisión desde una computadora común.
También probé el método descrito para el beaglebone con la "captura" proporcionada utilidad de : está bien si transmito desde una computadora real, el mismo problema de basura si transmito desde una Raspberry Pi.
No es un problema de red: hice algunas comprobaciones de red con Wireshark y las estadísticas de VLC, no tengo pérdida de paquetes. Intenté con Raspbian y Arch Linux para Raspi (gstreamer 0.10 en raspbian, gstreamer 1.0 en Arch Linux).
No sé si es relevante o no, pero también probé con la versión de soporte de flotación suave de Raspbian. Primero se debe realizar una actualización para usar un kernel 3.2; pero el mismo problema, el video tiene algo de basura.
¿Alguna idea de lo que podría hacer para mejorar la calidad del video?