版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangpengzp/article/details/89703930
nginx是配置网站服务器,但是通过安装相应modue也可以实现直播推流。
nginx服务器配置
环境
- ubuntu 16.04
- nginx 1.13
依赖库安装
sudo apt-get install git
sudo apt-get install libssl-dev
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev
sudo apt-get install zlib1g-dev
sudo apt-get install git
sudo apt-get install wget
安装过程中,apt占用,出现错误:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
解决方法:
ps aux | grep apt
kill ps
下载解压
mkdir rtmp
cd rtmp
git clone https://github.com/arut/nginx-rtmp-module.git
wget http://nginx.org/download/nginx-1.13.3.tar.gz
tar -zxvf nginx-1.13.3.tar.gz
nginx-rtmp-module添加到nginx服务器
cd nginx-1.13.3
./configure --add-module=/home/lammy/rtmp/nginx-rtmp-module
编译安装
make
sudo make install
运行
cd /usr/local/nginx
sudo ./nginx
验证
ps -ef|grep nginx
配置rtmp推流
进入nginx的配置信息
cd /usr/local/nginx/conf
sudo gedit nginx.conf
添加 rtmp服务
在http同级目录下添加 rtmp服务
rtmp
{
server
{
listen 1935;
chunk_size 4096;
application live #live rtmp名称为名字,下面on这里表示开启
{
live on;
}
}
}
添加推流信息查看http接口
在http中添加推流信息,与http内部server统计目录
server
{
listen 8080;
location /stat{
rtmp_stat all; #所有状态
rtmp_stat_stylesheet stat.xsl #state的样式表
}
location /stat.xsl{
root /home/lammy/rtmp/nginx-rtmp-module;#state的样式表路径
}
}
/home/lammy/rtmp/nginx-rtmp-module是下载的module中的stat表格路径
重启nginx服务器
cd usr/local/nginx/sbin
sudo pkill nginx
sudo ./nginx
FFmepg 推流
上面配置了ffmpeg的服务,地址就是rtmp+服务器ip + rtmp名称
ffmpeg -i test.mp4 -f flv rtmp://192.168.32.129/live
推流视频有些模糊,想要推流原数据,可以查看:ffmpeg + crtmpserver实现直播推流
播放
vlc播放
vlc播放器下载安装,
- 先打开vlc,左上角 媒体,打开网路串流,输入上面推流的地址:rtmp://192.168.32.129/live,点击打开
- 推流,执行上面的命令ffmpeg -i test2.mp4 -f flv rtmp://192.168.32.129/live
这样就可以看到vlm播放我们推流的视频了。
ffmpeg中的ffplay播放
ffplay rtmp:/192.168.32.129/live -fflags nofbuffer
ffpaly播放,因为要音视频推流控制,会有缓存,很延迟,这里就设置为无缓冲。
查看推流信息
在推流中,我们打开网站输入:http://192.168.32.129:8080/stat 就可以看到推流的信息了(实时查看可F5 刷新页面),如下图: