How to set up your own private RTMP server using nginx

How to set up your own private RTMP server using nginx

Used this to setup a YouTube like service for a media editing team on an intranet, between this guide, and a little php and SQL. Was able to deliver what they wanted without having to build a java app through Red5. Was a huge help. Didn't realize nginx could do this. Running on CentOS 6 VM via a intranet XenServer flawlessly.
Works great. Set up a Docker version of it (see ), so installing Docker (`sudo apt-get install`) and running `sudo docker run -dp 1935:1935 dvdgiessen/nginx-rtmp-docker` should do everything.
Used the above information to port over a CentOS server, worked like a charm. Was up and running to four different stream hosts, from one source, in under an hour. Good information!
Thanks to you were able to stream our whole gaming event at school.
Twenty PC's on one server and it works fine, not on an raspberry pi but on a normal PC and of cures an 1gbit lan.
With the push function and a rented vserver streaming on multiple platforms was also no problem, one stream out to the rtmp on the vserver and than with 10gbit up to the web.
can i use this method to lower my cpu usage ? when i stream on my pc my cpu blows up and stream stops randomly from obs , so i was thinking maybe i can let my rasperi board handle streaming part
Good stuff to deal with ISP oversea speed throttle and lower down resource use.

There is a way to add stream key for OBS (to rtmp server)?
I'm using a VPS and this VPS also running my small website.
I'm afraid of someone will know my VPS public IP (since it can be discover by reverse website IP).
Since OBS didn't support proxy/socks so I can't tunnel to VPS to make a local proxy/socks and using block all IP from using RTMP protocol except localhost.
Great post! I was able to follow it and within a short period of time I have built a Docker-based solution to stream content via HLS protocol and consume it in a web application using video.js library. Here is my GitHub repo
It took me a while to start using this feature in OBS.
For those who are having trouble transmitting to Facebook, I have adopted a very simple solution that yielded results: Just omit the Facebook server port in the nginx.conf file, like this: "push rtmp:// "
Thus, the stream was received in the preview of Facebook.
Beside that, this solution allowed me to stop using recording settings to stream over UDP, since the RTMP stream are easily accessed through VLC.
Everything works great! However Youtube is giving me a RED stream status with the error: "Please change the video's container format. The current container format is not correct for this configuration." This seems to be a 'badContainer' error, any ideas why and how to fix? I would like a GREEN status in Youtube!
Amazing guide and a powerful way to multistream with Obs Studio. Excellent! Anyone having trouble with YouTube container format I posted a solution in the discussion
This guide finally made me get it to work! I also had to add this to the nginx config:
events { }

Something new? Not sure.
This is almost exactly the kind of thing I was looking for. Thanks for posting!
Thanks for the guide!

Here's my problem: I need to stream sports events to youtube, the camera we're using outputs to hdmi, we use an elgato usb capture device to encode the video feed and outputs it via usb to a computer. Than we grab that encoded feed with OBS and stream it to youtube. Except that the camera needs to be close to the computer (due to hdmi cable length limitations) and we'd like to put the camera farther away from the computer...

Using a raspberry and a usb capture device, would it be possible to stream to the computer over wifi or ethernet?

Something like this:
camera > usb capture card > raspberry > network > computer > youtube
Great review! I have wanted to try this for ages :D
It worked thanks
only issue is facebook live with RTMPS
I was able to loosely follow these instructions and set up a working RTMP server on CentOS 6. Excellent guide!
THis is fantastic. Thank you very much for the post. Quick question do you know if there is a way to buffer the frames for the stream? Say if you have slow internet the frames get uploaded. Yeah i understand there would be a bigger delay but is this possiable?
If someone is using Mac this will change your life.
When i start the nginx via cmd nothing hapends and when i type my ip adress in my broswer to test the server the page doesn't load....
i already create my own server in a raspberry pi 3 b+ but how can i access to the rtmp server from another network?

with the internal IP address works great but i want to stream from another network with the public IP address..

thanks a lot.