最近和客户对接时问道怎么在不同网段中接收数据流,然后就想到了rtmp推流,客户不会搭建服务器,只能自己动手了,吭吭哧哧终于搞定了。
--------------------------------------------------------以下正文-----------------------------------------------------------
我是在linux上搭建的,虚拟机IP地址为192.168.0.111 设定端口为1935
为了让大家少踩我踩过的坑,所以将搭建rtmp推流服务器的软件包打包到百度网盘:
链接:https://pan.baidu.com/s/1WfiVux9M8euVTMa9hDtqIg
提取码:nwe7
nginx-1.15.5和nginx-rtmp-module是搭建服务器需要的
pcre-8.37和zlib-1.2.11,以及openssl是安装nginx需要安装的库,根据自己实际情况,按报错提示安装,
1.安装nginx这步不做详细说明,网上一搜一大堆。
./configure --add-module=../nginx-rtmp-module
make
make install
2.安装结束后 确定访问服务器URL
打开文件 vim /usr/local/nginx/conf/nginx.conf不用管文件里面的内容,直接shift +g到文件末尾
添加
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4000;
application livestream{
live on; #开启实时
hls on; #开启hls
hls_path /usr/local/nginx/html/tv_file; #rtmp推流请求路径,文件存放路径
hls_fragment 5s; #每个TS文件包含5秒的视频内容
}
}
}
然后保存,确定访问服务器URL为rtmp://192.168.0.111:1935/livestream。
3.运行 ## sudo /usr/local/nginx/sbin/nginx
一般会出现以下问题
处理方法是:
# ps -elf | grep nginx
显示如下:
使用kill -9 pid 将master 和worker两个进程都杀死。
然后重新启动 #sudo /usr/local/nginx/sbin/nginx
正常无输出
4.然后在浏览器输入对应本机IP 比如我的就是192.168.0.111
如下图显示则表示安装成功
5.ffmpeg测试
#ffmpeg -re -i 2021_11_25_163240.MP4 -c copy -f flv rtmp://192.168.0.111:1935/livestream
显示如下:
则表示推流成功,在VLC上输入URL : rtmp://192.168.0.111:1935/livestream则可实时观看播放的视频。
我自己一直卡在确定URL上,最后发现,自己一直在http下的server里面修改,而实际确实需要在rtmp下的server修改。