RTMP服务器搭建

参考链接:https://www.cnblogs.com/lidabo/p/6404513.html

在Ubuntu 18.04上搭建一个RTMP服务器实现视频流的转播,可以用以实现远程的监控,通过nginx可以实现视频服务的搭建

一 服务器搭建

首先安装需要的库

$ sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev

下载nginx软件源代码

$ wget http://nginx.org/download/nginx-1.15.0.tar.gz

版本为1.15.0,可以根据时间选择最新的版本

下载nginx-rtmp-module

$ wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

解压文件,进入nginx目录

$ tar -zxvf nginx-1.15.0.tar.gz

$ unzip master.zip

$ cd nginx-1.15.0

进行编译和安装

$./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master

$ make

$ sudo make install

安装完成之后,可以运行

$ sudo /usr/local/nginx/sbin/nginx

启动nginx服务,需要配置conf文件以启动RMTP服务,如下

rtmp {
    server {
        listen 1935;                #端口号,默认1935
        chunk_size 4096;
        application live {    #应用名
            live on;
            record off;        #关闭视频记录
        }
    }
}

在/usr/local/nginx/conf/nginx.conf文件的最后附上上述的配置

之后重启nginx服务,就可以启用RTMP服务了

$ sudo /usr/local/nginx/sbin/nginx -s stop

$ sudo /usr/local/nginx/sbin/nginx

通过上述配置生效的服务的推送和拉流地址为  rtmp://hostname/live/xxx,其中xxx为推流时指定的名称,比如

rtmp://192.168.0.100/live/test

RTMP服务的主机地址为192.168.0.100(测试主机),播放地址/live,特定的视频流名称/test

二 推流和播放测试

通过在另外的机器上推流和播放视频流来测试RTMP服务,在推送服务器上通过ffmpeg进行推流

$ ffmpeg -i /dev/video0 -f flv rtmp://192.168.0.100/live/test

如上为最简单的推流指令,-i表示输入的摄像头,-f 为格式,一般为flv,rtmp://...为推送地址,其中192.168.0.100为服务器,这里为局域网的测试服务器,/live为推送的应用,如前面的推送服务的设置,/test为自定义的视频流名称

正常情况下会出现类似上述的信息,表示推送成功。

在客户端可以通过VLC等播放器打开网络视频流,获取视频。播放地址同样为

rtmp://192.168.0.100/live/test

播放器能够正常进行播放,验证RTMP服务以及推拉流功能成功运行。

默认的推送服务分辨率可能不是很高,可以采用高分辨率的视频推送指令,如下

$ ffmpeg -i /dev/video0 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://192.168.0.100/live/test

具体原理待专业人士进一步分析

三 视频录制

 在服务器中设置视频录制,视频流可以自动保存下来。通过更改nginx服务的配置实现视频流的自动保存,如下

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        max_connections 10;

        application live {
            live on;
            record all;
            record_unique on;                #record file named with timestamp, not overwriten
            record_path /home/ubuntu/rtmp/record;        #record path
            record_suffix -%Y-%m-%d-%H_%M_%S.flv;        #suffix of record file name
            record_max_size 250M;                        #maximum size of record file
        }
    }
}

RTMP服务会自动保存视频流,如上每到250M则产生一个新的文件进行保存,保存格式为FLV格式

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值