直播流RTMP 知識

 

分享直播相關知識點:php

http://blog.csdn.net/kingroc/article/details/50839994html

 

 

#!/bin/bash
# Order Finish Startup
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Socket Sign Handler
# processname: nginx
echo -e "NGINX安裝流媒體擴展RTMP開始 :host_ip"
echo -e ""nginx

#訪問IP地址(正式環境的訪問地址)
host_ip="https://127.0.0.1"web


#設置總執行時間5分釧
alltime=300;
#休息時間長-5分鐘內執行2~3次
step=100數據庫

echo -e ""
echo "====================================================="
echo "Congratulations on your RTMP Install Host : ${host_ip}"
echo "====================================================="
echo -e ""vim

#編繹安裝過程
echo -e ""
cd nginx-1.8.1

./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module-master --with-http_ssl_module

make && make install bash

 

 

 


#啓動端口打開文件(使用1935端口)
vim /etc/sysconfig/iptables
#添加一行
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1935 -j ACCEPT服務器

#重啓防火牆
service iptables restartswoole

 

#配置相關的端口
netstat -tlunapp


#NGINX 配置協議
rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp {
server {
listen 1935;
application vod{
#播放視頻時,查找文件的路徑
play /usr/local/nginx/html/flv;
}
application live {
live on;
max_connections 1024;
#record video; #只錄視頻
record all; #視頻音頻同時錄製
#exec_record_done /usr/local/nginx/sbin/operator_record.py $path $addr;
#exec_record_done, 視頻文件錄製完成後,進行的數據庫類操做
record_unique off;
#record_path /tmp/flv;
#錄製視頻時,視頻文件生成保存的路徑
record_path /usr/local/nginx/html/flv;
}
}
}

 


######========================================================================================================
#RTMP 線上服務器配置流媒體上傳(備份代碼)
#rtmp_auto_push on;
#rtmp_auto_push_reconnect 1s;
rtmp {
server {
listen 1935;
application vod{
#播放視頻時,查找文件的路徑
play /usr/local/nginx/html/flv;
}
application live{
live on;
max_connections 1024;
#record video; #只錄視頻
record all; #視頻音頻同時錄製
record_suffix .mp4; #支持多種格式
access_log logs/rtmp_access.log;
#recorder video{ record audio; }
#exec_record_done, 視頻文件錄製完成後,進行的數據庫類操做
exec_record_done /usr/local/nginx/html/config/rt_water.sh $path $basename;
record_unique off;
#錄製視頻時,視頻文件生成保存的路徑
record_path /usr/local/nginx/html/flv;
exec_kill_signal term;
}
}
}
######========================================================================================================

####安裝FFMPEG####
#從repo導入GPG密鑰:
rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms

#安裝ATRPMS Repo:
rpm -ivh http://dl.atrpms.net/all/atrpms-repo-6-7.el6.x86_64.rpm

#Ffmpeg須要libdc1394-devel,它在epel庫中可用。 執行如下命令安裝epel存儲庫:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm


#從ATRPMS安裝FFMpeg存儲庫:yum -y --enablerepo=atrpms install ffmpeg ffmpeg-devel

yum -y --enablerepo=atrpms install ffmpeg ffmpeg-devel

#版本
ffmpeg -version

 

 

 

#生成水印
ffmpeg -i html/flv/20170731204517649162.flv -i watermark.png -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2" shiiiii.flv


#MP4加水印(加參數 -strict -2 )
ffmpeg -i html/flv/20170731221241722162.mp4 -i html/flv/123.png -strict -2 -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/3" html/flv/shiiiii3.mp4

 


ffmpeg -i /usr/local/nginx/html/flv/2017082117163622150113.mp4 -i /usr/local/nginx/html/flv/img/water.png -strict -2 -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/3" /usr/local/nginx/html/flv/20170821/2017082117163622150113.mp4


#接收流
./ffmpeg -i rtmp://192.168.1.232:1935/live/zhut -acodec copy -vcodec copy -f flv -y /usr/local/src/test.flv

 

 

#生成水印腳本加載
application myapp {
live on;
exec /var/scripts/exec_wrapper.sh $name;
exec_kill_signal term;
}
#exec /usr/local/nginx/html/config/rt_water.sh $name $path;
#######參數補充說明:
#### $name 文件名($basename) == 20170801123625987162
#### $addr 客戶IP == 119.145.5.126
#### $path 文件地址 == /usr/local/nginx/html/flv/20170801123625987162.mp4
#### $filename 文件名帶後綴 == 20170801123625987162.mp4


#暫停1秒
sleep 1s
echo -e ""
echo -e "Start clearUsers | lostBlackOrder"
echo -e ""
#每2分鐘執行一次
for((i=0;i<alltime;i=(i+step)));do
echo -e ""
curl -k "${host_ip}/index.php?controller=flush&action=clearUsers&type=today";
curl -k "${host_ip}/index.php?controller=flush&action=lostBlackOrder&type=today";
echo -e "Once Finish ====== Sleep(${step}) Seconds"
echo -e ""
#休眠時間
sleep $step
done
echo -e "All Finish ======UPDATE"
sleep 1s
#結束
echo -e ""
echo "====================================================="
echo "Finish Handler , Total Time = ${alltime} 秒 ---END "
echo "====================================================="
echo -e ""

###編譯安裝PHP的Swool擴展;phpize
DOWNLOAD: wget http://pecl.php.net/get/swoole-1.9.3.tgz
# tar zxvf swoole-1.7.6-stable.tar.gz
# cd swoole-1.7.6-stable
# phpize
# ./configure --with-swoole --with-php-config=/usr/local/php/bin/php-config
# make && make install**

//ext_dir == swoole.so
extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

 

服務端:命令/usr/local/php/bin/php /usr/local/nginx/html/web/socket/server.php

相關文章
相關標籤/搜索