Video through the Mesh

69 views
Skip to first unread message

Leonard Payne

unread,
Mar 30, 2017, 9:14:48 AM3/30/17
to Village Telco Development Community

Hi Guys

i was viewing one of threads where Vishan came in to start discussing video and joint classroom work etc.

Got me interesting because one of the projects I'm working on is TV through the mesh.

My approach and work has been as follows:

There has been tremendous work done on embedding features such as VOIP and  RACHEL within SECN
but I was wondering whether to actually leave the MP's to do what they are good at, i.e. running an mesh and offload the computing work off on to another unit such as a Raspberry Pi

To this end I started to work on a Raspberry Pi 2 which worked ok and so I proceeded to see whether it could be done smaller and I found that it worked on a Raspberry Zero. The slowest thing was the apt-get upgrade and the make procedures.

What we have running is the Zero running standard Raspian out of the box, nginx with rtmp extensions. The unit is plugged into the LAN port of an AR150 running SECN5 where it gets its IP address.

Its then a simple matter of running a free app on your iphone or whatever, and having logged on to the nearest wifi point on the mesh, direct the output stream to the IP address of the Raspberry Zero.

You can then use a RTMP viewer such as the Free VLC package to view it up.

If anyone is interested in a step-by-step blond proof instruction sheet, let me know

Next step is to try video conferencing

Best
Leonard

T Gillett

unread,
Mar 30, 2017, 9:07:07 PM3/30/17
to village-telco-dev
Hi Leonard

That sounds like an interesting project. Have you tested with a few client devices to see how the bandwidth on the mesh holds up?

If you would like to send me the documentation I can look at adding it to the VT Wiki pages.

An overview of your whole network would probably also be of interest to the VT community.

Regards
Terry



--
You received this message because you are subscribed to the Google Groups "Village Telco Development Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to village-telco-dev+unsubscribe@googlegroups.com.
To post to this group, send email to village-telco-dev@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/village-telco-dev/b3a58f28-5f4e-4e4c-87f5-12213bd24080%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Steve Song

unread,
Apr 1, 2017, 11:45:59 AM4/1/17
to Village Telco Dev
On 30 March 2017 at 22:07, T Gillett <tgil...@gmail.com> wrote:
Hi Leonard

That sounds like an interesting project. Have you tested with a few client devices to see how the bandwidth on the mesh holds up?

If you would like to send me the documentation I can look at adding it to the VT Wiki pages.

An overview of your whole network would probably also be of interest to the VT community.

I would second that.  Would be very interested to hear more about your work.

Cheers... Steve
 

For more options, visit https://groups.google.com/d/optout.

Leonard Payne

unread,
Apr 3, 2017, 6:10:02 PM4/3/17
to Village Telco Development Community




Thanks for your comments guys.

 

Since my first post regarding video, I have found a much better solution which provides for video conferencing, In this post I am going to firstly, describe my network, secondly describe the original solution, and thirdly describe the web conferencing solution. I will conclude with some comments on work to be done.

 

 

1.     My Network

 

The network in place at the moment is in my own house/testbed. I am a retired man and more of a tinkerer although I had a background in comms many years ago before becoming a priest (strange directions I know). But retired now and also moved to a new area. I have not yet linked up with people to talk about a community network. However the POC still works.

 

Network consists of 6 nodes at present.

 

Node 1 – 10.130.1.101 --- On a GL-AR150

Node 2 – 10.130.1.102 --  On a GL-AR150

Node 3 – 10.130.1.103 --  On a GL-AR150

Node 4 – 10.130.1.104 –- On a VT MP02

Node 5 -  10.130.1.252 --- On a GL-AR150- --- Asterisk Node

Node 6 – 10.130.1.254 –- On a VT-MP02 RACHEL with Ethernet Internet Link

 

I should add that at this stage, each node has a discrete SSID – it helps to isolate units more easily although I recognise that it might be better at some stage to go for a single SSID across the network.

 

I also recognise the DHCP problem being a single point of failure.

 

This has been quite stable but until I find some ‘friends’ to work with, my experiments with aerials etc will have to wait.

 

My vision, if I have one, is to provide some form of local communications in a ‘grid down’ situation.

 

2.     The first priority in an original scenario, was to carry audio and video from a webcam across the network so that others could view it. A very raw TV station for announcements etc. I did not find a solution for the target Raspberry platform as the modules recommended, “Motion”, did not carry the audio.

 

Eventually I discovered that the Raspberry Pi would run RTMP under a web server called ‘nginx’ (engine-x). I even ran it on a Pi Zero. (The price differential between a Zero and a Pi 3 is about Sterling 20 and you get far more ‘bang for your buck” but I like small things)


Once you’ve got a RaspberryPi up and running under its default operating system, Raspbian you can use the following instructions to set it up as a RTMP server

 

https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

 

Once this is done, and you have plugged it in to your MP node in the LAN Port, ensure that you have made a note of the IP address.

 

The document from obsproject.com, mentions OBS as the program you need to use to transmit your camera and other feed directly to the RTMP server you have created. It's a great program and its free – check it out – it works a treat.  Available for Mac OSX, Windows and Linux.



There is also an App for iOS (iPhone and iPad) called “Broadcast Me” (Free).

 

The Pi Zero has a single micro-USB port to which I added a three port USB hub +  Ethernet adaptor at Sterling 10.

 

https://shop.pimoroni.com/products/three-port-usb-hub-with-ethernet-and-microb-connector

 

 (You can see why it’s probably wiser to go for the PI 3 in the first place)

 

I connected the Ethernet Port to the LAN Port on Node 1.

 

Connected my Mac to the AP on Node 5, and, using OSB, streamed by Webcam. This hit the Pi Zero connected to Node 1 fine. Connected my Windows machine using VLC, a free file and stream player, to the stream coming out of Pi Zero and was fine.


I have noted that for some reason, VLC on the Mac does not want to play the stream.  It says wrong protocol and I have not yet found replacement RTMP viewers because a better platform came along.

 

I haven’t yet tried multiple viewers. That's the next step when the good Lord provides me with another pair of hands J

 

1.     Webconferencing. I finally found the missing piece by running something called UV4L + WebRTC presence on the Raspberry Pi and connecting this to Node 4. The Raspberry Pi was allocated the IP of 10.130.1.225.  You will required to download a Raspberry image. Check:

 

https://www.linux-projects.org/rpi-videoconference-demo-os/

 

for instructions and download link etc. It doesn’t work on a Pi Zero. I have it working on a Pi 3.  You need to burn the image onto a microSD card and boot the Raspberry Pi from it. It’s self loading and IIRC, it didn’t need any configuration.

 

Once you go to the IP address on your browser, you are presented with this:


 

Much of the information here is to do with using the Raspberry + a Camera as the device but in our case, we look at the second field “Join the Room Hosted by your Raspberry Pi”

 

Put your name or anything else in this field and “Join the Room”.

 

I joined this room on three machines through three different nodes and here are the results


I reckon you could get six attendees here without too  much trouble. Video is stable. Audio burps from time to time but I get that with Google Hangouts. Using a Raspberry as the WebRTC server attached to a bunch of AR150’s is pretty good I reckon.

 

My recommended browser would be Firefox and of course you have to ‘approve’ useage of your Microphone and Camera. NOTE WELL. Does not work on Smartphones or Pads. The browsers on those devices do not support WebRTC. There is one out there that supposedly works, but it is crippled in that the rendering is shocking – completely hides the conversation you need to have to authorise useage of Mic+Cam


I wouldnt know how to check statistics on my boxes


4. There still a bunch of work to do – I need to concentrate on one thing at a time. This system works quite well. I would like to hack the html page apart to give us fewer options and make it simpler for people. Before stumbling on the WebRTC solution, I did try implementing FreePBX+Asterisk and try Video Calls with Zoiper but it didn't work.

 

Onwards and Upwards

Leonard

 

 

 



Auto Generated Inline Image 1
Auto Generated Inline Image 2
Reply all
Reply to author
Forward
Message has been deleted
0 new messages