We are developing a shield that shall be interfaced to the pi. A camera(720p) is also interfaced to the pi via the USB on the pi . The data from the camera is to be converted into H.264 format and then via a wifi module(in the shield) transmitted.

Kindly help me out in the following points -

1) Is H.264 available in the pi ? I do not want to use a chip that will encode my video. If yes, then how can i tap the h.264 encoded signals ? Is it through the SPI on the 26 pin connector ? Or can it be tapped from the other USB in the USB hub (there I 2 USB slots,I believe).

2) If H.264 is obtained via SPI (thru the 26 pin conn), will the speed of the SPI be enough to prevent any latencies as I intend to stream the video using a wifi module. The USB speed is 480Mbps. Is the USB not better than SPI here ?

3) The H.264 is a compression tool. My video is 1280x720x25(fps)x8(8 bit colour)x3 = 552960000bits/sec ~ 66MB (bytes). H.264 will compress it by a factor. What is that factor ? How can I select that factor(if such an option is available). How can I do that in the pi ?

4) Will the selection of any of the wifi modules suffice ? I am going for b/g modules(max of 54Mb/sec)

Regards, Vin.

1 Answer 1


That was many questions... I have the feeling a fast search could be more effective. Anyway, here are some thoughts.

1) This question indicates that the GPU supports H.264 encoding, but that its not clear if there is software to use the GPU for encoding.

2) That is a very high bit rate, more than the 480 Mbit/s of USB. You cannot expect to get even 480 Mbit/s of useful data over USB due to various overheads. This question indicates that the SPI can run at 125 MHz, which gives you roughly 15 Mbytes/s. (250 Mbit/s is discussed but looks uncertain) Some USB webcams do JPEG compression of each frame before sending it over USB. This will depend on your camera module - do you have a camera module that actually outputs such a lot of data, and do you really want it?

3) The compression factor is something you are typically free to choose as you wish, it is a trade-off between high compression and high quality. You would set this factor as an option in the encoder program, the details depend on the encoder.

4) Get a Wifi module with good linux support! See linuxwireless.org. Most adapters work for basic things as participating in a wireless network. For more special applications, such as providing an access point, you have to choose more carefully.

Finally, the Foundation is developing a camera module that attaches to the CSI connector. It seems not to be available yet, but soon. They promise H.624 encoding of the video, so maybe this is exactly what you want.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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