DJI Go Custom RTMP Live Streaming guide?
57857 18 2016-8-13
Uploading and Loding Picture ...(0/1)
o(^-^)o
hungyg
lvl.1
Flight distance : 2103950 ft
Hungary
Offline

So in a recent update DJI added the new "Custom RTMP" option to the live streaming menu in the DJI Go app, but I can't find a guide anywhere on how to actually use it.

I'd like to stream my drone's image to my PC, to then rebroadcast from OBS to twitch.

I tried several different kinds of software, but none of them seems to get the RTMP image from the drone, and the DJI Go app just stays on "connecting".

Any info is appreciated.
2016-8-13
Use props
john_mcpherson
lvl.1
  • >>>
Offline

I would like to see this as well. I see articles that say Wowza server but then there are no instructions.
2016-8-27
Use props
feastspider
lvl.4
United States
Offline


Visit Responder Air for a easy to use cost effective streaming service!

Ubuntu 18: sudo apt-get install nginx libnginx-mod-rtmp
google is your friend.


This is outdated now!  
I use digitalocean for my video streaming servers, https://m.do.co/c/23f41a57675c  1st signup and create a ubuntu 64 bit 14.04 droplet. The droplet the $5/mo
You will need putty (How-to) and to learn a bit about Linux after you successful ssh to your server then this will get you up and running.
**Note cellular service may affect the streaming since the go app uses a fixed rate you have to have good strong coverage since the go app streams a a fixed bitrate!(I'll work on a local converter using a raspberry pi to maybe be a adaptive bitrate for lower qualilty streaming sorta the man in the middle concept. ((DJI SDK Team if you could support linux on the P3 that would be great!))
  
Next:
Installing Nginx and Nginx-RTMP

Install the tools required to compile Nginx and Nginx-RTMP from source.

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
Make a working directory and switch to it.

mkdir ~/working
cd ~/working
Download the Nginx and Nginx-RTMP source.

wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Install the Unzip package.

sudo apt-get install unzip
Extract the Nginx and Nginx-RTMP source.

tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip
Switch to the Nginx directory.

cd nginx-1.7.5
Add modules that Nginx will be compiled with. Nginx-RTMP is included.

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Compile and install Nginx with Nginx-RTMP.

make
sudo make install
Install the Nginx init scripts.

sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults
Start and stop Nginx to generate configuration files.

sudo service nginx start
sudo service nginx stop
Installing FFmpeg

Add the FFmpeg PPA.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
Update the package lists.

sudo apt-get update
Install FFmpeg.

sudo apt-get install ffmpeg
Note: The apt-add-repository command may not be installed in some cases. To install it run sudo apt-get install software-properties-common.
Configuring Nginx-RTMP and FFmpeg

Open the Nginx configuration file.

sudo nano /usr/local/nginx/conf/nginx.conf
Append the following.

rtmp {
    server {
            listen 1935;
            chunk_size 4096;

            application live {
                    live on;
                    record off;
                    exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
            }
            application live360p {
                    live on;
                    record off;
        }
    }
}
After you've added the above, you can customize settings such a video bitrate, audio bitrate and resolution. These changes will only be applied to the lower quality stream. To add more qualities, copy and paste the exec ffmpeg line and change the settings. You'll also need to create a new application. You can do this by copying and pasting the live360 example that has been included. Don't forget to update the exec ffmpeg line with the address of the new application. You can do this by changing the final RTMP address in the exec ffmpeg line.

Note: Changing the value after -b:v will change the video bitrate. This is measured in kilobits per second. Changing the value after -b:a will change the audio bitrate. This is measured in kilobits per second. Changing the value after -s will change the resolution.
Save the file by pressing Control and X together. Restart Nginx.

sudo service nginx restart
Note: For best performance, each stream being converted should have its own CPU core. For example two qualities, 360P and 480P are being created from a 720P stream. A Vultr instance with at least two CPU cores should be used.
Security Note

If you're using a firewall, you'll need to make sure TCP 1935 is allowed.

The current configuration allows anyone to stream to your server. We can fix this by only allowing certain IP addresses the publish permission. So you might want to shut your server down when your not using it.


Finally in the app set your cutom rtmp stream to rtmp://yourdropletip/live/mydjidrone and it should be streaming you will need a custom player and a few more tweaks after that.
I've had really good luck on digital ocean. I run my storm chasing site and portal off ot them.







2016-11-23
Use props
HenryU
lvl.2
Flight distance : 4298 ft
Mexico
Offline

Thank you so much. This is very helpful.

One question: what URL would I use with VLC to view the video stream? Is it the same, i.e., rtmp://yourdropletip/live/mydjidrone?
2017-2-10
Use props
b barris
lvl.2
United States
Offline

Hi, Our app can broadcast live to any site, right now for beta purposes it only broadcasts to our site (www.skytubelive.com) but in our next, enterprise, release, will be able to broadcast anywhere you specify.  If you want to be a beta user of the app, let me know, and I'll hook you up.  Android only for now.
Thanks,
Brian
www.skytubelive.com
www.instagram.com/skytubelive
2017-5-20
Use props
djiuser_4KTfHR2
New

Germany
Offline

Thank you
Payam
-----



2017-9-3
Use props
Neo Gabriel
New

Dominican Republic
Offline

feastspider Posted at 2016-11-23 06:38
I use digitalocean for my video streaming servers, https://m.do.co/c/23f41a57675c  1st signup and create a ubuntu 64 bit 14.04 droplet. The droplet the $5/mo
You will need putty (How-to) and to learn a bit about Linux after you successful ssh to your server then this will get you up and running.
**Note cellular service may affect the streaming since the go app uses a fixed rate you have to have good strong coverage since the go app streams a a fixed bitrate!(I'll work on a local converter using a raspberry pi to maybe be a adaptive bitrate for lower qualilty streaming sorta the man in the middle concept. ((DJI SDK Team if you could support linux on the P3 that would be great!))

Everything good, but when I try to to start the nginx an error comes up:

drone@ubuntu:/usr/local/nginx/conf$ sudo service nginx start
[sudo] password for drone:
* Starting Nginx Server. . .
nginx:  [emerg] unknown directive “rtmp” in /usr/local/nginx/conf/nginx.conf:118
                                                                                                                                                       [fail]
2018-2-2
Use props
KD7CAO
lvl.1

United States
Offline

I have been trying all day to get this to work. Rather than use a droplet server I went with a fresh install of Linux Mint 18 Cinnamon 64 bit. I had originally thought of using a Raspberry Pi Model 3B, but didn't have a keyboard handy.

Anyways, I had an issue with the NGINX 1.7.5 kept getting an error that said it was to old. So I went out and grabbed the latest and greatest. Most everything else worked. But, I can not get my unit to actually connect. I also setup a DDNS address and used that to help with IP issues. Still no luck. Ports open on my firewall for testing too.

I appreciate your effort, however if I could make one suggestion and that is it was hard to tell what was a command I had to put in and what was something you were telling me to do as the next step.
2018-2-19
Use props
KD7CAO
lvl.1

United States
Offline

Well my system apparently was running in OEM developer mode. Now that I am running a full Mint 18 Cinnamon 64, I am reinstalling again. I am getting a "PPA xenial error" any thoughts?

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
'This PPA does not support xenial'
Cannot add PPA: ''This PPA does not support xenial''.
2018-2-19
Use props
KD7CAO
lvl.1

United States
Offline

Okay. Decided to build from source. That went well with the guides from here. I chose to use the long script commands. Copy Paste.

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

2018-2-19
Use props
KD7CAO
lvl.1

United States
Offline

Okay. I am completely hung here now:

air701-mintserver ffmpeg # ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Unknown option "--with-http_ssl_module".
See ./configure --help for available options.

I can not find a solution to fix.
2018-2-19
Use props
KD7CAO
lvl.1

United States
Offline

Well I just discovered this when digging into it further. I found this in the ./configure file.

(: ${foo?}) 2> /dev/null
E2="$?"

if test "$E1" != 0 || test "$E2" = 0; then
    echo "Broken shell detected.  Trying alternatives."
    export FF_CONF_EXEC
    if test "0$FF_CONF_EXEC" -lt 1; then
        FF_CONF_EXEC=1
        try_exec bash "$0" "$@"
    fi
    if test "0$FF_CONF_EXEC" -lt 2; then
        FF_CONF_EXEC=2
        try_exec ksh "$0" "$@"
    fi
    if test "0$FF_CONF_EXEC" -lt 3; then
        FF_CONF_EXEC=3
        try_exec /usr/xpg4/bin/sh "$0" "$@"
    fi
    echo "No compatible shell script interpreter found."
    echo "This configure script requires a POSIX-compatible shell"
    echo "such as bash or ksh."
    echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH."
    echo "Instead, install a working POSIX-compatible shell."
    echo "Disabling this configure test will create a broken FFmpeg."
    if test "$BASH_VERSION" = '2.04.0(1)-release'; then
        echo "This bash version ($BASH_VERSION) is broken on your platform."
        echo "Upgrade to a later version if available."
    fi
    exit 1
fi
2018-2-19
Use props
ROCC
lvl.1
Flight distance : 18445 ft
Jordan
Offline

Has anyone done this with Wowza?
2018-3-8
Use props
Dronestream
lvl.1

Offline

Hi, an old post but if anyone is still interested in streaming via RTMP theres a new app for this. A streaming platform with one use case in mind - www.dronestream.app
2018-5-22
Use props
hizka
New
Colombia
Offline

HenryU Posted at 2017-2-10 08:23
Thank you so much. This is very helpful.

One question: what URL would I use with VLC to view the video stream? Is it the same, i.e., rtmp://yourdropletip/live/mydjidrone?

Yes, it´s the same link on VLC
2018-7-16
Use props
hizka
New
Colombia
Offline

ROCC Posted at 2018-3-8 01:49
Has anyone done this with Wowza?

yes it work but empty the "Stream" portion
2018-7-16
Use props
feastspider
lvl.4
United States
Offline

Thanks to those who looked at my posts, Sorry about the follow up to some. I am about 80% Sure I will be releasing a live DJI Tracking app with and simple map portal where the live stream service and map are setups and have minimal configuration problems for the users it will run on a $5.00 a month Digital ocean VPS for basic situational awareness functions and probably the ability for live messaging with the pilot application. I might put a $15 or $25 dollar price on it to help me acquire funds for a Mavic Pro again. The client end will be almost the same as the screenshot above. The pilot app will be a simple install and fly type application for Android. I am also finishing up a more high-end DJI KLV style damage assessment with augmented reality markers based on GIS data or a GIS Server (ESRI, Boundless and so forth) Georeferenced coordinates from the live video with 1 tap anywhere on the ground in the live video feed. This allows you to geotag data to a GIS server for instance damage assessment and can be queried from property parcels for preliminary values and figures also works for situational awareness uses like sending GPS locations to first responders, marking floating hazmat containers and so forth. Along with a few other applications.
2018-9-16
Use props
Gwen1405
lvl.2
Flight distance : 2543038 ft
Belgium
Offline

Hi all,

There is also a docker product : https://hub.docker.com/r/tiangolo/nginx-rtmp/
Docker, you can install it on several platforms (Raspberry PI, Hosted servers, ...) with a complete image with all needed components.

Depending of your needs of course....

Kr,

Gwenael
2018-12-20
Use props
dreweydrew
New

France
Offline

are you still streaming live from your drone ?
2019-4-25
Use props
Advanced
You need to log in before you can reply Login | Register now

Credit Rules