The base version of this plugin is quite better than the base service provided by JetPack. I haven’t been able to compare their “premium” services thought.
I labelled this using “Basilica website” because I’m trying to compile a list of the WordPress plugin used in the old “nuked” pastoraledesio.it website. Its old contents are now archived on pastoraledesio.home.blog
I’m writing these notes up, mainly as a reference for me in the future – but they might just help others looking to do similar.
Issue:
During the Coronavirus season, our church, like many, ventured into the world of streaming services, primarily to YouTube but with an eye to multiplexing to both YouTube and Facebook at the same time.
Initially, the plan was to stream from OBS Studio to an intermediate platform, restream.io
We tested with OBS sending the stream to restream and for the first week, everything worked fine. Then, the second week about 10 minutes before due to go live restream.io suffered an outage. Fortunately, we were quickly able to flip to sending our stream directly to YouTube and our broadcast worked successfully. However, for me, an issue with a shared service leaves a sour taste and so began the journey to discover what would be involved in running our own RTMP server.
It turns out the solution has been relatively straightforward…
Our solution:
Firstly, we signed up for a new VPS with vultr.com We opted for a 1 x vCPU, 2GB RAM, High-Frequency machine with 64GB SSD storage, and 2TB monthly bandwidth. Research suggested that RTMP streaming/multiplexing is not particularly CPU/RAM intensive and is more about bandwidth consumption.
Once the VPS was provisioned, we selected the Ubuntu 18.04 LTS install image. The machine was duly created and connected via SSH to its IP shown in the portal.
Basic Installation:
Update all packages:
root@hostname# sudo apt-get update
root@hostname# sudo apt-get upgrade
Then install NGINX:
sudo apt-get install nginx
sudo apt install libnginx-mod-rtmp
At this point you can test that NGINX has been installed correctly by testing with your browser:
http://<your-servers-IP-address>
If successful, you should see the NGINX default page:
Configuration for YouTube
Now, on to adding the RTMP config.
Edit the nginx.conf file as follows:
nano /etc/nginx/nginx.conf
Add a section at the bottom of the file as follows:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# Edit and enable line below to push incoming stream to YouTube
# push rtmp://x.rtmp.youtube.com/live2/<your-Stream-Key-Copied-From-YouTube>;
}
}
}
If you aren’t familiar with YouTube Live stream settings the key can be obtained from the following screens:
Save the nginx.conf file (Ctrl +X ) and start the NGINX service
root@hostname# systemctl restart nginx
Best practice would suggest installing a firewall package on your VPS to minimise its exposure to the Internet.
For me, I created 4 simple rules permitting inbound SSH from my home ISP’s fixed IP, and a friend’s IP plus equivalent rules permitting inbound TCP1935 from each of our addresses.
We chose to use OBS to create the stream footage, therefore we had to fill in the stream details within OBS Stream settings:
If you then click on Start Streaming within OBS, your OBS content should start appearing within your YouTube Studio account (albeit with a 30second delay).
Facebook Live
Facebook made some changes a little while back to only accepts RTMPS streams which NGINX and the RTMP can’t natively support. So, another jigsaw piece needs to be added to the puzzle. Enter stunnel!
Edit your nginx.conf file to include a new push statement.
Want to export / import WordPress theme customizer settings? Here’s a step by step guide on how to import / export theme customizer settings in WordPress.
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.