Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # This is nginx setup of sneakyjoe.ru
- # Based on obs forums and helping squad articles.
- # Made for personal use and sharing with the crowd.
- # Updated with new tweaks for the best job each time I learn something new.
- # WARNING! Streaming WILL drop all the fucking time if you stream to server higher than 1920x1080/60
- # WARNING! This will 100% work only on UBUNTU 16.04 with HWE Kernel enabled on installation.
- LOCALE change file set to "LANG=en_EN.UTF-8"
- /etc/default/locale
- ________________________________________________________________________
- SETUP IP AND DNS:
- sudo mcedit /etc/network/interfaces
- # This file describes the network interfaces available on your system
- # and how to activate them. For more information, see interfaces(5).
- source /etc/network/interfaces.d/*
- # The loopback network interface
- auto lo
- iface lo inet loopback
- # The primary network interface
- auto enp35s0
- iface enp35s0 inet static
- address 192.168.0.55
- netmask 255.255.255.0
- gateway 192.168.0.1
- dns-nameservers 208.67.222.222 8.8.8.8
- _______________________________________________________________________
- FFMPEG install
- sudo wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
- sudo wget http://sneakyjoe.ru/go/ffmpeg-release4.1.3-amd64-static.tar.xz
- sudo tar -xJf ffmpeg-release-amd64-static.tar.xz
- sudo mkdir /usr/bin/ffmpeg-dir
- sudo mv -v ~/ffmpeg-4.1.3-amd64-static/* /usr/bin/ffmpeg-dir
- sudo ln -s /usr/bin/ffmpeg-dir/ffmpeg /usr/bin/ffmpeg
- ______________________________________________________________________
- NGINX install:
- sudo mkdir nginx
- cd nginx
- sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
- sudo wget http://nginx.org/download/nginx-1.13.8.tar.gz
- sudo wget https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/dev.zip
- sudo tar -zxvf nginx-1.13.8.tar.gz
- sudo apt-get install unzip
- sudo unzip dev.zip
- cd nginx-1.13.8
- sudo ./configure --with-http_ssl_module --without-http_gzip_module --add-module=../nginx-rtmp-module-dev
- sudo make
- sudo make install
- sudo /usr/local/nginx/sbin/nginx
- ______________________________________________________________________
- CONFIGURE template:
- sudo mcedit /usr/local/nginx/conf/nginx.conf
- sudo /usr/local/nginx/sbin/nginx -s stop
- sudo /usr/local/nginx/sbin/nginx
- ______________________________________________________________________
- AUTOSTART with diagnostics:
- sudo mcedit /etc/rc.local
- exec 2> /tmp/rc.local.log # send stderr from rc.local to a log file
- exec 1>&2 # send stdout to the same log file
- set -x # tell sh to display commands before execution
- sleep 5s
- # sudo ethtool -s enp35s0 speed 1000 ## This is for gigabit networks to enable higher speeds
- /usr/local/nginx/sbin/nginx
- ______________________________________________________________________
- If cant stream to youtube because of IPv6 error add 3 lines to the end of file:
- sudo mcedit /etc/sysctl.conf
- net.ipv6.conf.all.disable_ipv6 = 1
- net.ipv6.conf.default.disable_ipv6 = 1
- net.ipv6.conf.lo.disable_ipv6 = 1
- ______________________________________________________________________
- RESTART template:
- sudo /usr/local/nginx/sbin/nginx -s stop
- sudo /usr/local/nginx/sbin/nginx
- ______________________________________________________________________
- VODCAST template:
- # Streams files from such template adding a text over my webcam position. File formats my custom %Y.%m.%d___%H-%M___1080.flv and OBS no spaces:
- # 2018.12.31___23-59___1080.flv for 1080p files
- # 2018-02-06 03-31-46.mkv for 1440p files
- # Requires a read-access for file /home/sneakyjoe/RECS/font/consolas.ttf
- filename=$1
- extension=${filename:26:3}
- echo $extension
- if [ "$extension" = "flv" ]; then
- fdate=${filename:0:10}
- ftime=${filename:13:5}
- vodtime="$fdate $ftime"
- echo $vodtime
- sudo ffmpeg -re -i ~/RECS/$1 -b:v 6000k -minrate 5500k -maxrate 6500k -bufsize 7000k -vcodec libx264 -preset faster -s 1920x1080 -sws_flags bicubic -r 60 -x264-params nal-hrd=cbr:force-cfr=1:keyint=120 -vf drawtext="fontfile=/home/sneakyjoe/RECS/font/consolas.ttf:text='Запись от $vodtime':fontcolor=white:fontsize=12:box=1:[email protected]:boxborderw=5:x=(w-text_w)-150:y=(h-text_h)-10" -acodec aac -ab 160k -f flv rtmp://localhost/vodcaster/
- else
- fdate1=${filename:0:4}
- fdate2=${filename:5:2}
- fdate3=${filename:8:2}
- ftime=${filename:11:5}
- vodtime="$fdate1.$fdate2.$fdate3 $ftime"
- echo $vodtime
- sudo ffmpeg -re -i ~/RECS/$1 -ss 00:00:03 -b:v 6000k -minrate 5500k -maxrate 6500k -bufsize 7000k -vcodec libx264 -preset faster -s 1920x1080 -sws_flags bicubic -r 60 -x264-params nal-hrd=cbr:force-cfr=1:keyint=120 -vf drawtext="fontfile=/home/sneakyjoe/RECS/font/consolas.ttf:text='Запись от $vodtime':fontcolor=white:fontsize=33:box=1:[email protected]:boxborderw=5:x=(w-text_w)-380:y=(h-text_h)-20" -acodec aac -ab 160k -map 0:v:0 -map 0:a:5 -strict -2 -f flv rtmp://localhost/vodcaster/
- fi
- ______________________________________________________________________
- Stream to receiver application.
- NGINX template:
- rtmp {
- server {
- listen 1935;
- chunk_size 4000; # max size 16777215
- ## Uncomment in case of frequent disconnections
- ## PacKoMMEHTuPyu ECJlu O6C 4ACTO OTKJll04AETC9\
- # ping 1m;
- # ping_timeout 10s;
- # drop_idle_publisher 10s;
- application receiver
- {
- live on;
- meta copy;
- # This sends stream to transcoder
- push rtmp://127.0.0.1/transcoder/;
- # Add source streams here you don't want to transcode
- # Twitch source
- # push rtmp://live-fra.twitch.tv/app/************************;
- # Youtube source
- # push rtmp://b.rtmp.youtube.com:1935/live2/************************;
- }
- application transcoder
- {
- live on;
- meta copy;
- # 1080 all sites
- exec ffmpeg -i rtmp://127.0.0.1/transcoder/
- -b:v 6000k
- -minrate 5500k
- -maxrate 6500k
- -bufsize 7000k
- -vcodec libx264
- -preset faster
- -s 1920x1080
- -sws_flags bicubic
- # -vf unsharp=3:3:1.5 # Video sharpening
- -r 60
- -x264-params nal-hrd=cbr:force-cfr=1:keyint=120
- -acodec aac
- -ab 160k
- # -strict -2
- -f flv rtmp://127.0.0.1/transcoded-1080/
- # -loglevel verbose
- # 2>>/home/sneakyjoe/ffmpeg-log.txt
- ;
- # 560 periscope
- # exec ffmpeg -i rtmp://127.0.0.1/transcoder/
- # -b:v 740k
- # -minrate 600k
- # -maxrate 800k
- # -bufsize 800k
- # -vcodec libx264
- # -preset fast
- # -s 960x540
- # -sws_flags lanczos
- # -r 30
- # -x264-params nal-hrd=cbr:force-cfr=1:keyint=60
- # -acodec aac
- # -ab 90k
- # -strict -2
- # -f flv rtmp://127.0.0.1/transcoded-560/;
- }
- application transcoded-1080
- {
- live on;
- meta copy;
- # Twitch transcoded
- # push rtmp://live-fra.twitch.tv/app/************************;
- # youtube transcoded
- # push rtmp://b.rtmp.youtube.com:1935/live2/************************;
- # Restream.io transcoded
- # push rtmp://eu-east.restream.io/live/************************;
- # dailymotion transcoded
- # push rtmp://publish.dailymotion.com/publish-dm/************************;
- # Cybergame transcoded
- # push rtmp://premium.cybergame.tv:1953/************************;
- # GoodGame transcoded
- # push rtmp://msk.goodgame.ru:1940/live/************************;
- # Mixer (beam.pro) transcoded
- # push rtmp://ingest-fra.mixer.com:1935/beam/************************;
- ## This block will save your transcoded stream to record_path. Remember to create ~/RECS and do "chmod 777 ~/RECS"
- # recorder myrec
- # {
- # record all;
- # record_path /home/sneakyjoe/RECS; #Change sneakyjoe with your username
- # record_suffix _%Y.%m.%d___%H-%M___1080.flv;
- # }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement