通过nginx+nginx_rtmp+ffmpeg实现推流
- 安装部署nginx
nginx的安装在另外一篇文章中有介绍:https://www.jianshu.com/p/2a93cee33fc3 - 安装部署nginx_rtmp
nginx_rtmp为nginx的插件,下载安装后通过编译以及修改conf配置文件的方式加载插件(需要nginx采用编译安装的方式)。
- 下载并解压模块:
- wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
- unzip master.zip
- 停止原来的Nginx服务:
- nginx -s stop
- 配置并编辑:
- ./configure --prefix=/usr/local/nginx --add-module=/usr/local/RTMP/nginx-rtmp-module.1.1.4 --with-http_ssl_module
- make -f objs/Makefile
- make -f objs/Makefile install
- make
- make install
- 复制Nginx:
- cp objs/nginx /usr/local/nginx/sbin
- 在安装nginx的时候加载插件,这种方式与上面的安装效果相同:
- 下载nginx-rtmp-module:git clone https://github.com/arut/nginx-rtmp-module.git
- 安装nginx:
wget http://nginx.org/download/nginx-1.8.1.tar.gz
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module
make && make install
- 配置rtmp服务:
在nginx.conf配置文件中添加rtmp配置:
rtmp { #RTMP服务
server {
listen 1935; #//服务端口
chunk_size 4096; #//数据传输块的大小
application vod {
play /opt/video; #//视频文件存放位置。
}
application live{ #直播
live on;
}
}
}
- 检查并启动服务:
- nginx -t
- nginx
6.安装ffmpeg:
- yum安装FFmpeg,下载nux包:http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
rpm -ivh nux-dextop-release-0-5.el7.nux.noarch.rpm
yum search ffmpeg
#就可以看到 安装包了。
yum -y install ffmpeg-libs
yum -y install ffmpeg
- ffmpeg直播命令:
- 推流:ffmpeg -re -i 1.mp4 -c copy -f flv rtmp://xxx.xxx.xxx.xxx:1935/hls/1.mp4
- 拉流:ffmpeg -stimeout 5000000 -i rtsp://ip/vod/mp4://BigBuckBunny_175k.mov -c copy dump.flv
- 转换直播流时报错,需要强制转换:nohup ffmpeg -rtsp_transport tcp -i "rtsp://admin:12345@ip/h264/ch1/main/av_stream" -f flv -r 25 -s 1920*1080 -an "rtmp://ip:1935/live/" &
- 推流点播:ffmpeg -re -i /usr/share/nginx/html/hls/test.flv -c copy -f flv rtmp://ip:1935/hls/test.flv
现在通过vue页面播放直播视频流时还有点问题,播放点播流没问题,不知道是否与TCP强制转换有关系,目前还在解决中。
网友评论