Desktop Streaming of ADS-B Transponder Data
I’ll start with a quick discussion of hardware first.
The Raspberry Pi
does not have enough balls (memory and processor power) to handle a constant desktop stream. I tried on two different Pi’s with the same results. The stream would function normally for approximately 2-3 hours and then the units just completely went offline.
There might have been some alternate factors playing a part in this. I turned on the VNC function on both Pi’s to view the unit remotely with RealVNC (which is provided free on the Pi). It is possible that VNC was providing an extra load on the units. CPU usage floated around 50%-60% with DUMP1090, nginx (server), ffmpeg (streamer), one feed to FlightRadar24, one feed to Plane Finder, and VNC running at the same time. A CPU temperature indication can be placed in the toolbar. With all the above items running, CPU temps ran up to 70-80 degrees (even with a fan blowing on the units).
I realized more computing power was needed. I installed the Raspberry Pi Desktop (Jessie)
www.raspberrypi.org/downloads
on to a Dell Inspiron Micro, quad core with 8 GB of memory (At the time of this post, the system has been streaming for over 24 hours with no issues). This could be somewhat overkill though, I would guess a dual core with 4GB would probably work fine.
My first concern was if the RTL receiver (NooElec R820T) would work using the DUMP1090 install described here
www.satsignal.eu/raspberry-pi/dump1090.html
It worked fine. As a note: I had to do the blacklist described on the page above.
I have found a link
ferrancasanovas.wordpress.com/2013/09/26/dump1090-installation/
that describes how to set up the Pi to start DUMP1090 automatically, but I haven’t found a way to view DUMP1090 data with an automatic start. I found sudo cd /dump1090 and then ./dump1090 - - interactive - -net starts the receiver up and displays received data. (No space between dashes, the double dash was showing as one when displayed on this page.)
The FlightRadar24 feed can be installed and activated from instructions provided here
www.flightradar24.com/share-your-data
The Plane Finder feed can be installed from instructions provided here
planefinder.net/sharing/client
Because of the fact I was using a separate computer and not a Pi, I installed via the i386 commands.
Both feeds were set up as AVR(TCP) with an address 127.0.0.1 port 30002
With everything up and running I was able to view both the feeds in a browser FR24 at localhost:8754 or computer’s local IP:8754 (use the ifconfig command to verify the unit’s IP) and Plane Finder at localhost:30053
The feed was quite a bit more difficult to solve. I found a link
obsproject.com/forum/resources/how-to-se...rver-using-nginx.50/
that got my nginx server running.
ffmpeg (or really avconv) was installed via this command: sudo apt-get install libav-tools which I found here
www.recantha.co.uk/blog/?p=4106
The actual command to start the stream was pieced together from digging through several ffmpeg sites. I am “not” a skilled coder and I really have no clue as to the command's components. I just know it works. (previous tries resulted in fuzzy screens or only half the desktop being displayed.)
To start nginx:
/usr/local/nginx/sbin/nginx
To start the stream:
avconv -f x11grab -framerate 30 -video_size 1824x984 \
-i :0.0+0,0 -c:v libx264 -preset veryfast -maxrate 1984k -bufsize 3968k \
-vf "format=yuv420p" -g 60 -c:a aac -b:a 128k -ar 44100 \
-f flv rtmp://192.168.0.131:1935/live
The video size is determined by your actual screen resolution and the address (192.whatever) is the computer’s own internal LAN IP.
I believe that there are no firewall setting changes needed on any Raspberry distro and I didn’t dig into that at all.
Port 1935 will need to be opened on your router for the unit’s IP address.
The stream can be seen with VLC (Network Stream) using either the internal IP:1935/live or your external address:1935/live (with port 1935 open on router). The stream address is rtmp://your IP:1935/live
As a side note: I found using sudo -i will give you admin privileges without having to type sudo before every command.