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