nginx直播搭建

cd安裝之前,先要切換到存放安裝軟件的目錄,目錄自定義,如:/usr/local

命令:

cd /usr/local

一、安裝ffmpeg以及所需要的輔助工具

1、安裝yasm

http://www.tortall.net/projects/yasm/releases上面獲取到最新的安裝包下載路徑。

安裝:

cd?/usr/local

# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

# tar zxvf yasm-1.3.0.tar.gz

# cd yasm-1.3.0

# ./configure

# make && make install

2、安裝libx264

cd /usr/local

git clone git://git.videolan.org/x264.git

cd x264

./configure --enable-shared --enable-static --disable-asm

make && make install

3、安裝ffmpeg

cd?/usr/local

wget?http://www.ffmpeg.org/releases/ffmpeg-4.2.1.tar.gz

tar -zxvf ffmpeg-4.2.1.tar.gz

cd?ffmpeg-4.2.1

./configure --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib

make && make install

二、安裝nginx和nginx-rtmp-module

1、下載nginx-rtmp-module

cd /usr/local

git clone https://github.com/arut/nginx-rtmp-module.git

2、編譯安裝nginx

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y openssl openssl-devel

cd /usr/local

wget http://nginx.org/download/nginx-1.9.9.tar.gz

tar -zxvf?nginx-1.9.9.tar.gz

cd?nginx-1.9.9

./configure?--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --add-module=/usr/local/nginx-rtmp-module

make && make install

3、配置nginx

server {

? ? ? ? listen? ? ? 8082;

? ? ? ? server_name? localhost;

? ? ? ? #charset koi8-r;

? ? ? ? #access_log? logs/host.access.log? main;

? ? ? ? location /control {

? ? ? ? ? ? rtmp_control all; #可以配置all/record/redirect/drop

? ? ? ? }

? ? ? ? location / {

? ? ? ? ? ? ? ? root /usr/local/www/mp4;

? ? ? ? }

? ? ? ? error_page? 500 502 503 504? /50x.html;

? ? ? ? location = /50x.html {

? ? ? ? ? ? root? html;

? ? ? ? }

? ? }

rtmp {

? ? server {

? ? ? ? listen 1935;? #監(jiān)聽的端口

? ? ? ? chunk_size 4096;

? ? ? ? application live {? #rtmp推流請(qǐng)求路徑

? ? ? ? ? ? live on;

? ? ? ? ? ? recorder rec1 {

? ? ? ? ? ? ? ? record all manual;

? ? ? ? ? ? ? ? record_path /usr/local/www/flv;

? ? ? ? ? ? ? ? record_suffix -%Y-%m-%d-%H-%M-%S.flv;

? ? ? ? ? ? ? ? exec_record_done /usr/bin/sh /usr/local/www/rtmp.sh $path $basename >>/usr/local/www/ffmpeg.log;

? ? ? ? ? ? }

? ? ? ? }

? ? }

}


rtmp.sh內(nèi)容如下:

#!/bin/bash

/usr/local/bin/ffmpeg -y -i $1 -vcodec copy -acodec copy /www/video/mp4/$2.mp4 && pid=$!;

apiUrl="這里是接口地址"

domain="這里是播放地址"

while true

do

? ? existpid=$(ps aux | awk '{print $2}'| grep -w $pid)

? ? if [ ! $existpid ]

? ? then

? ? ? ? rm -rf $1

? ? curl ${apiUrl}${domain}$2".mp4"

? ? ? ? break

? ? else

? ? ? ? echo $pid

? ? ? ? sleep 10

? ? fi

done

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容