流媒体服务搭建(nginx+ffmpeg+nginx_rtmp_module)详解

流媒体服务搭建(nginx+ffmpeg+nginx_rtmp_module)详解

最近在做有关摄像头的直播的测试,原本采用的方案是EasyNVR(个人使用免费,商业收费)
通过了解,发现可以自己搭建流媒体服务来代替这个方案,下面记录搭建流媒体服务的详细步骤!!!!

一、搭建前准备

1、下载nginx(http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip)
2、下载ffmpeg(http://www.ffmpeg.org/download.html)
3、下载nginx_rtmp_module(https://github.com/arut/nginx-rtmp-module)

二、环境介绍

首先,我是采用的设备是海康的设备,然后我是通过rtsp地址去摄像头拿到的流,然后通过自己搭建的流媒体服务,转成我想要的RTMP地址(当然可以转成你想要的格式)
下面介绍海康设备的rtsp地址的规范(其他厂家的可以自己进行查询)

这是海康rtsp的定义规则

注意: 如果只是向要拿到设备主码流的地址,那么可以使用下面的这个方式

	rtsp://<账号><密码>@<ip>554/11   //亲测有效

三、流媒体服务搭建

将上述环境下载、解压完成之后,再进行下面的步骤

  • 完成之后的样子:
    在这里插入图片描述
  • 步骤如下:

1、将nginx_rtmp_module放入nginx目录下,如下
在这里插入图片描述
2、进入上述图片的conf目录 ,复制一份nginx-win.conf改名为nginx.conf(因为nginx会默认加载这个文件)
在这里插入图片描述
3、拷贝 如下代码
在这里插入图片描述
4、复制上述代码到如下位置
在这里插入图片描述
5、注意下面这个地方的端口冲突
在这里插入图片描述

6、搭建完成之后测试
在nginx目录下cmd , 输入 start nginx
在浏览器输入 http://localhost:<上述端口> (我的:http://localhost:8085)如果出现下面界面就成功了
在这里插入图片描述
7、解压ffmpge就好了,进入bin目录输入cmd就可以输入指令进行推流了

//测试一:采用本地以后的MP4格式的视频试试
 ffmpeg -re -i "D:\imgs\1.mp4" -f flv "rtmp://localhost:1935/mytv/test"

注:这里可以采用VLC 进行观看
在这里插入图片描述
测试画面:
在这里插入图片描述
8、摄像头的流拉取

//输入
ffmpeg -i "<rtsp地址>" -vcodec copy -acodec copy -f flv "rtmp://localhost:1935/mytv/test1"

结束:这里就不贴出出来的画面了(原因是因为如果用这种命令的方式进行推流,我出现了下面两个问题)

  • 延时很高(大概有10秒左右的延时)
  • 出来的画面直接是打了马赛克的那种画面(不忍直视)

解决办法有么?肯定有啊,想知道么??????

下一篇:采用代码的方式推流(javacv+ffmpeg-platform)

发布了15 篇原创文章 · 获赞 5 · 访问量 5409

猜你喜欢

转载自blog.csdn.net/weixin_43718192/article/details/100040823
今日推荐