CN117676266A - 视频流的处理方法及装置、存储介质、电子设备 - Google Patents
视频流的处理方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN117676266A CN117676266A CN202211056934.8A CN202211056934A CN117676266A CN 117676266 A CN117676266 A CN 117676266A CN 202211056934 A CN202211056934 A CN 202211056934A CN 117676266 A CN117676266 A CN 117676266A
- Authority
- CN
- China
- Prior art keywords
- video stream
- region
- interest
- target
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 16
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012545 processing Methods 0.000 claims abstract description 74
- 238000013139 quantization Methods 0.000 claims description 52
- 230000006835 compression Effects 0.000 claims description 30
- 238000007906 compression Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 29
- 238000001514 detection method Methods 0.000 claims description 10
- 238000009499 grossing Methods 0.000 claims description 9
- 238000003709 image segmentation Methods 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 9
- 238000013473 artificial intelligence Methods 0.000 claims description 8
- 238000003062 neural network model Methods 0.000 claims description 8
- 238000005538 encapsulation Methods 0.000 claims description 5
- 238000013527 convolutional neural network Methods 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 29
- 238000012544 monitoring process Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 7
- 230000001965 increasing effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001292396 Cirrhitidae Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开是关于一种视频流的处理方法及装置、存储介质、电子设备,涉及音视频编解码技术领域,该方法包括:接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。本公开提高了目标视频流的流畅度。
Description
技术领域
本公开实施例涉及音视频编解码技术领域,具体而言,涉及一种视频流的处理方法、视频流的处理装置、计算机可读存储介质以及电子设备。
背景技术
现有的视频流处理方法中,在视频采集装置将采集到的视频流发送至中间服务器的过程中,会存在因弱网环境导致的丢包问题,导致用户端播放该视频时有花屏、丢帧、卡顿等问题,用户无法流畅看到实时视频画面。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种视频流的处理方法、视频流的处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的视频画面不流畅的问题。
根据本公开的一个方面,提供一种视频流的处理方法,包括:
接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;
根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;
根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;
根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
在本公开的一种示例性实施例中,根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域,包括:
获取所述待处理视频流中的原始感兴趣区域以及原始非感兴趣区域,并对所述原始感兴趣区域进行图像增强处理;
对所述原始非感兴趣区域进行降噪以及平滑处理,并对所述图像增强处理后的感兴趣区域以及降噪平滑处理后的目标非感兴趣区域进行离散余弦变换,得到目标感兴趣区域以及目标非感兴趣区域;
根据所述感兴趣区域编码等级调整系数对所述目标感兴趣区域的第一原始量化参数以及目标非感兴趣区域的第二原始量化参数进行调整,得到第一目标量化参数以及第二目标量化参数,并根据所述第一目标量化参数以及第二目标量化参数,得到具有目标编码等级的感兴趣区域。
在本公开的一种示例性实施例中,获取所述待处理视频流中的原始感兴趣区域以及原始非感兴趣区域,包括:
基于预设的图像识别模型对所述待处理视频流进行计算,得到所述待处理视频流中包括的原始感兴趣区域;其中,所述预设的图像识别模型包括卷积神经网络模型、循环神经网络模型以及深度神经网络模型中的任意一种或多种;或者
响应于作用于所述待处理视频流中的当前图像帧的选择操作,确定所述待处理视频流中包括的原始感兴趣区域;
对所述待处理视频流中的当前图像帧中包括的原始感兴趣区域进行图像分割,并将图像分割后的当前图像帧作为所述原始非感兴趣区域。
在本公开的一种示例性实施例中,根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,包括:
获取包括具有目标编码等级的感兴趣区域的待处理视频流中包括的源画面组,并获取所述源画面组中包括的源关键帧;
获取所述源关键帧中的立即刷新图像IDR帧,并对所述IDR帧进行解析,得到所述IDR帧中包括的目标感兴趣区域的第一目标量化参数以及目标非感兴趣区域的第二目标量化参数;其中,所述量化参数包括序列参数集以及图像参数集;
基于所述第一目标量化参数以及第二目标量化参数对预设的转码函数进行初始化,并基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流。
在本公开的一种示例性实施例中,基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流,包括:
基于初始化以后的转码函数所述对所述包括具有目标编码等级的感兴趣区域的待处理视频流进行解协议,得到封装格式数据;
对所述封装格式数据进行解封装,得到音频压缩数据以及视频压缩数据,并对所述音频压缩数据以及视频压缩数据进行音频解码以及视频解码,得到音频原始数据以及视频原始数据;
基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,并对所述转码音频数据以及转码视频数据进行封包处理,得到所述目标视频流。
在本公开的一种示例性实施例中,基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,包括:
获取所述待处理视频流所具有的原始码率,并根据所述码率调整系数以及所述原始码率,计算所需要调整的目标码率;
基于所述目标码率对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据。
在本公开的一种示例性实施例中,根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级,包括:
获取所述待处理视频流的环路延迟时长,并根据所述环路延迟时长以及当前网络状态,确定所述待处理视频流的丢包率;
在预设的丢包等级匹配规则库中匹配与所述丢包率对应的丢包等级。
在本公开的一种示例性实施例中,根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数,包括:
根据所述丢包等级,在预设的码率等级调整规则库中匹配与所述丢包等级对应的码率调整系数,并在预设的感兴趣区域编码等级调整规则库中匹配与所述丢包等级对应的感兴趣区域编码等级调整系数;
其中,感兴趣区域编码等级调整系数越大,感兴趣区域的参数调整值越大,所述待处理视频流中的感兴趣区域的图像增强粒度越大,所述感兴趣区域的图像清晰度越高。
在本公开的一种示例性实施例中,所述视频流的处理方法还包括:
将所述目标视频流推送至媒体播放服务器,以使得所述媒体播放服务器在接收到用户终端发送的视频获取请求时,将所述目标视频流推送至所述用户终端;和/或
将所述目标视频流推送至视频存储服务器,以使得所述视频存储服务器对所述目标视频流进行存储;和/或
将所述目标视频流推送至人工智能算法服务器,以使得所述人工智能算法服务器对所述目标视频流进行智能检测和/或智能识别。
在本公开的一种示例性实施例中,接收待处理视频流,包括:
接收视频采集装置通过预设网络环境发送的待处理视频流;其中,所述预设网络环境包括弱网环境。
根据本公开的一个方面,提供一种视频流的处理装置,包括:
丢包等级确定模块,用于接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;
调整系数确定模块,用于根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;
第一调整模块,用于根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;
视频流转码模块,用于根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的视频流的处理方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的视频流的处理方法。
本公开实施例提供的一种视频流的处理方法,一方面,由于可以根据待处理视频流的丢包率确定待处理视频流的丢包等级;进而根据丢包等级确定与待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;再根据感兴趣区域编码等级调整系数对待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;最后根据码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,实现了根据丢包等级对感兴趣区域以及待处理视频流进行处理,避免了由于存在因弱网环境导致的丢包进而使得用户端播放该视频时有花屏、丢帧、卡顿的问题,提高了目标视频流的流畅度,使得用户可以对实时视频画面进行流畅的观看,进而提升了用户的观看体验;另一方面,由于可以根据感兴趣区域编码等级调整系数对待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;最后根据码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,实现了在不增加带宽消耗的基础上提高感兴趣区域的码率等级,进而使得在对目标视频流进行进一步的观看或者处理时,可以更为精确的对感兴趣区域的关注。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出根据本公开示例实施例的一种视频流的处理方法的流程图。
图2示意性示出根据本公开示例实施例的一种视频流的处理系统的框图。
图3示意性示出根据本公开示例实施例的一种视频流的处理方法的应用场景示例图。
图4示意性示出根据本公开示例实施例的一种根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域的方法流程图。
图5示意性示出根据本公开示例实施例的一种根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流的方法流程图。
图6示意性示出根据本公开示例实施例的一种源画面组(GOP,Group Of Picture)的结构示例图。
图7示意性示出根据本公开示例实施例的另一种视频流的处理方法的流程图。
图8示意性示出根据本公开示例实施例的一种在用户终端的显示界面上进行规则配置的界面示例图。
图9示意性示出根据本公开示例实施例的一种视频流的处理装置的框图。
图10示意性示出根据本公开示例实施例的一种用于实现上述视频流的处理方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
当前项目中,用户对视频监控的需求一共有两大类,一类是对视频中的目标进行动态监控,掌握目标实时状态;另一类是将实时视频提供给后端算法端进行人脸、车辆的识别,如人脸比对、车辆违规、车牌识别等实时检测需求。基于该两个项目实际应用场景,现存在两个问题:一个问题是,因弱网环境丢包问题,导致用户端播放的视频有花屏、丢帧、卡顿等问题,用户无法流畅看到实时视频画面;另一个问题是,项目使用的摄像机都是几年前建设的,摄像机没有自带的动态适应码率的功能,项目希望直接复用此类老旧摄像机,通过软件手段将老旧摄像机实时视频在弱网条件下流畅传回云端。
基于上述问题,本示例实施方式中首先提供了一种视频流的处理方法,该方法可以运行于服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定;同时,基于本公开示例实施例所提供的视频流的处理方法,用户无需高成本更换摄像机,直接复用老旧摄像机依旧能满足弱网环境自适应播放的问题;同时,还可以在不增加网络带宽的前提下满足用户高清晰度视频监控要求,实现了在弱网环境下仍能将清晰目标视频传给后端算法进行目标检测的目的。具体的,参考图1所示,该视频流的处理方法可以包括以下步骤:
步骤S110.接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;
步骤S120.根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;
步骤S130.根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;
步骤S140.根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
上述视频流的处理方法中,一方面,由于可以根据待处理视频流的丢包率确定待处理视频流的丢包等级;进而根据丢包等级确定与待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;再根据感兴趣区域编码等级调整系数对待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;最后根据码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,实现了根据丢包等级对感兴趣区域以及待处理视频流进行处理,避免了由于存在因弱网环境导致的丢包进而使得用户端播放该视频时有花屏、丢帧、卡顿的问题,提高了目标视频流的流畅度,使得用户可以对实时视频画面进行流畅的观看,进而提升了用户的观看体验;另一方面,由于可以根据感兴趣区域编码等级调整系数对待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;最后根据码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,实现了在不增加带宽消耗的基础上提高感兴趣区域的码率等级,进而使得在对目标视频流进行进一步的观看或者处理时,可以更为精确的对感兴趣区域的关注。
以下,将结合附图对本公开示例实施例视频流的处理方法进行详细的解释以及说明。
首先,对本公开示例实施例中所所涉到的名词进行解释以及说明。
弱网环境:具体的,一方面,对于实时音视频监控来说,网络的复杂性、异构性、协议部分不规范性、网络异常,网络错误等各种网络环境被破坏的特性都可以称之为弱网环境;另一方面,弱网环境不仅仅体现在应急救灾、远洋海事等场景,还可以体现在5G(5thGeneration Mobile Communication Technology,第五代移动通信技术)场景下;具体体现场景为:由于5G通信频率变高且需要直线传输;因此,当遇到许多阻碍的时候会带来网络的变化比较大,因此该情况也称为弱网环境。
在实际应用过程中,弱网环境的主要问题可以包括如下两个方面:一种是,带宽极低;另一种是,网络抖动;因此,对于音视频领域来讲,弱网环境无法提供高质量的网络传输,对于接收端就是无法收到连续的媒体包,造成声音异常、视频马赛克、花屏、黑屏等现象;在一般情况下,丢包率在2%以内的网络可被视为质量不错,丢包率为4%~6%则属于正常网络,丢包率大于10%则网络环境较差,20%则意味着网络环境非常糟糕。
ROI(Regions of Interest),感兴趣区域:具体的,在机器视觉以及图像处理的场景中,从被处理的图像中以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域;同时,在Halcon、OpenCV、Matlab等机器视觉软件上,常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。在实际的监控中,大多数情况下往往只对监控画面中的一些特定区域比较关注,比如画面中的车牌、人脸等等,而对背景的蓝天、草地等并不在意;这些特定的区域(车牌区域和/或人脸区域),即可被称为是感兴趣区域。
进一步的,ROI也是属于IVE技术的一种,IVE指的是Intelligent videoencoding,即智能视频编码,IVE技术可以根据客户要求对视频进行智能编码,并在不损失图像质量的前提下,优化视频编码性能,最终降低网络带宽占用率和减少存储空间;ROI编码技术可以对图像中的感兴趣区域(ROI)进行低压缩比的无损压缩或近无损压缩,在背景区域进行高压缩比的有损压缩;通过该方式,可以在码流不变的情况下,即可保证不丢失重要信息又能有效地压缩数据量,很好地解决了压缩比和图像质量之间的矛盾。同时,为公众所知的的是,在监控画面中,有些监控区域是不需要被监控或无关紧要,例如天空,墙壁,草地等等监控对象,普通网络监控摄像机对整个区域进行视频编码(压缩)并传输,这样就给网络带宽和视频存储带来了压力;而ROI智能视频编码技术却很好的解决了这个问题;例如,ROI功能的摄像机可以让用户选择画面中感兴趣的区域,启用ROI功能后,重要的或者移动的区域将会进行高质量无损编码,而对那些不移动,不被选择的区域降低其码率和图像质量,进行标准清晰度视频压缩,甚至是不传输这部分区域视频,从而最终达到节省网络带宽占用和视频存储空间。
在一些示例实施例中,ROI智能视频编码技术可以包括固定区域和动态跟踪这两类;其中,固定区域智能编码,是指可以用鼠标在监控画面中选择多个ROI感兴趣区域进行智能编码;动态跟踪智能编码,是指支持脸部识别高端网络摄像机可支持动态跟踪ROI智能编码技术;基于感兴趣区域的视频编码是利用人眼主观存在感兴趣区域和非感兴趣区域的特点,可以对主观感兴趣区域和非感兴趣区域的码率分配做一定的修正,将更多的码率分配到主观感兴趣区域,从而在主观上提升视频质量。
其次,对本公开示例实施例的发明目的进行解释以及说明。具体的,在一些具体的应用场景中,可以通过支持ROI编码功能的硬件摄像机来解决带宽不足问题;例如,如果网络带宽资源有限或不够,网络监控摄像机只能使用有限的上传带宽进行视频传输,如果用户想对重要的区域进行高分辨率,高质量视频监控,那么ROI技术可以牺牲掉非关注区域的图像质量仅对关键区域进行高分辨率视频编码,满足用户高清晰度视频监控要求,同时不需要增加网络带宽;但是,由于该方案是通过将ROI编码技术集成到摄像机硬件中的,无法解决老旧摄像机直接复用去实现弱网自适应的问题;因此,本公开示例实施例所记载的视频流的处理方法,可以通过码率自适应方案和ROI技术,用户无需高成本更换摄像机,直接复用老旧摄像机依旧能满足弱网环境自适应播放的问题;同时,还可以在不增加网络带宽的前提下通过ROI智能编解码算法满足用户高清晰度视频监控要求,使得用户在弱网环境下仍能将清晰目标视频传给后端算法进行目标检测。
进一步的,对本公开示例实施例所记载的视频流的处理系统进行解释以及说明。具体的,参考图2所示,该应用场景中可以包括视频采集装置210、中间服务器210、后端服务器220以及用户终端230。其中,视频采集装置可以通过3G和/或4G和/或5G网络与中间服务器连接,中间服务器可以通过局域网的方式与后端服务器连接,后端服务器可以通过局域网的方式与用户终端连接,同时,用户终端也可以通过局域网的方式与中间服务器连接。
进一步的,参考图3所示,此处所记载的视频采集装置,可以是摄像机、摄像头或者其他摄像装置,本示例对此不做特殊限制,视频采集装置可以用于采集所述待处理视频流;中间服务器可以包括接入服务器以及流媒体服务器,该中间服务器可以用于实现本公开示例实施例所记载的视频流的处理方法;后端服务器可以包括播放服务器、存储服务器以及人工智能算法服务器等等,播放服务器可以用于对目标视频流进行播放,存储服务器可以用于对目标视频流进行存储,人工智能算法服务器可以对目标视频流中包括的车辆、车牌和/或人脸进行识别等等;用户终端可以用于向播放服务器发送播放请求,进而对请求到的目标视频流进行播放;同时,用户终端还可以用于接收用户配置的相应规则,并将该规则发送至中间服务器。也即,在具体的应用过程中,前端设备(视频采集装置)所采集到的待处理视频流通过4G网络接入到中,接入服务器将视频流推到流媒体服务器,流媒体服务器在对待处理视频流处理以后,将得到目标视频流分别转发到播放服务(实时直播)、存储服务(视频落盘存储)、AI算法服务(视频算法检测),用户在web客户端进行实时视频流的查看。
更进一步的,对本公开示例实施例所记载的环路延迟进行解释以及说明。具体的,由于视频采集装置需要通过4G网络将采集到的待处理视频流传递到接入服务器,以使得接入服务器将处于局域网中进行业务交互、数据传输;因此,在视频流传输过程中,网络丢包的可能性很大,经前期项目测试,会存在以下几种网络状态:
(1)环路延迟10ms,无丢包,无抖动,无乱序(正常情况);(2)环路延迟30ms,丢包率0.5%,抖动5ms,2%乱序(对应本方案丢包等级1);(3)环路延迟60ms,丢包率1%,抖动20ms,3%乱序,0.1%包损坏(对应本方案丢包等级1);(4)环路延迟100ms,丢包率10%,抖动50ms,4%乱序,0.1%包损坏(对应本方案丢包等级1);(5)环路延迟200ms,丢包率20%,抖动70ms,5%乱序,0.1%包损坏(对应本方案丢包等级2);(6)环路延迟300ms,丢包率30%,抖动100ms,5%乱序,0.1%包损坏(对应本方案丢包等级3);(6)环路延迟300ms,丢包率40%,抖动100ms,5%乱序,0.1%包损坏(对应本方案丢包等级4);(7)环路延迟300ms,丢包率45%,抖动150ms,5%乱序,0.1%包损坏(对应本方案丢包等级5)。在此前提下,基于以上等级及网络测试对应,制定了本技术方案,且本项目方案主要是在流媒体服务模块实现。
以下,将结合图2以及图3对图1中所示出的视频流的处理方法进行详细的解释以及说明。具体的:
在步骤S110中,接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级。
在本示例实施例中,首先,接收待处理视频流。具体的,在待处理视频流接收的过程中,可以通过如下方式实现:接收视频采集装置通过预设网络环境发送的待处理视频流;其中,所述预设网络环境包括弱网环境;也即,如果待处理视频流是在弱网环境(判断是否为弱网可以根据丢包率来确定)下接收到的,那么就需要执行本公开示例实施例所记载的视频流的处理方法,进而得到目标视频流;若接收该待处理视频流的环境为正常网络环境,则可以选择性的处理;也即,可处理也可不处理;其次,此处所记载的待处理视频流,可以为实时流传输协议(Real Time Streaming Protocol,RTSP)流或者RTMP(Real TimeMessaging Protocol,实时消息传输协议)流,也可以是其他流,本示例对此不做特殊限制。具体的,RTSP是传输控制协议/网际协议Ttransmission Control Protocol/InternetProtocol,TCP/IP)体系中的一个应用层协议,RTSP流中的打包格式可以为多种,示例性的,可以为传输流(Transport Stream,TS)格式,可以为基本码流(Elementary Stream,ES)格式,还可以为裸码流格式。
在一种示例实施例中,裸码流可以编码为ES流,ES流可以打包为TS流;其中,裸码流是未经过编码的数据流,裸码流中同时包含有音频数据和视频数据;ES流为只包含一种内容的数据流,由若干个ES包组成,例如只包含视频数据的ES流或只包含音频数据的ES流。在对裸码流进行编码时,可以首先将视频数据和音频数据进行划分,将裸码流编码为只包含视频数据的ES流和只包含音频数据的ES流。ES流中的ES包可以进一步封装为TS包,从而组成TS流,TS包可独立编码或解码。在一种示例实施例中,上述待处理视频流还包括有协议头,在对该待处理视频流进行转码的过程中,需要先进行解协议。示例性的,若待处理视频流为RTSP流,则相应的,该大处理视频流包含有RTSP头;若待处理视频流为RTMP流,则相应的,该待处理视频流包含有RTMP头。
进一步的,在接收到待处理视频流以后,即可根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级。具体的,丢包等级的具体确定过程可以通过如下方式实现:首先,获取所述待处理视频流的环路延迟时长,并根据所述环路延迟时长以及当前网络状态,确定所述待处理视频流的丢包率;其次,在预设的丢包等级匹配规则库中匹配与所述丢包率对应的丢包等级。也即,在接收到待处理视频流以后,即可确定该待处理视频流的环路延迟时长,进而根据环路延迟时长确定丢包率以及丢包等级;譬如:其中,环路延迟10ms,确定无丢包;环路延迟30ms,确定丢包率为0.5%,丢包等级为1;环路延迟60ms,丢包率1%,丢包等级为1;环路延迟100ms,丢包率10%,丢包等级为1;环路延迟200ms,丢包率20%,丢包等级为2;环路延迟300ms,丢包率30%,丢包等级为3;环路延迟300ms,丢包率40%,丢包等级为4;环路延迟300ms,丢包率45%,丢包等级为5。在具体的应用过程中,丢包率与丢包等级的具体对应关系,可以根据实际需要进行自行定义,本示例对此不做特殊限制;同时,如果无丢包率,则可以确定无需对带处理视频流的码率进行转换,仅对感兴趣区域的等级进行调整等等,本示例对此不做特殊限制。
在步骤S120中,根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数。
在本示例实施例中,根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数,可以通过如下方式实现:根据所述丢包等级,在预设的码率等级调整规则库中匹配与所述丢包等级对应的码率调整系数,并在预设的感兴趣区域编码等级调整规则库中匹配与所述丢包等级对应的感兴趣区域编码等级调整系数;其中,感兴趣区域编码等级调整系数越大,感兴趣区域的参数调整值越大,所述待处理视频流中的感兴趣区域的图像增强粒度越大,所述感兴趣区域的图像清晰度越高。具体的,在实际应用过程中,按照用户需求设定的5个丢包率等级,本公开示例实施例支持用户自定义设置码率调整等级,默认依次对应降为原码率的80%,60%,50%,40%,30%;同时,按照用户需求设定的5个丢包率等级,本公开示例实施例支持用户自定义设置ROI编码调整等级,默认依次对应1级、2级、3级、4级、5级,级别越大,ROI的参数调整值越大,图像增强粒度越大,图像越清晰。
在步骤S130中,根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域。
在本示例实施例中,在一些对待处理视频流进行编码/转码的过程中,虽然FFmpeg、NVCodec支持ROI编码,但其不涉及ROI划分过程,也不涉及码率分配过程,只提供了输入DeltaQPMap的接口,没有实现真正意思上的ROI编码。因此,为了解决该问题,本公开示例实施例所记载的视频流的处理方法,在对待处理视频流进行转码之前,可以对编码器做一个工程化的开发,实现不同像素的权重差异化,从而实现真正的ROI编码。具体的,参考图4所示,根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域的具体实现过程,可以包括以下步骤:
步骤S410,获取所述待处理视频流中的原始感兴趣区域以及原始非感兴趣区域,并对所述原始感兴趣区域进行图像增强处理。
在本示例实施例中,首先,获取待处理视频流中的原始感兴趣区域以及原始非感兴趣区域。其中,具体的实现过程可以通过如下方式实现:首先,基于预设的图像识别模型对所述待处理视频流进行计算,得到所述待处理视频流中包括的原始感兴趣区域;其中,所述预设的图像识别模型包括卷积神经网络模型、循环神经网络模型以及深度神经网络模型中的任意一种或多种;或者响应于作用于所述待处理视频流中的当前图像帧的选择操作,确定所述待处理视频流中包括的原始感兴趣区域;其次,对所述待处理视频流中的当前图像帧中包括的原始感兴趣区域进行图像分割,并将图像分割后的当前图像帧作为所述原始非感兴趣区域。
在一些示例实施例中,上述所涉及到的原始感兴趣区域可以包括一个或者多个,如果是通过图像识别模型识别该原始感兴趣区域,则在对该图像识别模型进行训练的过程中,需要充分考虑到多个不同原始感兴趣区域的状况,进而达到提高所识别到的原始感兴趣区域的精确度的目的;如果是通过用户自行选取的方式确定原始感兴趣区域,则可以直接根据用户的框选结果确定对应的原始感兴趣区域。进一步的,在得到原始感兴趣区域以后,即可分割出该原始感兴趣区域,并将其他区域作为非感兴趣区域;在具体的图像分割过程中,可以先进行二值化处理,然后进行高斯滤波进而得到与感兴趣区域对应的前景图像以及与非感兴趣区域对应的背景图像,进而实现分割过程。
进一步的,当得到原始感兴趣区域以后,即可对该原始感兴趣区域进行图像增强处理,也即,需要对原始感兴趣区域进行图像层面的增强,进而使得该原始感兴趣区域的图像强度可以区别于原始非感兴趣区域。
步骤S420,对所述原始非感兴趣区域进行降噪以及平滑处理,并对所述图像增强处理后的感兴趣区域以及降噪平滑处理后的目标非感兴趣区域进行离散余弦变换,得到目标感兴趣区域以及目标非感兴趣区域。
具体的,在完成对原始感兴趣区域的图像层面的增强处理以后,可以对非ROI区域图像(原始非感兴趣区域)进行降噪、平滑等处理,进而达到降低原始非感兴趣区域的高频成分,方便DCT(Discrete Cosine Transform,离散余弦变换)处理;同时,通过进行离散余弦变化处理,会使得在同等相同主观感受下,码率会有明显的降低,达到降低目标非感兴趣区域的码率并增加目标感兴趣区域的码率的目的。
步骤S430,根据所述感兴趣区域编码等级调整系数对所述目标感兴趣区域的第一原始量化参数以及目标非感兴趣区域的第二原始量化参数进行调整,得到第一目标量化参数以及第二目标量化参数,并根据所述第一目标量化参数以及第二目标量化参数,得到具有目标编码等级的感兴趣区域。
具体的,通过感兴趣区域编码等级调整系数,采用自适应量化(AQ,AdaptiveQuantization)的方式来调整调整QP(Quantizer Parameter,量化参数)值,实现码率分配的修正;也即,可以对不同的目标感兴趣区域的第一原始量化参数值和目标非感兴趣区域的第二目标量化参数做不同的QP调整;其中,QP越小,质量越好,码率也会越高;QP越大,宏块得到的码率越小,画质越差;通过这样一个调整,实现ROI的权重调整,进而使得目标感兴趣区域的码率值可以区别于目标非感兴趣区域的码率值。
在步骤S140中,根据所述码调整系数对所述包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
在本示例实施例中,参考图5所示,根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,可以包括以下步骤:
步骤S510,获取包括具有目标编码等级的感兴趣区域的待处理视频流中包括的源画面组,并获取所述源画面组中包括的源关键帧;
步骤S520,获取所述源关键帧中的立即刷新图像IDR帧,并对所述IDR帧进行解析,得到所述IDR帧中包括的目标感兴趣区域的第一目标量化参数以及目标非感兴趣区域的第二目标量化参数;其中,所述量化参数包括序列参数集以及图像参数集;
步骤S530,基于所述第一目标量化参数以及第二目标量化参数对预设的转码函数进行初始化,并基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流。
在一种示例实施例中,基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流,可以通过如下方式实现:首先,基于初始化以后的转码函数所述对所述包括具有目标编码等级的感兴趣区域的待处理视频流进行解协议,得到封装格式数据;其次,对所述封装格式数据进行解封装,得到音频压缩数据以及视频压缩数据,并对所述音频压缩数据以及视频压缩数据进行音频解码以及视频解码,得到音频原始数据以及视频原始数据;最后,基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,并对所述转码音频数据以及转码视频数据进行封包处理,得到所述目标视频流。
在一种示例实施例中,基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,可以通过如下方式实现:首先,获取所述待处理视频流所具有的原始码率,并根据所述码率调整系数以及所述原始码率,计算所需要调整的目标码率;其次,基于所述目标码率对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据。
以下,将对步骤S510-步骤S530进行解释以及说明。具体的,在具体的进行码率转换的过程中,首先需要进行必要的初始化操作;具体的初始化过程可以包括初始化缓存转码句柄的字典以及缓存GOP长度的最新帧数据,一般为两个关键帧间隔长度。当初始化完成以后,可以获取源画面组(GOP,Group Of Picture);其中,参考图6所示,一个GOP就是一组连续的画面;GOP结构一般有两个数字,其中一个是GOP的长度(即两个I帧之间的B帧和P帧数),另一个数字为I帧和P帧之间的间隔距离(即B帧数);在一个GOP内I帧解码不依赖任何的其它帧,P帧解码则依赖前面的I帧或P帧,B帧解码依赖前面的I帧或P帧及其后最近的一个P帧;同时,GOP中的I帧又可以分为普通I帧和IDR帧,IDR(Instantaneous DecodingRefresh,立即刷新图像)帧就是GOP的第一个I帧,这样区分视为了封边控制编码和解码的流程;同时,IDR帧一定是I帧,但是I帧不一定是IDR帧;并且,IDR帧因为附带SPS(SequenceParameter Set,序列参数集)以及PPS(图像参数集,Picture Parameter Set)等信息,进而使得解码器在收到IDR帧时,需要做的工作就是:把所有的PPS和SPS参数进行更新;也即,IDR帧的作用是让解码器理科刷新相关数据信息,避免出现较大的解码错误问题;进一步的,引入IDR帧机制是为了解码的重同步,当解码器解码到IDR帧时,理解将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列;这样,如果前一个序列出现错误,在这里可以获得重新同步的机会;IDR帧之后的帧永远不会使用IDR帧之前的数据来解码。
在上述所记载的内容的前提下,当获取到源画面组以后,即可获取该源画面组中的源IDR帧,进而根据该源IDR帧中包括的目标感兴趣区域的第一目标量化参数以及目标非感兴趣区域的第二目标量化参数(量化参数可以包括序列参数集以及图像参数集)对预设的转码函数进行初始化,进而基于初始化以后的转码函数进行转码,并得到转码视频流;其中,此处所记载的转码函数,可以是FFMpeg函数。此处需要补充说明的是,在通过序列参数集以及图像参数集对预设的转码函数进行初始化之前,还需要判断该序列参数集以及图像参数集是否完整,若不完整则需要从接收到的其他帧中解析到完整的序列参数集以及图像参数集,并通过完整的序列参数集以及图像参数集对不完整的序列参数集以及图像参数集进行补齐后,再进行对应的转码。
进一步的,在通过FFMpeg对源视频流进行具体的转码过程中,其所涉及到的解协议、解封装、解码以及数据同步过程,具体可以如下所示:
首先,解协议处理,其可以将流媒体协议的数据,解析为标准的相应的封装格式数据;具体的,首先,是采用各种流媒体协议(例如RTMP或者RTSP等);这些协议在传输视音频数据的同时,也会传输一些信令数据;这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等;其中,解协议的过程中会去除掉信令数据而只保留视音频数据;例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。
其次,解封装处理,其可以将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据;封装格式种类很多,例如MP4、MKV、RMVB、TS、FLV以及AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起;例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流;
进一步的,解码处理,其可以将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据;其中,音频的压缩编码标准包含AAC,MP3,AC-3等等;视频的压缩编码标准则包含H.264,MPEG2,VC-1等等;通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据;然后,再获取待处理视频流所具有的原始码率,并根据码率调整系数以及原始码率,计算所需要调整的目标码率;其次,基于目标码率对音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据;
最后,封包处理,其可以根据解封装处理过程中获取到的参数信息,同步转码后的音频数据以及视频数据得到目标视频流。
至此,待处理视频流的具体处理过程已经全部完成。进一步的,在得到待处理视频流以后,该视频流的处理方法还可以包括:
将所述目标视频流推送至媒体播放服务器,以使得所述媒体播放服务器在接收到用户终端发送的视频获取请求时,将所述目标视频流推送至所述用户终端;和/或将所述目标视频流推送至视频存储服务器,以使得所述视频存储服务器对所述目标视频流进行存储;和/或将所述目标视频流推送至人工智能算法服务器,以使得所述人工智能算法服务器对所述目标视频流进行智能检测和/或智能识别。通过该方法,可以在不更换摄像机的前提下,直接复用老旧摄像机依旧能满足弱网环境自适应播放的问题;同时,ROI智能编解码算法还可以满足用户高清晰度视频监控要求,且不需要增加网络带宽,达到了在弱网环境下仍能将清晰目标视频传给后端算法进行目标检测的目的。
以下,将结合图7对本公开示例实施例的视频流处理方法进行进一步的解释以及说明。具体的,参考图7所示,该视频流的处理方法可以包括以下步骤:
步骤S701,在用户终端(web端)进行实时视频流的传输丢包率检测频次;其中,考虑到服务器性能,默认为“间隔10分钟一次”,支持用户自定义配置;其中,用户终端的配置页面可以参考图8所示;
步骤S702,设置丢包率等级、码率调整等级以及ROI编码调整等级等配置参数,并将配置参数保存后下发到中间服务器;具体的,按照用户需求设定的5个丢包率等级,同时,支持用户自定义设置码率调整等级,默认依次对应降为原码率的80%,60%,50%,40%,30%;并且,支持用户自定义设置ROI编码调整等级,默认依次对应1级、2级、3级、4级、5级,级别越大,ROI的参数调整值越大,图像增强粒度越大,图像越清晰;
步骤S703,后端服务将按照配置值信息进行网络丢包率的定时判断;具体的判断标准为:为丢包率≤10%(丢包等级1),10%<丢包率≤20%(丢包等级2),20%<丢包率≤30%(丢包等级3),30%<丢包率≤40%(丢包等级4),40%<丢包率≤50%(丢包等级5);
步骤S704,按照设定的等级确定码率转化系数以及ROI的参数;具体的,按照设定的5个丢包率等级,默认用户接收到的音视频实时流实际码率依次对应降为原码率的80%,60%,50%,40%,30%;进一步的,设定的5个丢包率等级,默认用户接收到的音视频实时图像ROI处理值默认依次对应1级、2级、3级、4级、5级,级别越大,ROI的参数调整值越大,图像增强粒度越大,图像越清晰;同时,本公开示例实施例所采用的ROI技术主要采用固定中心区域ROI、动态人脸/车辆ROI;中心区域ROI是基于经验的判断,在实时视频监控的正常使用过程中,通常会将最重要的内容放在画面最中间,故本方案中中心区域固定默认为是图像分辨率居中区域,宽高各占50%;同时,动态人脸/车辆ROI是由于项目实际场景中,用户更关心视频中的人和车辆这两类目标,故在实际画面中,还会动态跟踪人脸、车辆目标进行ROI处理;
步骤S705,根据码率转化系数以及ROI的参数对待处理视频流进行自适应处理,得到目标视频流,并对目标视频流按用户需求进行推送或者存储或者进行AI识别。
基于前述记载的内容可以得知,本公开示例实施例所记载的视频流的处理方法,通过动态码率自适应技术,解决了项目中老旧设备无法复用以使用弱网环境的问题,本方案实现后,用户无需高成本更换新的摄像机,直接复用老旧摄像机依旧能满足弱网环境动态自适应播放的问题,保障了用户在弱网环境下,仍可以流畅查看实时视频,追踪目标动态;另一方面,通过本方案的ROI智能编解码技术,满足了用户弱网环境下,对于高清晰度视频监控要求,且不需要增加网络带宽,实现了用户在弱网环境下仍能将清晰目标视频传给后端算法进行目标检测的目的。
本公开示例实施例还提供了一种视频流的处理装置。具体的,参考图9所示,该视频流的处理装置可以包括丢包等级确定模块910、调整系数确定模块920、第一调整模块930以及视频流转码模块940。其中:
丢包等级确定模块910,可以用于接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;
调整系数确定模块920,可以用于根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;
第一调整模块930,可以用于根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;
视频流转码模块940,可以用于根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
在本公开的一种示例性实施例中,根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域,包括:
获取所述待处理视频流中的原始感兴趣区域以及原始非感兴趣区域,并对所述原始感兴趣区域进行图像增强处理;
对所述原始非感兴趣区域进行降噪以及平滑处理,并对所述图像增强处理后的感兴趣区域以及降噪平滑处理后的目标非感兴趣区域进行离散余弦变换,得到目标感兴趣区域以及目标非感兴趣区域;
根据所述感兴趣区域编码等级调整系数对所述目标感兴趣区域的第一原始量化参数以及目标非感兴趣区域的第二原始量化参数进行调整,得到第一目标量化参数以及第二目标量化参数,并根据所述第一目标量化参数以及第二目标量化参数,得到具有目标编码等级的感兴趣区域。
在本公开的一种示例性实施例中,获取所述待处理视频流中的原始感兴趣区域以及原始非感兴趣区域,包括:
基于预设的图像识别模型对所述待处理视频流进行计算,得到所述待处理视频流中包括的原始感兴趣区域;其中,所述预设的图像识别模型包括卷积神经网络模型、循环神经网络模型以及深度神经网络模型中的任意一种或多种;或者
响应于作用于所述待处理视频流中的当前图像帧的选择操作,确定所述待处理视频流中包括的原始感兴趣区域;
对所述待处理视频流中的当前图像帧中包括的原始感兴趣区域进行图像分割,并将图像分割后的当前图像帧作为所述原始非感兴趣区域。
在本公开的一种示例性实施例中,根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,包括:
获取包括具有目标编码等级的感兴趣区域的待处理视频流中包括的源画面组,并获取所述源画面组中包括的源关键帧;
获取所述源关键帧中的立即刷新图像IDR帧,并对所述IDR帧进行解析,得到所述IDR帧中包括的目标感兴趣区域的第一目标量化参数以及目标非感兴趣区域的第二目标量化参数;其中,所述量化参数包括序列参数集以及图像参数集;
基于所述第一目标量化参数以及第二目标量化参数对预设的转码函数进行初始化,并基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流。
在本公开的一种示例性实施例中,基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流,包括:
基于初始化以后的转码函数所述对所述包括具有目标编码等级的感兴趣区域的待处理视频流进行解协议,得到封装格式数据;
对所述封装格式数据进行解封装,得到音频压缩数据以及视频压缩数据,并对所述音频压缩数据以及视频压缩数据进行音频解码以及视频解码,得到音频原始数据以及视频原始数据;
基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,并对所述转码音频数据以及转码视频数据进行封包处理,得到所述目标视频流。
在本公开的一种示例性实施例中,基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,包括:
获取所述待处理视频流所具有的原始码率,并根据所述码率调整系数以及所述原始码率,计算所需要调整的目标码率;
基于所述目标码率对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据。
在本公开的一种示例性实施例中,根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级,包括:
获取所述待处理视频流的环路延迟时长,并根据所述环路延迟时长以及当前网络状态,确定所述待处理视频流的丢包率;
在预设的丢包等级匹配规则库中匹配与所述丢包率对应的丢包等级。
在本公开的一种示例性实施例中,根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数,包括:
根据所述丢包等级,在预设的码率等级调整规则库中匹配与所述丢包等级对应的码率调整系数,并在预设的感兴趣区域编码等级调整规则库中匹配与所述丢包等级对应的感兴趣区域编码等级调整系数;
其中,感兴趣区域编码等级调整系数越大,感兴趣区域的参数调整值越大,所述待处理视频流中的感兴趣区域的图像增强粒度越大,所述感兴趣区域的图像清晰度越高。
在本公开的一种示例性实施例中,所述视频流的处理装置还包括:
第一发送模块,可以用于将所述目标视频流推送至媒体播放服务器,以使得所述媒体播放服务器在接收到用户终端发送的视频获取请求时,将所述目标视频流推送至所述用户终端;和/或
第二发送模块,可以用于将所述目标视频流推送至视频存储服务器,以使得所述视频存储服务器对所述目标视频流进行存储;和/或
第三发送模块,可以用于将所述目标视频流推送至人工智能算法服务器,以使得所述人工智能算法服务器对所述目标视频流进行智能检测和/或智能识别。
在本公开的一种示例性实施例中,接收待处理视频流,包括:
接收视频采集装置通过预设网络环境发送的待处理视频流;其中,所述预设网络环境包括弱网环境。
上述视频流的处理装置中各模块的具体细节已经在对应的视频流的处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本公开的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030以及显示单元1040。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1010可以执行如图1中所示的步骤S110:接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;步骤S120:根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;步骤S130:根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;步骤S140:根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (13)
1.一种视频流的处理方法,其特征在于,包括:
接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;
根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;
根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;
根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
2.根据权利要求1所述的视频流的处理方法,其特征在于,根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域,包括:
获取所述待处理视频流中的原始感兴趣区域以及原始非感兴趣区域,并对所述原始感兴趣区域进行图像增强处理;
对所述原始非感兴趣区域进行降噪以及平滑处理,并对所述图像增强处理后的感兴趣区域以及降噪平滑处理后的目标非感兴趣区域进行离散余弦变换,得到目标感兴趣区域以及目标非感兴趣区域;
根据所述感兴趣区域编码等级调整系数对所述目标感兴趣区域的第一原始量化参数以及目标非感兴趣区域的第二原始量化参数进行调整,得到第一目标量化参数以及第二目标量化参数,并根据所述第一目标量化参数以及第二目标量化参数,得到具有目标编码等级的感兴趣区域。
3.根据权利要求2所述的视频流的处理方法,其特征在于,获取所述待处理视频流中的原始感兴趣区域以及原始非感兴趣区域,包括:
基于预设的图像识别模型对所述待处理视频流进行计算,得到所述待处理视频流中包括的原始感兴趣区域;其中,所述预设的图像识别模型包括卷积神经网络模型、循环神经网络模型以及深度神经网络模型中的任意一种或多种;或者
响应于作用于所述待处理视频流中的当前图像帧的选择操作,确定所述待处理视频流中包括的原始感兴趣区域;
对所述待处理视频流中的当前图像帧中包括的原始感兴趣区域进行图像分割,并将图像分割后的当前图像帧作为所述原始非感兴趣区域。
4.根据权利要求1所述的视频流的处理方法,其特征在于,根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流,包括:
获取包括具有目标编码等级的感兴趣区域的待处理视频流中包括的源画面组,并获取所述源画面组中包括的源关键帧;
获取所述源关键帧中的立即刷新图像IDR帧,并对所述IDR帧进行解析,得到所述IDR帧中包括的目标感兴趣区域的第一目标量化参数以及目标非感兴趣区域的第二目标量化参数;其中,所述量化参数包括序列参数集以及图像参数集;
基于所述第一目标量化参数以及第二目标量化参数对预设的转码函数进行初始化,并基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流。
5.根据权利要求4所述的视频流的处理方法,其特征在于,基于初始化以后的转码函数以及所述码率调整系数,对所述包括具有目标编码等级的感兴趣区域的待处理视频流,得到目标视频流,包括:
基于初始化以后的转码函数所述对所述包括具有目标编码等级的感兴趣区域的待处理视频流进行解协议,得到封装格式数据;
对所述封装格式数据进行解封装,得到音频压缩数据以及视频压缩数据,并对所述音频压缩数据以及视频压缩数据进行音频解码以及视频解码,得到音频原始数据以及视频原始数据;
基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,并对所述转码音频数据以及转码视频数据进行封包处理,得到所述目标视频流。
6.根据权利要求5所述的视频流的处理方法,其特征在于,基于所述码率调整系数对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据,包括:
获取所述待处理视频流所具有的原始码率,并根据所述码率调整系数以及所述原始码率,计算所需要调整的目标码率;
基于所述目标码率对所述音频原始数据以及视频原始数据进行转码,得到转码音频数据以及转码视频数据。
7.根据权利要求1所述的视频流的处理方法,其特征在于,根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级,包括:
获取所述待处理视频流的环路延迟时长,并根据所述环路延迟时长以及当前网络状态,确定所述待处理视频流的丢包率;
在预设的丢包等级匹配规则库中匹配与所述丢包率对应的丢包等级。
8.根据权利要求1所述的视频流的处理方法,其特征在于,根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数,包括:
根据所述丢包等级,在预设的码率等级调整规则库中匹配与所述丢包等级对应的码率调整系数,并在预设的感兴趣区域编码等级调整规则库中匹配与所述丢包等级对应的感兴趣区域编码等级调整系数;
其中,感兴趣区域编码等级调整系数越大,感兴趣区域的参数调整值越大,所述待处理视频流中的感兴趣区域的图像增强粒度越大,所述感兴趣区域的图像清晰度越高。
9.根据权利要求1-8任一项所述的视频流的处理方法,其特征在于,所述视频流的处理方法还包括:
将所述目标视频流推送至媒体播放服务器,以使得所述媒体播放服务器在接收到用户终端发送的视频获取请求时,将所述目标视频流推送至所述用户终端;和/或
将所述目标视频流推送至视频存储服务器,以使得所述视频存储服务器对所述目标视频流进行存储;和/或
将所述目标视频流推送至人工智能算法服务器,以使得所述人工智能算法服务器对所述目标视频流进行智能检测和/或智能识别。
10.根据权利要求1-8任一项所述的视频流的处理方法,其特征在于,接收待处理视频流,包括:
接收视频采集装置通过预设网络环境发送的待处理视频流;其中,所述预设网络环境包括弱网环境。
11.一种视频流的处理装置,其特征在于,包括:
丢包等级确定模块,用于接收待处理视频流,并根据所述待处理视频流的丢包率确定所述待处理视频流的丢包等级;
调整系数确定模块,用于根据所述丢包等级确定与所述待处理视频流对应的码率调整系数以及感兴趣区域编码等级调整系数;
第一调整模块,用于根据所述感兴趣区域编码等级调整系数对所述待处理视频流的感兴趣区域的原始编码等级进行调整,得到具有目标编码等级的感兴趣区域;
视频流转码模块,用于根据所述码率调整系数对包括具有目标编码等级的感兴趣区域的待处理视频流进行转码处理,得到目标视频流。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的视频流的处理方法。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-10任一项所述的视频流的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211056934.8A CN117676266A (zh) | 2022-08-30 | 2022-08-30 | 视频流的处理方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211056934.8A CN117676266A (zh) | 2022-08-30 | 2022-08-30 | 视频流的处理方法及装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117676266A true CN117676266A (zh) | 2024-03-08 |
Family
ID=90071987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211056934.8A Pending CN117676266A (zh) | 2022-08-30 | 2022-08-30 | 视频流的处理方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117676266A (zh) |
-
2022
- 2022-08-30 CN CN202211056934.8A patent/CN117676266A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9071841B2 (en) | Video transcoding with dynamically modifiable spatial resolution | |
US6650705B1 (en) | Method for encoding and transcoding multiple video objects with variable temporal resolution | |
US9414086B2 (en) | Partial frame utilization in video codecs | |
AU2016250476A1 (en) | Adaptive bit rate control based on scenes | |
US10205763B2 (en) | Method and apparatus for the single input multiple output (SIMO) media adaptation | |
EP2055106A2 (en) | Techniques for variable resolution encoding and decoding of digital video | |
US20090207918A1 (en) | Method and apparatus for video transcoding | |
MX2007000810A (es) | Metodo y aparato para conversion ascendente de velocidad por cuadro asistido de codificador (ea-fruc) para compresion de video. | |
CN102396225B (zh) | 用于可靠实时传输的图像和视频的双模式压缩 | |
KR20140110008A (ko) | 객체 검출 정보에 따른 인코딩 | |
WO2022261838A1 (zh) | 残差编码和视频编码方法、装置、设备和系统 | |
WO2021057697A1 (zh) | 视频编解码方法和装置、存储介质及电子装置 | |
EP1227684A2 (en) | Encoding of video signals | |
US10432946B2 (en) | De-juddering techniques for coded video | |
US20240214562A1 (en) | Video coding with dynamic groups of pictures | |
US9210444B2 (en) | Method and apparatus for vision and network guided prefiltering | |
WO2024078066A1 (zh) | 视频解码方法、视频编码方法、装置、存储介质及设备 | |
CN103918258A (zh) | 减少视频编码中的数据量 | |
WO2021056575A1 (zh) | 一种低延迟信源信道联合编码方法及相关设备 | |
US10735773B2 (en) | Video coding techniques for high quality coding of low motion content | |
Rusert et al. | Guided just-in-time transcoding for cloud-based video platforms | |
CN117676266A (zh) | 视频流的处理方法及装置、存储介质、电子设备 | |
KR20060043050A (ko) | 영상 신호의 인코딩 및 디코딩 방법 | |
KR100899666B1 (ko) | 분산 다중 스트리밍 전송 장치 | |
KR20120012089A (ko) | 스케일러블 비디오 코딩기법을 활용하는 영상 제공 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |