https://www.cnblogs.com/cocoajin/p/4353767.html
一:RTMP
RTMP流媒体协议是 一套 Adobe 开发的音频视频实时传输协议;
二:Nginx-rtmp
nginx-rtmp 是一个基于nginx的 RTMP服务模块,开源,免费
https://github.com/arut/nginx-rtmp-module
三:在 ubuntu server 14 安装流程
1.先下载安装 nginx 和 nginx-rtmp 编译依赖工具
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
2. 创建一个工作目录,并切换到工作目录
mkdir ~/working
cd ~/working
3. 下载 nginx 和 nginx-rtmp源码
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
4. 安装unzip工具,解压下载的安装包
sudo apt-get install unzip
5.解压 nginx 和 nginx-rtmp安装包
tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip
6. 切换到 nginx-目录
cd nginx-1.7.5
7.添加 nginx-rtmp 模板编译到 nginx
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
8.编译安装
make
sudo make install
9. 安装nginx init 脚本
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults
10. 启动和停止nginx 服务,生成配置文件
sudo service nginx start
sudo service nginx stop
11. 安装 FFmpeg
sudo apt-add-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg
12. 配置 nginx-rtmp 服务器
打开 /usr/local/nginx/conf/nginx.conf
在末尾添加如下 配置
复制代码
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
}
application live360p {
live on;
record off;
}
}
}
复制代码
13. 保存上面配置文件,然后重新启动nginx服务
sudo service nginx restart
14. 如果你使用了防火墙,请允许端口 tcp 1935
16: 使用 客户端,使用 rtmp协议进行视频实时采集
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-your-set
在这里视频采集我使用的是 iPhone5 的 采集程序 https://github.com/jgh-/VideoCore
[_session startRtmpSessionWithURL:@"rtmp://192.168.86.246/live/" andStreamKey:@"test"];
17. 在上面客户端采集的过程之中,可以使用 vlc 播放器打开 rtmp 实时流
rtmp://your.vultr.ip/live/stream-key-you-set
打开上面的流,进行测试实时的效果
18: 关于 nginx-rtmp 更多配置
https://github.com/arut/nginx-rtmp-module/wiki/Directives
https://www.jianshu.com/p/0296a7be7928
https://blog.csdn.net/zizi7/article/details/54347223
//解压nginx源码包
tar -xzvf nginx-1.10.0.tar.gz
//进入nginx源码目录
cd nginx-1.10.0
//安装rtmp扩展模块
./configure 刚才复制的nginx configure参数 --add-module=rtmp扩展包目录
如:
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/usr/local/nginx/extend_module/nginx-rtmp-module
//编译
make
//安装
make install
//重启nginx
service nginx start
service php-fpm start
//查看安装状态
nginx -V
#尾部加入
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4000;
application hls { #rtmp推流请求路径
live on;
record off;
}
}
}
//ffmepg推流(本地准备一个视频文件)
ffmpeg -re -i 本地视频文件的绝对路径(如/Users/flycorn/Downloads/demo-hls.mp4) -vcodec copy -f flv rtmp://服务器IP:1935/hls/test
// 如:
ffmpeg -re -i /Users/flycorn/Downloads/demo-hls.mp4 -vcodec copy -f flv rtmp://服务器IP:1935/hls/test
//修改rtmp配置
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4000;
application hls { #rtmp推流请求路径
live on;
hls on;
hls_path /home/hls/test; #视频流文件目录(自己创建)
hls_fragment 3s;
}
}
}
//修改server的配置
server
{
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name www.lnmp.org;
index index.html index.htm index.php;
root /home/wwwroot/default;
#error_page 404 /404.html;
include enable-php.conf;
#加入hls支持
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
#或 application/x-mpegURL
video/mp2t ts;
}
alias /home/hls/test/; #视频流文件目录(自己创建)
expires -1;
add_header Cache-Control no-cache;
}
#end...
#以下代码省略.....
}