I have a logitech C920 webcam. It has the ability to directly encode the video in H264.
I want to reproduce what was done with a Beaglebone, but using a Raspberry Pi: send a H264 stream to the network. The Raspberry Pi is then only here to packetize the stream in RTP, the video compression is done by the webcam itself. The H264 mode is enforced using video4linux.
So far, and if I use a common computer with the latest version of Ubuntu, it works using VLC as a server or GStreamer. For instance, if I launch on Raspberry Pi a VLC server using the command:
cvlc --sout=#rtp{sdp=rtsp://:8554/test} 'v4l2:///dev/video0:chroma=H264:width=800:height=600:fps=30'
... and then if I read the stream with VLC on another computer, all is right.
However, if I use the raspberry Pi to send the video stream, the result is quite poor. Lots of garbage in the image as soon as something moves. Image keys are well received every 10 seconds, but in the meanwhile, it is not good enough as compared with the stream from a common computer.
I also tried the method described for the beaglebone with the provided "capture" utility: ok if I stream from a real computer, same garbage problem if I stream from a Raspberry Pi.
It is not a network problem: I did some network checks with Wireshark and the statistics of VLC, I have no packet loss. I tried with Raspbian, and Arch Linux for Raspi (gstreamer 0.10 in raspbian, gstreamer 1.0 in Arch Linux).
I do not know if it is relevant or not, but I also tested with the soft float support version of Raspbian. An update must be done first to use a 3.2 kernel ; but same problem, the video has some garbage.
Any idea on what I could do to enhance the video quality?