本申请涉及视频传输技术领域,具体而言,涉及一种基于rtsp的实时视频流传输方法及装置。
背景技术:
rtsp,实时流传输协议,其定义了一对多应用程序如何有效地通过ip网络传送多媒体数据,是市面上主流ip摄像头使用的视频传输协议。
目前,基于rtsp的实时视频流的检测及传输主要通过websocket推送给用户端,但websocket推送的方式需要用户端有较为强大的计算能力,否则容易出现跳帧或资源耗尽的情况,并且用户端需要做额外的工作来渲染帧数据,而并非直接播放视频,此为用户端额外增加了繁琐的处理工作。
技术实现要素:
本申请实施例的目的在于提供一种基于rtsp的实时视频流传输方法及装置,可降低对用户端的计算能力的要求,减少跳帧或资源耗尽的情况,并且可降低用户端在对应的业务层面的复杂度,使得用户端可以直接播放或控制视频。
第一方面,本申请实施例提供了一种基于rtsp的实时视频流传输方法,包括:
创建webrtcp2p通道;
从rtsp视频流获取与预定视频编解码标准相符的帧数据;
对所述帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流;
将所述数据流传输至所述webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流。
在上述实现过程中,本申请实施例的基于rtsp的实时视频流传输方法,通过从rtsp视频流获取与预定视频编解码标准相符的帧数据,对帧数据进行目标检测及重组帧数据的处理得到预定视频格式的数据流,并将数据流传输至创建的webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流,此种方式可降低对用户端的计算能力的要求,减少跳帧或资源耗尽的情况,并且无需用户端做额外的工作来渲染帧数据,可降低用户端在对应的业务层面的复杂度,使得用户端可以直接播放或控制视频。
进一步地,所述对所述帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流,包括:
将所述帧数据硬编码成预定视频像素格式;
对硬编码后的帧数据进行目标检测,得到对应的检测结果;
将对应的所述检测结果对应标记到硬编码后的所述帧数据上;
将标记处理后的帧数据编码成预定视频格式的数据流。
在上述实现过程中,该方法可以较好地对帧数据进行目标检测,并且可以较好地将帧数据编码成浏览器广泛支持的webrtc数据流供用户端进行使用。
进一步地,所述预定视频像素格式为yuv、rgb或bgr视频像素格式。
在上述实现过程中,预定视频像素格式采用yuv、rgb或bgr视频像素格式,可以较好地便于对帧数据进行目标检测及重组帧数据的处理。
进一步地,所述预定视频格式为vp8视频格式。
在上述实现过程中,预定视频格式采用vp8视频格式,可以较好地便于对帧数据进行重组帧数据的处理。
进一步地,所述预定视频编解码标准为h.264或h.265。
在上述实现过程中,预定视频编解码标准采用h.264或h.265,可以较好地保障本申请实施例的基于rtsp的实时视频流传输方法的实现。
第二方面,本申请实施例提供了一种基于rtsp的实时视频流传输装置,包括:
创建模块,用于创建webrtcp2p通道;
获取模块,用于从rtsp视频流获取与预定视频编解码标准相符的帧数据;
处理模块,用于对所述帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流;
传输模块,用于将所述数据流传输至所述webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流。
在上述实现过程中,本申请实施例的基于rtsp的实时视频流传输装置,通过从rtsp视频流获取与预定视频编解码标准相符的帧数据,对帧数据进行目标检测及重组帧数据的处理得到预定视频格式的数据流,并将数据流传输至创建的webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流,此种方式可降低对用户端的计算能力的要求,减少跳帧或资源耗尽的情况,并且无需用户端做额外的工作来渲染帧数据,可降低用户端在对应的业务层面的复杂度,使得用户端可以直接播放或控制视频。
进一步地,所述处理模块,具体用于:
将所述帧数据硬编码成预定视频像素格式;
对硬编码后的帧数据进行目标检测,得到对应的检测结果;
将对应的所述检测结果对应标记到硬编码后的所述帧数据上;
将标记处理后的帧数据编码成预定视频格式的数据流。
在上述实现过程中,该装置可以较好地对帧数据进行目标检测,并且可以较好地将帧数据编码成浏览器广泛支持的webrtc数据流供用户端进行使用。
进一步地,所述预定视频编解码标准为h.264或h.265。
在上述实现过程中,预定视频编解码标准采用h.264或h.265,可以较好地保障本申请实施例的基于rtsp的实时视频流传输装置的实现。
第三方面,本申请实施例提供了一种电子设备,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述的基于rtsp的实时视频流传输方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于rtsp的实时视频流传输方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例一提供的基于rtsp的实时视频流传输方法的流程示意图;
图2为本申请实施例一提供的步骤s130的流程示意图;
图3为本申请实施例二提供的基于rtsp的实时视频流传输装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
目前,基于rtsp的实时视频流的检测及传输主要通过websocket推送给用户端,但websocket推送的方式需要用户端有较为强大的计算能力,否则容易出现跳帧或资源耗尽的情况,并且用户端需要做额外的工作来渲染帧数据,而并非直接播放视频,此为用户端额外增加了繁琐的处理工作。
针对上述现有技术中的问题,本申请提供了一种基于rtsp的实时视频流传输方法及装置,可降低对用户端的计算能力的要求,减少跳帧或资源耗尽的情况,并且可降低用户端在对应的业务层面的复杂度,使得用户端可以直接播放或控制视频。
实施例一
参见图1,图1为本申请实施例提供的基于rtsp的实时视频流传输方法的流程示意图。本申请实施例中下述的基于rtsp的实时视频流传输方法可应用于服务器。
本申请实施例的基于rtsp的实时视频流传输方法,包括如下步骤:
步骤s110,创建webrtcp2p通道。
在本实施例中,webrtc(webreal-timecommunication),即源自网页即时通信,是一个支持网页浏览器进行实时语音对话或视频对话的api。
可以理解地,创建的webrtcp2p通道可用于数据流的传输。
步骤s120,从rtsp视频流获取与预定视频编解码标准相符的帧数据。
在本实施例中,rtsp视频流可通过对应的摄像设备获得。
预定视频编解码标准为预先设定的视频编解码标准。
可选地,预定视频编解码标准可以是h.263或h.264等等。
在从rtsp视频流获取与预定视频编解码标准相符的帧数据时,可从rtsp视频流逐帧获取与预定视频编解码标准相符的帧数据。
步骤s130,对帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流。
在本实施例中,对帧数据进行目标检测,即对帧数据相应的图像中的对象进行目标检测,目标检测的对象可以是预先设定的对象,例如,目标检测的对象可以是车、车牌等等。
可选地,对帧数据进行目标检测可通过图像识别算法进行。
对帧数据进行重组帧数据的处理,可以是对帧数据进行编码等方式的处理。
预定视频格式为预先设定的视频格式。
步骤s140,将数据流传输至webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流。
在本实施例中,在将数据流传输至webrtcp2p通道之后,对应的用户端即可通过浏览器的webrtcapi直接播放和/或控制视频流。
本申请实施例的基于rtsp的实时视频流传输方法,通过从rtsp视频流获取与预定视频编解码标准相符的帧数据,对帧数据进行目标检测及重组帧数据的处理得到预定视频格式的数据流,并将数据流传输至创建的webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流,此种方式可降低对用户端的计算能力的要求,减少跳帧或资源耗尽的情况,并且无需用户端做额外的工作来渲染帧数据,可降低用户端在对应的业务层面的复杂度,使得用户端可以直接播放或控制视频。
参见图2,图2为本申请实施例提供的步骤s130的流程示意图。
在本申请的一些实施方式中,本申请实施例的基于rtsp的实时视频流传输方法,步骤s130,对帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流,可包括如下步骤:
步骤s131,将帧数据硬编码成预定视频像素格式;
步骤s132,对硬编码后的帧数据进行目标检测,得到对应的检测结果;
步骤s133,将对应的检测结果对应标记到硬编码后的帧数据上;
步骤s134,将标记处理后的帧数据编码成预定视频格式的数据流。
其中,预定视频像素格式为预先设定的视频像素格式。
在将对应的检测结果对应标记到硬编码后的帧数据上时,可将对应的检测结果通过标记方框对应标记到硬编码后的帧数据上。
需要说明的是,上述标记处理后的帧数据可以是有标记对应的检测结果的帧数据,也可以是无标记检测结果的帧数据,也即,硬编码后的帧数据没有对应的检测结果,也需执行步骤s133将对应的检测结果对应标记到硬编码后的帧数据上,只是该硬编码后的帧数据无标记对应的检测结果。
在上述过程中,该方法可以较好地对帧数据进行目标检测,并且可以较好地将帧数据编码成浏览器广泛支持的webrtc数据流供用户端进行使用。
在本申请的一些实施方式中,预定视频像素格式为yuv、rgb或bgr视频像素格式。
在上述过程中,预定视频像素格式采用yuv、rgb或bgr视频像素格式,可以较好地便于对帧数据进行目标检测及重组帧数据的处理。
在本申请的一些实施方式中,预定视频格式为vp8视频格式。
在上述过程中,预定视频格式采用vp8视频格式,可以较好地便于对帧数据进行重组帧数据的处理。
在本申请的一些实施方式中,预定视频编解码标准为h.264或h.265。
在上述过程中,预定视频编解码标准采用h.264或h.265,可以较好地保障本申请实施例的基于rtsp的实时视频流传输方法的实现。
实施例二
为了执行上述实施例一对应的方法,以实现相应的功能和技术效果,下面提供一种基于rtsp的实时视频流传输装置。
参见图3,图3为本申请实施例提供的基于rtsp的实时视频流传输装置的结构框图。
本申请实施例的基于rtsp的实时视频流传输装置,包括:
创建模块210,用于创建webrtcp2p通道;
获取模块220,用于从rtsp视频流获取与预定视频编解码标准相符的帧数据;
处理模块230,用于对帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流;
传输模块240,用于将数据流传输至webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流。
本申请实施例的基于rtsp的实时视频流传输装置,通过从rtsp视频流获取与预定视频编解码标准相符的帧数据,对帧数据进行目标检测及重组帧数据的处理得到预定视频格式的数据流,并将数据流传输至创建的webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流,此种方式可降低对用户端的计算能力的要求,减少跳帧或资源耗尽的情况,并且无需用户端做额外的工作来渲染帧数据,可降低用户端在对应的业务层面的复杂度,使得用户端可以直接播放或控制视频。
作为一种可选的实施方式,处理模块230,可具体用于:
将帧数据硬编码成预定视频像素格式;
对硬编码后的帧数据进行目标检测,得到对应的检测结果;
将对应的检测结果对应标记到硬编码后的帧数据上;
将标记处理后的帧数据编码成预定视频格式的数据流。
上述的基于rtsp的实时视频流传输装置可实施上述实施例一的基于rtsp的实时视频流传输方法。上述实施例一中的可选项也适用于本实施例,这里不再详述。
本申请实施例的其余内容可参照上述实施例一的内容,在本实施例中,不再进行赘述。
实施例三
本申请实施例提供一种电子设备,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述的基于rtsp的实时视频流传输方法。
可选地,上述电子设备可以是服务器。
另外,本申请实施例还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于rtsp的实时视频流传输方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
1.一种基于rtsp的实时视频流传输方法,其特征在于,包括:
创建webrtcp2p通道;
从rtsp视频流获取与预定视频编解码标准相符的帧数据;
对所述帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流;
将所述数据流传输至所述webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流。
2.根据权利要求1所述的基于rtsp的实时视频流传输方法,其特征在于,所述对所述帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流,包括:
将所述帧数据硬编码成预定视频像素格式;
对硬编码后的帧数据进行目标检测,得到对应的检测结果;
将对应的所述检测结果对应标记到硬编码后的所述帧数据上;
将标记处理后的帧数据编码成预定视频格式的数据流。
3.根据权利要求2所述的基于rtsp的实时视频流传输方法,其特征在于,所述预定视频像素格式为yuv、rgb或bgr视频像素格式。
4.根据权利要求2所述的基于rtsp的实时视频流传输方法,其特征在于,所述预定视频格式为vp8视频格式。
5.根据权利要求1所述的基于rtsp的实时视频流传输方法,其特征在于,所述预定视频编解码标准为h.264或h.265。
6.一种基于rtsp的实时视频流传输装置,其特征在于,包括:
创建模块,用于创建webrtcp2p通道;
获取模块,用于从rtsp视频流获取与预定视频编解码标准相符的帧数据;
处理模块,用于对所述帧数据进行目标检测及重组帧数据的处理,得到预定视频格式的数据流;
传输模块,用于将所述数据流传输至所述webrtcp2p通道,以使用户端可通过浏览器的webrtcapi播放和/或控制视频流。
7.根据权利要求6所述的基于rtsp的实时视频流传输装置,其特征在于,所述处理模块,具体用于:
将所述帧数据硬编码成预定视频像素格式;
对硬编码后的帧数据进行目标检测,得到对应的检测结果;
将对应的所述检测结果对应标记到硬编码后的所述帧数据上;
将标记处理后的帧数据编码成预定视频格式的数据流。
8.根据权利要求6所述的基于rtsp的实时视频流传输装置,其特征在于,所述预定视频编解码标准为h.264或h.265。
9.一种电子设备,其特征在于,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行根据权利要求1至5中任一项所述的基于rtsp的实时视频流传输方法。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的基于rtsp的实时视频流传输方法。
技术总结