Tell me more ×
Raspberry Pi Stack Exchange is a question and answer site for users and developers of hardware and software for Raspberry Pi. It's 100% free, no registration required.

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?

share|improve this question

1 Answer

If I understood your situation well, you want Raspberry to transcode video to H264? I think that is why you get bad performance, because VLC is using software encoding and Raspberryis not powerful for that task.

I would suggest to to try with Gstreamer and gst-omx plugins. There is element for hardware video encoding that would make good server from your Raspberry.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.