利用nginx和rtmp在Ubuntu系统下搭建流服务器并测试推流拉流

目录

一、下载nginx-rtmp-module包

二、安装nginx

 三、nginx配置环境变量

四、在nginx.conf中配置rtmp:

五、安装ffmpeg

1.安装yasm:

2.安装ffmpeg:

3.配置ld.so.conf增加动态链接库路径:

4.配置环境变量:

5.验证ffmpeg:

六、启动nginx服务器后用ffmpeg推流

启动nginx:

ffmpeg推流:

 七、ffmpeg推流过程中用VLC拉流播放

测试推流一个视频文件: 

测试ffmpeg调用usb摄像头推流 

八、使用ffplay拉流


一、下载nginx-rtmp-module包

首先讲一下,流服务器会搭建在ubuntu18.04系统主机上,因此nginx-rtmp-module和下边的nginx都是在ubuntu18.04系统主机上的,因此从当前一到后边四的操作均在ubuntu18.04上

git clone https://github.com/arut/nginx-rtmp-module.git

二、安装nginx

wget http://nginx.org/download/nginx-1.21.5.tar.gz
tar -zvxf nginx-1.21.5.tar.gz
cd nginx-1.21.5
./configure --prefix=/usr/local/src/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module
make -j8
make install

其中./configure的时候有可能会失败,报“..../configure: error: SSL modules require the OpenSSL library...”之类的错误,那么ubuntu这里的需要安装一个组件:

sudo apt-get install libssl-dev

还没有配环境变量,先启动测试一下nginx:

cd /usr/local/src/nginx/sbin
./nginx
ps -ef|grep nginx

访问一下,http://你的nginx服务器ip:80

 三、nginx配置环境变量

参考:离线安装openresty_RayChiu757374816的博客-CSDN博客_openresty离线部署

ubuntu单独挂载的硬盘权限问题不能友好启动nginx_RayChiu757374816的博客-CSDN博客

sudo vi ~/.bashrc
#然后写入下边这一行,注意对应自己的安装路径
export PATH=$PATH:/usr/local/src/nginx/sbin
source  ~/.bashrc

四、在nginx.conf中配置rtmp:

rtmp {
    server {
        listen 1935; #监听的端口
        chunk_size 4000;
        application hls { # 这里的hls一定要和/home/raychiu/data/ffmpegTest/hls的hls相同,否则报:rtmp://localhost:1935/home/raychiu/data/ffmpegTest/hls: Input/output error错
            live on; #开启实时
            hls on; #开启hls
            hls_path /home/raychiu/data/ffmpegTest/hls; #rtmp推流请求路径,文件存放路径
            hls_fragment 5s; #每个TS文件包含5秒的视频内容
       }
    }
}

五、安装ffmpeg

ffmpeg在树莓派端安装,用于从树莓派推流至流服务器。

1.安装yasm:

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 && sudo make install

2.安装ffmpeg:

ffmpeg是超快音视频编码器(类似于爱剪辑),ffmpeg音视频处理流程:

 安装过程:

wget https://ffmpeg.org/releases/ffmpeg-3.4.6.tar.gz
tar zxvf ffmpeg-3.4.6.tar.gz
cd ffmpeg-3.4.6/
./configure --prefix=/usr/local --enable-shared --enable-static 
make && sudo make install

3.配置ld.so.conf增加动态链接库路径:

在文件 /etc/ld.so.conf 末尾加上 /usr/local/ffmpeg  根据你的安装路径来。

ldconfig #使配置生效的命令

4.配置环境变量:

vi ~/.bashrc

export PATH="/usr/local/ffmpeg/bin:$PATH"

source ~/.bashrc

5.验证ffmpeg:

ffmpeg -version
ffserver -version

六、启动nginx服务器后用ffmpeg推流

启动nginx:

nginx

ffmpeg推流:

找一个视频文件,我这里找了一个123.mp4,然后

ffmpeg -re -i 123.mp4 -vcodec copy -codec copy -f flv rtmp://192.168.1.210:1935/hls

日志看出来正在推送视频流: 

hls目录下渐渐看到一个个ts文件生成了 :

 

 七、ffmpeg推流过程中用VLC拉流播放

测试推流一个视频文件: 

前边一台Ubuntu服务器搭建了流服务器,树莓派上装了ffmpeg进行推流,拉流可以找一个第三方PC电脑测试,这里我们先找了一个windows电脑安装VLC客户端测试拉流。 

经测试一定需要在推流过程中才能播放,VLC使用配置请参考:树莓派4B 32位系统初体验csi mipi接口摄像头_RayChiu757374816的博客-CSDN博客

地址:rtmp://192.168.1.210:1935/hls ,ip和端口和前缀hls,就是nginx流服务器配置的,自己对应自己的服务器配置即可。

 效果:

测试ffmpeg调用usb摄像头推流 

先给树莓派接上usb摄像头,调试可参考:树莓派初体验usb摄像头_RayChiu757374816的博客-CSDN博客

然后用ffmpeg开始推流 

ffmpeg -f video4linux2 -i /dev/video0 -f flv rtmp://192.168.1.210:1935/hls

延迟感觉挺厉害,在5s以上吧大概。 

八、使用ffplay拉流

ffplay rtmp://192.168.1.210:1935/hls

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值