掌桥专利:专业的专利平台
掌桥专利
首页

私有视频流转换RTMP标准流的方法及装置

文献发布时间:2023-06-19 11:27:38


私有视频流转换RTMP标准流的方法及装置

技术领域

本发明涉及音视频技术领域,尤其是涉及私有视频流转换RTMP标准流的方法。

背景技术

随着音视频技术的不断发展,音视频在安防行业和互联网上的广泛应用,标准格式的音视频流需求不断增加,国际化标准化已经成为趋势和主流,并在公安、交通、金融、通信行业落地使用。但由于服务的软件架构和使用到的技术不尽相同,音视频的延迟、同步、稳定性有很大的差别。所以能提供出标准RTMP(Real Time Messaging Protocol实时消息传输协,简称RTMP)格式的音视频流,并且满足低延迟、高音视频同步、稳定性的音视频流成为音视频领域上的难关。

在当今互联网的浪潮下,将私有视频上传至互联网进行传播的需求急速增加,但目前私有视频只能用自家播放器解码播放,限制了私有视频进行网上传播的可能。

因此,现有的私有视频存在无法使用网上的标准播放器进行播放的技术问题。

发明内容

本发明的目的在于提供私有视频流转换RTMP标准流的方法及装置,以缓解现有的私有视频存在无法使用网上的标准播放器进行播放的技术问题。

第一方面,本发明提供的一种私有视频流转换RTMP标准流的方法,包括以下步骤:

获取设备的私有音视频流;

从私有音视频流中提取出H264(一种数字视频压缩格式)视频数据和AAC(Advanced Audio Coding,高级音频编码音频,简称AAC)音频数据;

计算H264视频数据和AAC音频数据的媒体描述信息;

将H264视频数据、AAC音频数据及其媒体描述信息输入到FFMPEG中(FFMPEG是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序),经FFMPEG合成得到RTMP协议的音视频流。

进一步的,所述将H264视频数据、AAC音频数据及其媒体描述信息输入到FFMPEG中,经FFMPEG合成得到RTMP协议的音视频流的步骤之后,包括:

FFMPEG将RTMP协议的音视频流发送至NGINX,使NGINX将RTMP协议的音视频流传输给客户端。Nginx是一个高性能的HTTP和反向代理web服务器。

进一步的,所述获取设备的私有音视频流的步骤,包括:

利用音视频转换服务,从流媒体服务中获取设备的私有音视频流。

进一步的,所述从私有音视频流中提取出H264视频数据和AAC音频数据的步骤,包括:

通过私有协议格式文档,解封装私有格式音视频流,提取出H264视频数据和AAC音频数据。

进一步的,所述计算H264视频数据和AAC音频数据的媒体描述信息的步骤,包括:

基于国际RTMP协议格式音视频流封装格式文档、FFMPEG框架API,计算H264视频数据和AAC音频数据的媒体描述信息。

进一步的,所述媒体描述信息包括:时间戳、帧率、分辨率或速度。

进一步的,所述FFMPEG将RTMP协议的音视频流发送至NGINX,使NGINX将RTMP协议的音视频流传输给客户端的步骤之前,还包括:

通过socket网络监听端口与NGINX建立通信连接。

第二方面,本发明还提供一种私有视频流转换RTMP标准流的装置,包括:

获取模块:用于获取设备的私有音视频流;

提取模块:用于从私有音视频流中提取出H264视频数据和AAC音频数据;

计算模块:用于计算H264视频数据和AAC音频数据的媒体描述信息;

转换模块:将H264视频数据、AAC音频数据及其媒体描述信息输入到FFMPEG中,经FFMPEG合成得到RTMP协议的音视频流。

第三方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行第一方面提供的方法。

本发明提供的私有视频流转换RTMP标准流的方法,采用本发明提供的私有视频流转换RTMP标准流的方法,通过计算H264视频数据和AAC音频数据的媒体描述信息,基于计算完成的媒体描述信息,利用FFMPEG的算法进行音视频的转换,得到RTMP协议的音视频流。解决了私有音视频流只能用自家播放器解码播放问题,使用网上标准的播放器和浏览器即可播放私有相机转换得来的音视频流,这是一种可以支持分布式的解决方案,维护性、通用性较好和适配能力较强。

相应地,本发明提供的私有视频流转换RTMP标准流的装置及计算机可读存储介质,也同样具有上述技术效果。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的私有视频流转换RTMP标准流的方法流程图;

图2为本发明实施中的私有视频流转换RTMP标准流的装置示意图一;

图3为本发明实施中的私有视频流转换RTMP标准流的装置示意图二;

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在当今互联网的浪潮下,将私有视频上传至互联网进行传播的需求急速增加,但目前私有视频只能用自家播放器解码播放,限制了私有视频进行网上传播的可能。

因此,现有的私有视频存在无法使用网上的标准播放器进行播放的技术问题。

为解决以上问题,本发明实施例提供一种私有视频流转换RTMP标准流的方法。

实施例1:

如图1所示,本发明实施例提供的私有视频流转换RTMP标准流的方法,包括以下步骤:

S1:获取设备的私有音视频流,利用音视频转换服务从流媒体服务获得相机私有音视频流。

S2:从私有音视频流中提取出H264视频数据和AAC音频数据,通过私有协议格式文档,解封装私有格式音视频流,提取出标准的H264视频数据和标准的AAC音频数据。

S3:计算H264视频数据和AAC音频数据的媒体描述信息;通过参考国际RTMP协议格式音视频流封装格式文档和研究FFMPEG框架API,计算H264视频和AAC音频时间戳等媒体描述信息。

S4:将H264视频数据、AAC音频数据及其媒体描述信息输入到FFMPEG中,经FFMPEG合成得到RTMP协议的音视频流。将H264视频流、AAC音频流、计算出的H264视频和AAC音频时间戳等媒体描述信息,并以计算好的速度,输入到FFMPEG框架中来得到标准的RTMP标准格式音视频流,FFMPEG能提供优秀的算法来最大提升音视频转换的效率。

采用本发明实施例提供的私有视频流转换RTMP标准流的方法,通过计算H264视频数据和AAC音频数据的媒体描述信息,基于计算完成的媒体描述信息,利用FFMPEG的算法进行音视频的转换。解决了私有音视频流只能用自家播放器解码播放问题,使用网上标准的播放器和浏览器即可播放私有相机转换得来的音视频流,这是一种可以支持分布式的解决方案,维护性、通用性较好和适配能力较强。

在一种可能的实施方式中,上述步骤S4之后,包括:

S5:FFMPEG将RTMP协议的音视频流发送至才,使NGINX将RTMP协议的音视频流传输给客户端。利用NGINX来实现分布式系统,支持动态扩容提供路数的动态提升来防止单机性能达到上限。

在一种可能的实施方式中,上述步骤S1,包括:

S11:利用音视频转换服务,从流媒体服务中获取设备的私有音视频流。

在一种可能的实施方式中,上述步骤S2,包括:

S21:通过私有协议格式文档,解封装私有格式音视频流,提取出H264视频数据和AAC音频数据。

在一种可能的实施方式中,上述步骤S3,包括:

S31:基于国际RTMP协议格式音视频流封装格式文档、FFMPEG框架API,计算H264视频数据和AAC音频数据的媒体描述信息。基于RTMP协议封装格式文档,计算出H264视频数据和AAC音频数据转换过程中所需的媒体描述信息。

在一种可能的实施方式中,媒体描述信息包括:时间戳、帧率、分辨率或速度。

在一种可能的实施方式中,FFMPEG将RTMP协议的音视频流发送至NGINX,使NGINX将RTMP协议的音视频流传输给客户端的步骤之前,还包括:

通过socket网络监听端口与NGINX建立通信连接,FFMPEG通过socket网络监听端口将RTMP协议的音视频流发送至NGINX。

实施例2:

如图2所示,本发明实施例提供私有视频流转换RTMP标准流的装置,包括:

获取模块1:用于获取设备的私有音视频流;

提取模块2:用于从私有音视频流中提取出H264视频数据和AAC音频数据;

计算模块3:用于计算H264视频数据和AAC音频数据的媒体描述信息;

转换模块4:将H264视频数据、AAC音频数据及其媒体描述信息输入到FFMPEG中,经FFMPEG合成得到RTMP协议的音视频流。

如图3所示,私有视频流转换RTMP标准流的装置利用NGINX服务、音视频转换服务、流媒体服务软件架构,实现了从相机端,将私有视频转化为RTMP协议的音视频流,并发送至客户端。

实施例3:

本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行实施例1提供的方法。

本发明实施例提供的私有视频流转换RTMP标准流的装置及计算机可读存储介质与上述实施例提供的私有视频流转换RTMP标准流的方法相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本发明实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

又例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,再例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 私有视频流转换RTMP标准流的方法及装置
  • 发送视频流的装置、接收视频流的装置、发送视频流的方法、接收视频流的方法
技术分类

06120112934835