I have two Raspberry Pi B+ and one Raspberry Pi 2. I would like to have the two B+ pis stream video to the model 2 pi. This is for a realtime computer vision application, so I need the absolute fastest configuration I can manage.

What configuration of hardware/protocols/library should I use?

The ethernet seems faster than USB, but because there are multiple Pis, I cannot use ethernet. Some people recommend a serial connection between the GPIOs, but I would think USB would be faster than that.

I have also read that I should just write to the /dev/tty* file associated with whatever option I use, but that seems too easy to work and I'm confused when data would then be read and written across the cables.

Any help is appreciated.

  • As for the Pi - where Ethernet is tunneled through USB - Ethernet will not be faster than USB. – Ghanima Mar 4 '15 at 9:02
  • 3
    why can't you use ethernet for that purpose? Connect all of them to an ethernet hub/switch. – user236012 Mar 4 '15 at 11:43
  • @user236012 wouldn't relaying data through a hub measurably slow the transfer rate? Also, wouldn't a simplex connection be faster than a duplex ethernet connection? – twinlakes Mar 4 '15 at 14:08
  • It depends on how you define "measurably". If delays up to 0.0Xs are OK, I guess that works fine. You also didn't mention how much data/sec you intend to transfer. But even if this is a considerably large amount, Ethernet/USB nevertheless seems to be the fastest option IMO. Otherwise it sounds like you need "real" hardware... – user236012 Mar 4 '15 at 14:32
  • 1
    Is SPI/SSI on the GPIO definitely a poor solution? – twinlakes Mar 4 '15 at 15:27

My question was based on some preconceived misconceptions, which I've since clarified.

The solution: Buy a $15 network switch and use ethernet. The switch requires no setup, then you can connect to each device by local IP. You can even add a WAN connection to the switch to provide internet access to all devices on the switch. It is both the fastest and simplest solution.


If you really want to do this the right way, you should try and use the MIPI interface on the raspberry PI. Good luck however because it's nearly impossible to get documentation out of Broadcom. Here is some information: http://www.petervis.com/Raspberry_PI/Raspberry_Pi_CSI/Raspberry_Pi_CSI_Camera_Interface.html http://www.mobileappsystems.com/blog/raspberry-pi-dsi

A big question here is: how much bandwidth do you need?


You can stream video from raspberry Pi V1 to a Pi V2.

I have a Raspberry PI B model (host A) and has following services enabled: SAMBA (file share), transmission, etc.

Whatever video I have on raspberry PI host name "A", I have exported via NFS and CIFS on the same network.

My second Raspberry Pi (host-name B) B+ running OSMC can find that share and stream the video.


You can stream video from the Pi's to anywhere using UPD packet retransmission of the RAW stream from the cameras. This is very easy and basically has very low lag, we talking about 50ms max. Given your Ethernet has a good connection between the Pi's. You can use gstreamer for this (but requires good knowledge of gstreamer)

The problem is that the receiver then has to render the stream that is coming in and another problem is that the Raspberyy pi h264 encoder on the original Pi does not include time frames (which causes UDP and TCP transmission to fail to synchronise) There are scripts that fix that though.

But depending on what you are doing on the receiver Pi maybe the raw h264 stream is all you need.

UDP transmission is faster than TCP but your receiver has to be able to cope with packet loss. But on a local LAN that is practically never.

Please search this QA for answers about streaming video. You will find a few answers with allot of resources but you may have to go really low level to get what you need.

Your Answer

