一种流媒体直播方法及装置与流程

文档序号:11778396阅读:189来源:国知局
一种流媒体直播方法及装置与流程

本发明涉及视频直播监控领域,尤其涉及一种流媒体直播方法及装置。



背景技术:

在现阶段的视频监控领域中,网络摄像机90%以上都遵循onvif协议,在局域网内无论是cms平台还是nvr设备,只要通过onvif、rtsp协议或sdk方式很容易接入ipc。并通过客户端软件或移动app进行视频浏览。目前,对于视频的远程浏览、直播、云存储的需求不断增加,传统意义上的视频监控系统很难满足直播需求,如果要实现流媒体直播需求,则必须要对原有视频监控系统进行升级改造。目前,直播监控系统的架设通常采用如下方式去解决上述问题:

1.架设1台具有固定ip地址的流媒体服务器,所有ipc设备分别向流媒体服务器进行推送音视频流,远程客户端通过访问流媒体服务器进行视频直播。

2.架设具有p2p功能的ipc设备,通过第三方p2p服务器进行网络穿透解析,远程客户端通过直接访问p2p的ipc进行视频浏览。

3.架设具有rtmp功能的ipc设备向rtmp流媒体服务器进行推送音视频流,远程客户端通过访问rtmp流媒体服务器进行视频直播。

但是,现有的流媒体直播方法存在以下缺陷:

(1)可解决ipc视频的直播问题,但是必须架设1台具有固定ip地址的流媒体服务器,这样对于小型系统将增加一台流媒体服务器的负荷及有固定ip地址的较高网络带宽租用费。

(2)可解决ipc视频的直播问题,但是所有浏览视频都必须从ipc进行分发,这样对于性能有限的ipc,当访问数量增加时,必将造成硬件负荷过载及网络上传带宽的阻塞,因而,大多数ipc设备仅支持3至5路分发。另外,原有视频监控设备厂商也不一定支持对以前的设备进行p2p软件升级。

(3)必须架设具有rtmp功能的ipc设备,则应对前端大量ipc设备进行升级处理或进行更换,这样必定极大增加用户的成本。另外,用户有时不一定要进行全部点的视频直播,或进行一部分点的视频直播,或进行不固定点的视频直播。用户要全部架设具有rtmp功能的ipc设备,会造成设备成本的增加。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种流媒体直播方法,不用对原有设备进行改造,可对原视频采集设备进行实时协议转换,能够使客户通过公网很流畅地观看到视频直播。

本发明的目的之二在于提供一种流媒体直播装置,不用对原有视频监控设备进行升级改造,可对原视频采集设备进行实时协议转换,能够使客户通过公网很流畅地观看到视频直播。

本发明的目的之一采用如下技术方案实现:

一种流媒体直播方法,包括:

连接视频监控设备;

判断所述视频监控设备是否支持onvif协议;

若所述视频监控设备支持onvif协议,则通过onvif协议从所述视频监控设备接收音、视频流;

若所述视频监控设备不支持onvif协议,则判断所述视频监控设备是否支持rtsp协议;

若所述视频监控设备支持rtsp协议,则通过rtsp协议从所述视频监控设备接收音、视频流;

将所述音、视频流封装并发送。

进一步地,将所述音、视频流封装并发送之前还包括:

若所述视频监控设备不支持rtsp协议,则通过sdk插件从所述视频监控设备接收音、视频流。

进一步地,所述将所述音、视频流封装并发送包括:

检测所接收的视频数据是否为i帧数据;

若为i帧数据,则开始接收视频数据;

检测所接收的音频数据是否为acc编码格式;

若为acc编码格式,则开始接收音频数据;

将所述视频数据和所述音频数据按照预设格式进行封装并发送。

进一步地,所述检测所接收的音频数据是否为acc编码格式之后还包括:

若不为acc编码格式,则对所述音频数据进行解码;

将解码数据编码为acc格式。

进一步地,所述判断所述视频监控设备是否支持onvif协议之前还包括:

解析所述视频监控设备的设备参数。

本发明的目的之二采用如下技术方案实现:

一种流媒体直播装置,包括:连接模块、第一判断模块、第一接收模块、第二判断模块、第二接收模块及发送模块;

所述连接模块,用于连接视频监控设备;

所述第一判断模块,用于判断所述视频监控设备是否支持onvif协议;

所述第一接收模块,用于若所述视频监控设备支持onvif协议,则通过onvif协议从所述视频监控设备接收音、视频流;

所述第二判断模块,若所述视频监控设备不支持onvif协议,则判断所述视频监控设备是否支持rtsp协议;

所述第二接收模块,用于若所述视频监控设备支持rtsp协议,则通过rtsp协议从所述视频监控设备接收音、视频流;

所述发送模块,用于将所述音、视频流封装并发送。

进一步地,还包括第三接收模块;

所述第三接收模块,用于若所述视频监控设备不支持rtsp协议,则通过sdk插件从所述视频监控设备接收音、视频流。

进一步地,还包括:第一检测模块、第四接收模块、第二检测模块及第五接收模块;

所述第一检测模块,用于检测所接收的视频数据是否为i帧数据;

所述第四接收模块,用于若为i帧数据,则开始接收视频数据;

所述第二检测模块,用于检测所接收的音频数据是否为acc编码格式;

所述第五接收模块,用于若为acc编码格式,则开始接收音频数据;

所述发送模块,还用于将所述视频数据和所述音频数据按照预设格式进行封装并发送。

进一步地,还包括:解码模块及编码模块;

所述解码模块,用于若不为acc编码格式,则对所述音频数据进行解码;

所述编码模块,用于将解码数据编码为acc格式。

进一步地,还包括解析模块;

所述解析模块,用于解析所述视频监控设备的设备参数。

相比现有技术,本发明的有益效果在于:

不用对原有视频监控设备进行升级改造,可对原视频采集设备进行实时协议转换,能够使客户通过公网很流畅地观看到视频直播,增强了系统组网及升级改造的灵活性、实用性及经济性。

附图说明

图1为本发明实施例提供的流媒体直播方法流程图;

图2为本发明实施例提供的将音、视频流封装发送流程图;

图3为本发明实施例提供的流媒体直播装置示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

一种流媒体直播方法,包括:

步骤s101:连接视频监控设备。

具体的,rtmp流媒体直播网关系统运行时,服务器与原视频监控ipc设备、编码设备、nvr设备或cms平台通过网络进行连接。

步骤s102:解析所述视频监控设备的设备参数。

具体的,服务器中的onvif解析模块分析所接入的原监控设备的ip、用户名、密码、流文件名称等参数并发送到rtsp流媒体接收模块。

步骤s103:判断所述视频监控设备是否支持onvif协议。

步骤s104:若所述视频监控设备支持onvif协议,则通过onvif协议从所述视频监控设备接收音、视频流。

具体的,若onvif协议解析模块解析出所接入的设备参数,则通过视频监控设备厂商提供的onvif协议接入参数从监控设备接收音、视频流。

步骤s105:若所述视频监控设备不支持onvif协议,则判断所述视频监控设备是否支持rtsp协议。

步骤s106:若所述视频监控设备支持rtsp协议,则通过rtsp协议从所述视频监控设备接收音、视频流。

具体的,若onvif协议解析模块不能解析所接入的设备参数,查看视频监控设备厂商是否提供了rtsp协议接入参数,若视频监控设备厂商提供了rtsp协议接入参数,则直接通过监控设备厂商提供的rtsp协议接入参数从视频监控设备接收音、视频流。

服务器中的rtsp流媒体接收模块通过分析出来的监控设备的ip、用户名、密码、流文件名称,从监控设备接收音、视频流并发送到rtmp协议转换模块,rtmp协议转换模块读取onvif解析与接入模块的信息,并根据是否支持onvif协议相关信息动态加载onvif或rtsp接入模块,通过数据与控制总线实现对rtmp协议转换网关的接入处理。

定义接入模块描述信息结构体如下:

包括类型、版本、名称、路径和使用状态。rtmp协议转换模块可以通过查询使用状态来确定是否动态加载。

步骤s107:若所述视频监控设备不支持rtsp协议,则通过sdk插件从所述视频监控设备接收音、视频流。

sdk接入模块同设备与系统插件之间定义的接口规范采用纯虚类sdk_basesrv表示。sdk_personsrv派生类通过调用各设备与系统厂商sdk中api函数来实现纯虚基类sdk_basesrv的抽象接口。在rtmp流媒体直播网关兼容新的设备与系统时,无需要对rtmp流媒体直播网关其他模块进行修改,只需要编码派生类来实现接入功能,生成各不同设备与系统厂商的devvendor.dll库,对于集成商进行二次开发时,也只需要遵循纯虚类sdk_basesrv的接口规范去自己实现具体功能,即便是要实现纯虚基类中没有定义的接口功能,rtmp流媒体直播网关商也无需提供源代码,只需要在纯虚基类中加入集成商想要的接口,由集成商自己去具体实现想要的功能。在上述基类中分别定义devvendor,devname,devvesion字符串变量,分别表示设备与系统的厂商、名称、版本,在派生类中分别赋具体值,rtmp流媒体直播系统在运行时通过devvendor,devname,devvesion值来确定动态加载具体插件,从而实现对设备与系统的操控。

定义sdk插件模型描述信息结构体:

包括设备或系统的厂商、名称、版本和使用状态。rtmp协议转换模块可以通过查询使用状态来确定是否可以动态加载所需设备sdk插件。

步骤s108:将所述音、视频流封装并发送。

具体的,rtmp协议转换模块将rtsp流媒体接收模块获取的音、视频流打包成rtmp协议格式的流,rtmp流媒体传输模块通过网络接口向指定的rtmp流媒体服务器发送音、视频数据。

本实施例提供的流媒体直播方法采用网络进行输入、输出,可以灵活地切换输入音、视频源不用对原有视频监控设备进行升级改造,可对原视频采集设备进行实时协议转换,能够使客户通过公网很流畅地观看到视频直播,增强了系统组网及升级改造的灵活性、实用性及经济性。

如图2所示,将音、视频流封装并发送包括:

步骤s201:检测所接收的视频数据是否为i帧数据。

步骤s202:若为i帧数据,则开始接收视频数据。

具体的,分别设置专门的音、视频数据接收线程函数进行流媒体的接收处理,在启动视频接收线程后,先分析数据是否为i帧数据,如果不是i帧数据,此数据直接丢弃,直至检测到第一个i帧数据后,接收线程才开始正常的流媒体数据接收。

步骤s203:检测所接收的音频数据是否为acc编码格式。

步骤s204:若为acc编码格式,则开始接收音频数据。

具体的,在启动音频接收线程后,先分析音频数据是否为aac编码格式,如果是aac编码格式,则直接进行音、视频数据封装,如果不是aac编码格式,则送入aac转码模块进行aac数据转码处理。

步骤s205:若不为acc编码格式,则对所述音频数据进行解码。

步骤s206:将解码数据编码为acc格式。

具体的,如果视频监控设备所编码的音频格式不是aac时,则启动aac转码模块,先对原音频编码格式进行解码工作,再启动aac编码器进行编码。

步骤s207:将所述视频数据和所述音频数据按照预设格式进行封装并发送。

具体的,在进行媒体数据传输时,为了节省带宽,跟据rtmp协议要求,将视频数据编码成h.264highprofile,音频数据编码成aac格式,并为音视频数据分别打上时间戳,以便于进行媒体流直播时的音视频同步处理,rtmp协议转换模块将音、视频数据流按照rtmp协议所要求的方式分别进行数据打包,同时按照rtmp协议设置专门的线程函数向rtmp流媒体服务器进行音、视频数据的实时发送。其结构定义如下:

本发明实施例提供的流媒体直播方法,不用对原有采用onvif协议或rtsp协议的监控设备进行任何的升级改造,即使onvif、rtsp协议不支持或不标准,也可以通过只在网关加载设备sdk插件进行接入,通过rtmp协议转换网关,可以在公网上进行流媒体直播。rtmp协议转换网关采用网络进行输入、输出,可以灵活地切换输入音、视频源,而不用进行任何线路的改造工程,具有良好的工程实用性。rtmp协议转换网关主动向rtmp流媒体服务器进行注册,并不需要rtmp协议转换网关具有固定ip地址,具有良好的经济实用性。

如图3所示,本发明实施例提供的流媒体直播装置,包括:连接模块11、第一判断模块12、第一接收模块13、第二判断模块14、第二接收模块15及发送模块16;

连接模块11,用于连接视频监控设备;

第一判断模块12,用于判断所述视频监控设备是否支持onvif协议;

第一接收模块13,用于若所述视频监控设备支持onvif协议,则通过onvif协议从所述视频监控设备接收音、视频流;

第二判断模块14,若所述视频监控设备不支持onvif协议,则判断所述视频监控设备是否支持rtsp协议;

第二接收模块15,用于若所述视频监控设备支持rtsp协议,则通过rtsp协议从所述视频监控设备接收音、视频流;

发送模块16,用于将所述音、视频流封装并发送。

进一步地,还包括第三接收模块;

第三接收模块,用于若所述视频监控设备不支持rtsp协议,则通过sdk插件从所述视频监控设备接收音、视频流。

进一步地,还包括:第一检测模块、第四接收模块、第二检测模块及第五接收模块;

第一检测模块,用于检测所接收的视频数据是否为i帧数据;

第四接收模块,用于若为i帧数据,则开始接收视频数据;

所述第二检测模块,用于检测所接收的音频数据是否为acc编码格式;

第五接收模块,用于若为acc编码格式,则开始接收音频数据;

发送模块,还用于将所述视频数据和所述音频数据按照预设格式进行封装并发送。

进一步地,还包括:解码模块及编码模块;

解码模块,用于若不为acc编码格式,则对所述音频数据进行解码;

编码模块,用于将解码数据编码为acc格式。

进一步地,还包括解析模块;

解析模块,用于解析所述视频监控设备的设备参数。

本实施例中的装置与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的装置的结构及实施过程,为了说明书的简洁,在此就不再赘述。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本发明实施例提供的流媒体直播方法及装置,不用对原有采用onvif协议或rtsp协议的监控设备进行任何的升级改造,即使onvif、rtsp协议不支持或不标准,也可以通过只在网关加载设备sdk插件进行接入,通过rtmp协议转换网关,可以在公网上进行流媒体直播。rtmp协议转换网关采用网络进行输入、输出,可以灵活地切换输入音、视频源,而不用进行任何线路的改造工程,具有良好的工程实用性。rtmp协议转换网关主动向rtmp流媒体服务器进行注册,并不需要rtmp协议转换网关具有固定ip地址,具有良好的经济实用性。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1