菜单

基于Linux搭建一个类似Qik手机录像直播平台,将RTSP网络摄像机进行网页和微信直播的方案

2019年8月5日 - 4166m金沙
基于Linux搭建一个类似Qik手机录像直播平台,将RTSP网络摄像机进行网页和微信直播的方案

基于Linux搭建一个类似Qik手机录像直播平台(服务器端:feng streaming server

原文地址
|
加入“小知”Tower协作团队

本人转自Babosa的博客

现在直播非常火爆,可以从PC或手机直播,然后从PC或是手机或是支持HTML5的浏览器收看。但是,你知道直播平台后面的技术和实现原理码?

前言

为了实现将区域内(学校、工程、小区等等)各种型号的传统网络摄像机实现统一的网络直播,供远程PC、手机实时查看。EasyDarwin团队精心打造了EasyNVR的产品。可以只是一套夸平台的软件运行在现场环境内的任意一台PC上,
也可以直接使用EasyDarwin提供的小而美的硬件盒子直接运行。

随着互联网的发展,尤其是移动互联网,基于H5、微信的应用越来越多,企业也更多地想基于H5、微信公众号来快速开发和运营自己的产品,那么传统的安防IPC所输出的各种RTSP、GB28181、SDK视频流,都无法直接在web或者微信上进行无插件化的播放,那么,就产生了一种安防设备互联网化的需求,基本要求是:无插件、纯web、全平台PC/Android/iOS、支持微信、支持分享!

一、服务器端

正好去年过年的时候,一个朋友破解了AirPlay和Chromecast协议,然后开发了一套技术能够截获和播放任何手机(iOS或是Android)屏幕上的任何内容。想到的第一个应用是做一个直播的直播服务如有感兴趣的投资人,可以联系)。比如,通过屏幕直播,你可以邀请朋友看你正在看的直播的电影,球赛,演唱会,晚会,不管是免费的还是付费的。当初的想法是将屏幕的内容,通过AirPlay或Chromecast,推送到后台服务器,然后,受邀的朋友就可以从浏览器或是其它视频播放器观看了。为此,我们搭建和开发了一个直播平台,现在把我们实现的过程记录下来和大家共享。

EasyNVR互联网直播方案

EasyNVR就完全解决了上述各种问题,实现了一个完整的、小而美的传统安防向互联网迈进的解决方案:
★ 支持PC端/Android安卓端/iOS苹果端/微信端无插件化观看;
★ 支持微信扫描二维码观看;
★ 支持微信/微博直播分享;
★ 基于纯Web网页/无插件H5观看(不用安装任何APP);
★ 支持海康/大华等市面上几乎全部的网络摄像机接入;
★ 实时IP Camera/NVR直播画面实时直播监控;

基于Feng开源的流媒体服务器增加一个Web
server,用来接收客户端上传的视频数据,然后通过RTSP/RTP直播到手机终端上去

首先,视频有它的播放协议。原则上,RTSP,RTMP,HTTP都可以做直播和点播,但一般做直播用RTSP和RTMP,做点播用HTTP。我们选用的是RTMP协议。

EasyNVR适用于各种网络场景中

图片 1

图片 2

图片 3

二、客户端应用

RTMP 协议

EasyNVR适用的案例

基于EasyNVR实现了很多行业场景的直播需求,目前已经广泛应用于石油油田、水利大坝、园区监控、幼儿园直播、景区直播:

图片 4

上为一水利监控项目应用,EasyNVR服务器一边拥有内网访问权限,一边拥有公网固定IP,采用的是方案1x

图片 5

上为一施工工地网页监控项目,采用的EasyNVR方案为1x

图片 6

上为一幼儿园直播监控项目,面向家长进行幼儿园微信直播,采用的EasyNVR方案为1x

图片 7

上为一园区监控网页监控项目,采用的EasyNVR方案为1x

图片 8

上为一施工工地网页监控项目,采用的EasyNVR方案为1x

图片 9

上为中石油地点网页监控项目,采用的EasyNVR方案为2x

图片 10

上为黄山某景区微信直播项目,采用的EasyNVR方案为2x

  1. 介绍

RTMP(Real Time Message
Protocol/实时信息传输协议)是应用层协议,靠底层传输层协议(通常是TCP)来保证信息传输的可靠性的。在TCP链接建立后,RTMP协议也要客户端和服务器通过“握手”来建立RTMP
Connection,然后在Connection上传输控制信息。RTMP协议传输时会对数据格式化,而实际传输的时候为了更好地实现多路复用、分包和信息的公平性,发送端会把Message划分为带有Message
ID的Chunk,每个Chunk可能是一个单独的Message,也可能是Message的一部分,在接受端会根据Chunk中包含的data的长度,message
id和message的长度把chunk还原成完整的Message,从而实现信息的收发。

EasyNVR使用的一些常见问题

常见应用: 安防监控系统 / 小区监控 / 幼儿园监控 / 交通监控 / 厂区监控 /
景点景区监控 / 店面监控

特色特点: 基于纯web页面观看监控 / 无须安装插件 /
跨平台支持PC端、安卓端、iOS苹果端 /支持微信扫二维码观看

WEB端跨平台监控的目标是什么?
本站做的是取监控摄像头视频流,进行服务器端分发,实现无插件跨平台的web监控(注意,不是基于APP
/
APK,而是基于纯web页面),PC端/安卓/IOS苹果等主流终端,打开同一个网页地址都可以观看,同时也支持手机微信扫二维码观看。

海康/大华自身就有官方的自带的web端,你这边做的这种有什么意义?
第一,本站做的是无插件跨平台的web观看形式,PC/安卓/IOS苹果都开打开同一个页面,直接可以观看(web端是不要装插件的);而海康/大华的web端观看是必须装他们自己的插件的,这是最主要的区别;
第二,本站方案,实现的是用户自己的流媒体服务器平台,无在线观看人数限制的问题;而海康云平台(萤石云)是海康的私有云,基于萤石云观看,也是必须装海康自己的APP或APK,并且对在线人数有严格限定的。

EasyNVR用户需要准备什么?

  1. 服务器方面:Windows2008/Windows2012/CentOS 64位操作系统
    、4G内存、2核CPU及以上;
  2. 服务器带宽:根据自身情况而定 :
    5M-100M不等(与用户要求的在线人数有关系);
  3. 一个或多个监控摄像头(支持RTSP或Onvif) 。

我们提供什么样的服务?

  1. 为用户搭建服务器端环境;
  2. 为用户实现海康/大华监控摄像头实现基于web端无插件跨平台直播;
  3. 实现PC、安卓、IOS苹果三种主流终端都可以观看监控画面;
  4. 提供完整实例给用户,提供完整技术教程,提供技术售后。

为什么选择我们?
1.
经验。我们拥有数年流媒体技术服务的实际应用经验,也拥有web流媒体播放器操作经验,熟悉多终端跨平台技术;
2.
实测。我们亲自购买海康/大华/雄迈/天地伟业网络摄像头IPC,进行实测验证;庞大的开源社区用户群体;

  1. 多种方案。我们目前能提供1x / 2x / 3x
    三种方案,这三种方案基本包含了IPC所处的各种网络环境;
    4.
    稳定。我们做出的直播效果,无论是PC端直播画面,还是移动端直播画面,都比较稳定;
    5.
    操作方便。我们给用户提供完整的范例及教程,普通人员均可按范例添加或删减摄像头;
    6.
    省心省力。一个页面适配PC、安卓、IOS苹果、微信,简化繁杂的主流终端的适配,省心省力。

客户端应用主要是基于Android平台的,把手机录像的视频数据打包成flv(h264+aac)格式上传到feng流媒体服务器上,用户就可以通过web浏览器或者其它播放器实时的观看手机录像画面,下一个版本将会增加监控画面分辨率设置功能。

我们看看两个常用的视频服务。一个是由客户端向服务器发起请求推流到服务器,这个就是直播的播放服务,流程如下。

下载地址

  1. 操作说明

图片 11

获取更多信息

技术方案咨询:13718530929

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

QQ交流群:587254841

Copyright ? EasyDarwin.org 2012-2017

图片 12

第一步:选择品牌录像机,不同品牌会产生不同快门按钮声音

Paste_Image.png

图片 13

另一个是由客户端向服务器发起请求从服务器端接受数据,可以多次调用,这就是播放服务。流程如下。

第二步:如果第一次使用时点击检测摄像头按钮,然后点击开始按钮,在出现的监控画面上会有访问改录像的IP地址

图片 14

图片 15

Paste_Image.png

第三步:打开浏览器输入手机监控画面上的服务器地址

RTMP是直播后面的协议,有很多的开源软件实现了,细节我们不再细说。下面,我们看看怎么搭建后台服务系统。

图片 16

安装和配置 LEMP

图片 17

LEMP栈是指Linux(L), NGINX(E), MySQL(M),
PHP(P),还记得LAMP吗?LEMP既是将NGINX(E)取代了Apache(A)。

首先,用以下命令安装和启动NGINX web server。

# sudo apt-get update
# sudo apt-get install nginx
# sudo service nginx start

接着,安装MySQL。

# sudo apt-get install mysql-server mysql php5-mysql

接着,安装和配置PHP。

# sudo apt-get install php5-fpm

location ~ .php$ {
  try_files $uri =404;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

最后,重新启动NGINX web server。

# sudo service nginx restart

这样,后台的web
server设置好了,可以对外提供网页和PHP服务了。但是,NGINX并不支持RTMP协议,我们需要下载,编译,安装和配置RTMP模块。

安装和配置nginx-rtmp-module
首先,下载NGINX的源代码,确保环境下能正确的编译。

# git clone https://github.com/nginx/nginx.git

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图