CN112468764B - 一种流媒体自适应传输的方法、系统、服务器和存储介质 - Google Patents
一种流媒体自适应传输的方法、系统、服务器和存储介质 Download PDFInfo
- Publication number
- CN112468764B CN112468764B CN202110120951.2A CN202110120951A CN112468764B CN 112468764 B CN112468764 B CN 112468764B CN 202110120951 A CN202110120951 A CN 202110120951A CN 112468764 B CN112468764 B CN 112468764B
- Authority
- CN
- China
- Prior art keywords
- code rate
- frame
- current video
- video frame
- cutting
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 22
- 230000006835 compression Effects 0.000 claims abstract description 42
- 238000007906 compression Methods 0.000 claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/152—Multipoint control units therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种流媒体自适应传输的方法、系统、服务器和存储介质,该方法包括:响应于通过对当前待传输视频流进行裁剪能够满足预设传输条件,判断当前待传输视频流中的当前视频帧组中的当前视频帧是否能够被裁剪,其中,当前视频帧组包括多帧视频帧,视频帧的编码方式为高级跳帧参考模式;若当前视频帧能够被裁剪,则选择码率压缩比例小于当前码率压缩比例,且与当前码率压缩比例之间的差值最小的裁剪方案,按照选取出的裁剪方案对当前视频帧进行裁剪;若当前视频帧不能够被裁剪,则将当前视频帧发送至接收端。通过上述方式,本申请能够自适应调节流媒体输出的码率,且兼容性较好。
Description
技术领域
本申请涉及视频技术领域,具体涉及一种流媒体自适应传输的方法、系统、服务器和存储介质。
背景技术
随着第五代移动通信技术(5th Generation Mobile Networks,5G)等技术的逐渐发展,基于云视频会议技术的各类应用,例如远程医疗或远程教育等业务开始兴起;与传统部署在专有网络上的视频会议业务相比,云视频会议的服务端并发量大,互联网部署导致网络质量不可控,因此,需要一种高性能的流媒体自适应方法,能够根据网络情况,自动调节流媒体输出的码率,保障视频观看流畅。
现有的云视频会议大多采用选择性转发单元(Selective Forwarding Unit,SFU)架构运行,通常采用终端上传三路不同编码质量的码流,服务端根据网络探测结果选择一股码流下发的方法来实现流媒体自适应,但存在以下问题:用户看到的画面可能会突然卡顿一小段时间,不同码率的图像编码质量甚至分辨率都不一致,导致切换时画面一会模糊一会清晰,用户体验不佳。目前虽然有对这种传输方式进行改进的措施,但仍然可能造成短暂的卡顿;或者需要消耗大量的中央处理器(Central Processing Unit,CPU)资源,大幅降低了单节点的接入能力,且图像效果变差;或者对终端的解码器要求较高,难以形成多种类终端的统一解决方案,且实际的残留码率较大。
发明内容
本申请提供一种流媒体自适应传输的方法、系统、服务器和存储介质,能够自适应调节流媒体输出的码率,且兼容性较好。
为解决上述技术问题,本申请采用的技术方案是:提供一种流媒体自适应传输的方法,该方法包括:响应于通过对当前待传输视频流进行裁剪能够满足预设传输条件,判断当前待传输视频流中的当前视频帧组中的当前视频帧是否能够被裁剪,其中,当前视频帧组包括多帧视频帧,视频帧的编码方式为高级跳帧参考模式;若当前视频帧能够被裁剪,则选择码率压缩比例小于当前码率压缩比例,且与当前码率压缩比例之间的差值最小的裁剪方案,按照选取出的裁剪方案对当前视频帧进行裁剪;若当前视频帧不能够被裁剪,则将当前视频帧发送至接收端。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种服务器,该服务器包括互相连接的存储器和处理器,其中,存储器用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的流媒体自适应传输的方法。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种视频传输系统,该视频传输系统包括互相连接的服务器与接收端,服务器用于向接收端发送视频流,服务器为上述技术方案中的服务器。
为解决上述技术问题,本申请采用的另一技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的流媒体自适应传输的方法。
通过上述方案,本申请的有益效果是:先检测对待传输视频流进行裁剪后生成的视频流是否能够满足预设传输条件,如果在裁剪后能够满足预设传输条件,则进一步判断待传输视频流中的当前视频帧组中的当前视频帧是否能够被裁剪,如果当前视频帧能够被裁剪,则选择码率压缩比例小于当前码率压缩比例且与当前码率压缩比例之间的差值最小的裁剪方案,然后利用该裁剪方案对当前视频帧进行裁剪;如果当前视频帧不能够被裁剪,则直接将该当前视频帧发送至接收端,实现对待传输视频流的传输;通过采用最合适的裁剪方案对待传输的视频流进行适应性裁剪,能够满足接收端的需求,实现自适应调节流媒体输出的码率,实现修改传输带宽;而且由于采用高级跳帧参考模式进行编码,其仍然属于H.264编码,主流硬软设备均能兼容该编码方式,方便主流硬软设备进行解码,无需更新解码设备,兼容性较好。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的流媒体自适应传输的方法一实施例的流程示意图;
图2是图1所示的实施例中增强层帧、基础层帧以及刷新帧的参考示意图;
图3是图1所示的实施例中发送端、服务器以及接收端的连接示意图;
图4是本申请提供的流媒体自适应传输的方法另一实施例的流程示意图;
图5是图4所示的实施例中步骤46的流程示意图;
图6是本申请提供的(8,1,TRUE)情况下的均匀裁剪策略;
图7是本申请提供的(8,1,TRUE)情况下的完整均匀裁剪策略;
图8是图5所示的实施例中步骤53的流程示意图;
图9是本申请提供的服务器一实施例的结构示意图;
图10是本申请提供的视频传输系统一实施例的结构示意图;
图11是本申请提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
标准的视频会议系统通常采用的是多个客户端连接到指定服务器,分别将码流上行到服务器,由服务器根据业务策略选择下行码流到各个客户端。在实际应用中,由于客户端所在的网络质量并不可靠,在客户端上行码流时,如果遇到网络带宽不足的情况,通常根据带宽嗅探结果来动态调整上行码率,进行流媒体自适应。在服务器准备下行码流时,如果遇到网络带宽不足的情况,在传统的多点控制单元(Multi Control Unit,MCU)中,常见的方法是通过全编全解,即根据每个客户端自身的网络情况独立编码合适大小的码流,该方式消耗了大量计算资源,导致在传统MCU模式下普遍设备接入量较低。对于SFU模式,更希望服务器不进行二次编码,在大幅减轻系统负荷、提升接入量的同时,避免二次编码带来的画质损失。
目前H.264高级视频编码(Advanced Video Coding,AVC)标准编码模式已经非常成熟,它的问题在于所有的预测帧(Predictive frame,P帧)依赖前一帧作为参考帧,帧大小相对较小;帧内帧(Intra frame,I帧)不依赖任何帧,帧大小相对较大;当任意一个P帧丢失时,就需要重新申请I帧,造成视频画面的短暂卡顿以及网络带宽的进一步恶化,甚至影响其他本来正常的客户端。本申请中选择采用H.264 AVC中的高级跳帧参考模式作为编码方案,高级跳帧参考模式与传统编码的区别在于:改变了帧的参考关系,但是编码算法并未发生本质变化,因此能够被所有主流H.264解码器支持。
为了解决目前传输流媒体时所存在的弊端,本申请采用一种更具有通用性的编解码方案以及匹配的帧率裁剪的方法;且通过将网络探测的期望码率与裁剪帧率过程结合起来,最终能够输出接近期望值的码率。
请参阅图1,图1是本申请提供的流媒体自适应传输的方法一实施例的流程示意图,该方法包括:
步骤11:响应于通过对当前待传输视频流进行裁剪能够满足预设传输条件,判断当前待传输视频流中的当前视频帧组中的当前视频帧是否能够被裁剪。
待传输视频流包括多组视频帧组,每组视频帧组包括多帧视频帧,视频帧的编码方式为高级跳帧参考模式,每帧视频帧具有一个帧层次,至少两帧视频帧的帧层次不同;例如,以三层结构为例,帧层次可以为1-3。
在一具体的实施例中,当前视频帧组包括第一层视频帧、第二层视频帧以及第三层视频帧,第一层视频帧、第二层视频帧以及第三层视频帧可以分别为基础层(BASE)帧、增强层(ENHANCE)帧以及刷新帧(Instantaneous Decoder Refresh,IDR),如图2所示,基础层帧记作B1,增强层帧记作E1,n为基础层帧的数量,增强层帧可参考IDR帧或基础层帧,基础层帧可参考IDR帧或基础层帧;可使用(N1,M1,H1)表示编码参数,N1表示基础层的周期,M1表示增强层的周期,H1表示轮回时是参考上一视频帧组的首个为基础层帧还是I帧,如果参考基础层帧,则H1为“TURE”,否则H1为“FALSE”,可以出于以下的实际因素来设置编码参数:
1)作为总参考的基础层帧不应当与后续的帧相隔太远,否则将失去参考意义,导致后续P帧过大,因此最后一个参数需要用“TRUE”。
2)实际场景中人的变化一般不大,在较短周期内,应当减少前后帧的依赖,抽取尽量均匀,使得画面感觉是流畅的。
3)基础层的周期和增强层的周期可根据主流编码芯片的支持程度来进行选择设置。
例如,可选择(8,1,TRUE)作为实际使用的编码参数,即16帧作为一个循环周期,以帧序号1为I帧为例,对应的实际参考关系如表1所示:
表1 (8,1,TRUE)情况下的AVC高级跳帧参考模式下的帧层次关系
帧序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
帧层次 | 1 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 1 | 3 | 2 |
参考帧 | - | 1 | 1 | 3 | 1 | 5 | 1 | 7 | 1 | 9 | 1 | 11 | 1 | 13 | 1 | 15 | - | 17 | 17 |
可先检测对该待传输视频流进行裁剪后得到的视频流是否能够满足预设传输条件,如果判断出对该待传输视频流进行裁剪能够满足预设传输条件,由于不是每个视频帧均可被裁剪的,服务器可进一步判断当前视频帧组中的当前视频帧是否能够被裁剪,即确定当前视频帧组中的哪一个视频帧适合被裁剪。具体地,预设传输条件可包括码率、帧率或带宽满足设定的范围,例如,当前待传输视频的码率为4M,对其进行裁剪后码率为0.6M,如果接收端所需的码率为0.85M,则此时可以确定能够通过裁剪满足预设传输条件;如果接收端所需的码率为0.5M,则此时可以确定无法通过裁剪满足预设传输条件。
步骤12:若当前视频帧能够被裁剪,则基于当前码率与预期接收码率,计算出当前码率压缩比例,并选择码率压缩比例小于当前码率压缩比例,且与当前码率压缩比例之间的差值最小的裁剪方案,按照选取出的裁剪方案对当前视频帧进行裁剪。
可利用预设裁剪策略对当前视频帧组中的多帧视频帧进行选择性裁剪,生成一裁剪后的视频帧组,记作裁剪视频帧组;例如,当前视频帧组包括16帧图像帧,在进行裁剪判决后,裁剪掉5帧视频帧,则裁剪视频帧组包括11帧图像帧;具体地,预设采集策略与当前码率与预期接收码率相关,可根据当前码率与预期接收码率,计算出当前码率压缩比例,然后利用该当前码率压缩比例作为条件,从多种裁剪方案中选择一个最适合当前状况的裁剪方案,进一步地,每种裁剪方案对应一个码率压缩比例,可从多种裁剪方案中筛选出码率压缩比例小于当前码率压缩比例的裁剪方案,得到筛选后的裁剪方案,然后在从这些筛选后的裁剪方案中选取与当前码率压缩比例的差值最小的裁剪方案作为最优的裁剪方案。
步骤13:若当前视频帧不能够被裁剪,则将当前视频帧发送至接收端。
如果当前视频帧不符合裁剪的条件,则表明该当前视频帧无法被裁剪,此时可直接将该当前视频帧发送至接收端,实现流式传输;具体地,该接收端可以为客户端;例如,如图3所示,终端31上行多股码流至服务器32,服务器32在判断出通过对一股码流进行裁剪能达到终端33的预期接收码率后,对该股码流进行裁剪并发送裁剪后的码流至终端33。
本实施例提供了一种流媒体自适应传输的方法,先检测如果对待传输视频流进行裁剪后生成的视频流能否满足预设传输条件,如果在裁剪后能够满足预设传输条件,则进一步判断待传输视频流中的当前视频帧是否具备裁剪的条件,如果当前视频帧具备裁剪的条件,则对当前视频帧进行裁剪;如果当前视频帧不能够被裁剪,则直接将该当前视频帧发送至接收端,实现对待传输视频流的传输;通过对待传输的视频流进行适应裁剪,能够满足接收端的需求,实现自适应修改传输带宽;而且由于采用AVC高级跳帧参考模式进行编码,其仍然属于H.264 AVC编码,主流硬软设备均能兼容解码,无需更新解码设备,因而兼容性较好。
请参阅图4,图4是本申请提供的流媒体自适应传输的方法另一实施例的流程示意图,该方法包括:
步骤41:选择预设码流表中码率最大的待传输视频流作为当前待传输视频流。
该传输预设码流表包括至少一个待传输视频流以及相应的码率,每个待传输视频流对应的码率不同,可默认先选择码率最大的待传输视频流来传输;例如,该传输预设码流表包括三个待传输的视频流,即码率分为三个档位,它们对应的码率分别为2M、1.5M以及0.7M,则先传输码率为2M的视频流。
步骤42:判断当前待传输视频流的码率是否小于或等于接收端的预期接收码率。
可判断当前选择出的待传输视频流所对应的码率与接收端期望的码率之间的大小关系,以便接收端判断能否流畅接收该当前待传输视频流。
步骤43:若当前待传输视频流的码率小于或等于预期接收码率,则将当前待传输视频流传输至接收端。
在当前待传输视频流的码率较小时,接收端有能力接收该当前待传输视频流,此时可直接将该当前待传输视频流发送给接收端,接收端可流畅地接收,能够使得播放出来的视频不卡顿。
如果当前码率大于接收端的预期接收码率,则执行步骤44-步骤46,具体过程将在下文进行描述,通过执行这些步骤可以最大幅度地进行伸缩;而且在某些业务场景中,比如:终端B需要观看多人视频时,只需要以较低分辨率观看终端A的小头像,并不需要观看终端A的高清图像,为了节约带宽,此时调整初始的码率档位即可,比如,可选择码率最低的待传输视频流作为当前待传输视频流。
步骤44:若当前待传输视频流的码率大于接收端的预期接收码率,则判断通过对当前待传输视频流进行裁剪是否能够满足预设传输条件。
可判断通过对当前待传输视频流进行裁剪是否能够使得裁剪后的视频流的码率小于预期接收码率;或者还可判断裁剪后的视频流的码率与预期接收码率之间的差值是否小于设定值。
步骤45:若通过对待传输视频流进行裁剪能够满足预设传输条件,则基于当前码率与预期接收码率,计算出当前码率压缩比例。
从网络收发统计层面得知的当前实际带宽比例与预期帧率之间存在非线性转换关系,原因在于不同层次的视频帧由于差量关系,本身大小存在差异,不同层次的视频帧在实际码率中的权重并不相同;同时,在实际应用中,该权重被许多因素影响,例如:当用户所处的整体场景处于相对静止状态时(比如常见的大会场景),帧层次为1的视频帧较大而其他层次的视频帧较小,这样可以得到相对最优的画质;而场景内容变化较大时(比如手机用户进入会议,人本身可能在运动,且主要场景都是人头,轻微头部移动即造成了巨大的场景变化),其他层次的比例就会相对增大;因此需要为不同帧层次的视频帧分别建立权重统计,可采用图5所示的步骤进行操作。
步骤51:按照预设周期统计每层视频帧的数据包大小总和与数据包的数量。
可先按照预设周期进行统计,该预设周期可根据具体的应用需求进行设置,例如,可将预设周期设置为近似于循环周期的整数倍,考虑到最低帧率为5的情况,以10秒为一个统计的周期,即实时采取10秒前的统计结果作为依据,当统计的周期结束后,可以得知各层的数据包大小总和与数据包的数量。
步骤52:利用每层视频帧的数据包大小总和与数据包的数量,计算出相应的平均码率。
在获取到每层的数据包大小总和与数据包的数量后,可以按照如下公式计算每层的平均码率:
AvgLayeri = TotalBitrateLayeri / PacketCountLayeri
其中,AvgLayeri为第i层的平均码率,TotalBitrateLayeri为第i层的数据包大小总和,PacketCountLayeri为第i层的数据包的数量,i为层数,i的取值为1-3。
可以理解地,当发送端存在小规模网络丢包时,不会导致平均码率信息无法获取;如果发生了大规模的网络丢包,可以通过扩大统计的周期,或采用上一正常周期的统计结果作为参考;如果终端所在的场景未发生剧烈改变,不影响预测结果。
步骤53:利用每层视频帧的平均码率计算出每种裁剪方案对应的码率压缩比例。
不同层次的视频帧所携带的信息量存在差异,通常来说,层次越高的视频帧大小越小;当进行裁剪时,尽量裁剪较少的视频帧达到期望的码率;同时,当低层次的视频帧被裁剪时,参考该低层视频帧的高层视频帧也将失效。因而可设置一预设裁剪策略,然后按照预设裁剪策略对当前视频帧进行裁剪,该预设裁剪策略包括:
1)保留帧层次为第一预设值的当前视频帧,该第一预设值可以为1。
2)当对当前视频帧组进行裁剪的裁剪帧数为偶数时,按对裁剪帧层次为第二预设值与第三预设值的当前视频帧,该第二预设值可以为2;例如,希望裁剪4帧,可裁剪2个第二层视频帧和参考该第二层视频帧的第三层视频帧。
3)当裁剪帧数为奇数时,裁剪帧层次为第三预设值的当前视频帧,或者按对裁剪帧层次为第二预设值与第三预设值的当前视频帧,且裁剪帧层次为第三预设值的当前视频帧,该第三预设值可以为3。具体地,当裁剪帧数为奇数且裁剪帧数大于设定值(比如3)时,除了按对裁剪第二层视频帧和第三层视频帧,再额外裁剪一个第三层视频帧,考虑到均匀裁剪,可选择裁剪第一层视频帧对应的第三层视频帧。
此时,裁剪模型可以简化为裁剪偶数个视频帧时保持均匀分布的策略,在选择裁剪模型时,应当考虑以下问题:
1)循环的问题,即裁剪均匀的同时需要参考下一组的视频帧情况。
2)头部帧更大,以裁剪数量为2为例,裁剪第7-8帧和裁剪第9-10帧从数理上无差别,但是实际对于网络流量平滑发送来说裁剪第7-8帧更有利。
图6为(8,1,TRUE)情况下的裁剪策略,“O”表示保持,“X”表示裁剪;对图7进行扩展后可得到完整的裁剪策略,如图7所示。以裁剪数为5帧为例,可裁剪第2帧、第7-8以及第15-16帧的视频帧;在制定好裁剪策略后,可采用图8所示的步骤计算出每种裁剪方案对应的码率压缩比例:
步骤531:对第一层视频帧的平均码率进行处理以得到第一比值,计算第二层视频帧的平均码率与第一层视频帧的平均码率的比值,记作第二比值,以及计算第三层视频帧的平均码率与第一层视频帧的平均码率的比值,记作第三比值。
各层次的平均码率计算完成后,可以以第一层作为参考,计算其他层次的单帧大小比例,具体可按照如下公式进行计算:
RatioLayer1 = 1.0
RatioLayer2 = AvgLayer2 / AvgLayer1
RatioLayer3 = AvgLayer3 / AvgLayer1
其中,RatioLayer1为第一比值,RatioLayer2为第二比值,RatioLayer3为第三比值。
可以理解地,影响上述比例的最大因素为场景内容变化程度,即使发送端进行码率上行的自适应,用户所在的场景未发生改变,调整编码码率必然引入I帧,该比例仍然有参考意义。
步骤532:利用第一层视频帧的周期、第一比值、第二比值以及第三比值,计算出第一层视频帧的码率在总码率中所占的比例。
总码率为三层视频帧对应的码率的加权和,可采用如下公式计算第一层视频帧的码率在总码率中所占的比例:
BitratePercentLayer1 = 1/[RoundBase × RatioLayer3 + (RoundBase-1) ×RatioLayer2 + 1]
其中,BitratePercentLayer1为第一层视频帧的码率在总码率中所占的比例,RoundBase为第一层视频帧的周期,比如,RoundBase = 8。
步骤533:利用第一层视频帧的码率在总码率中所占的比例、第一比值、第二层视频帧的裁剪数量、第二比值以及第三层视频帧的裁剪数量以及第三比值,计算出每种裁剪方案对应的码率压缩比例。
通过第一层视频帧的码率在总码中所占的比例乘以对应层次的比值,可以得出每一层的视频帧在完整码流中的比例,按照图7的裁剪策略逐一计算各裁剪档位实际的压缩比例,计算公式如下所示:
CP = 1-BitratePercentLayer1 × ReduceNumLayer2 × RatioLayer2 -
BitratePercentLayer1 × ReduceNumLayer3 × RatioLayer3
其中,ReduceNumLayer2为第二层视频帧的裁剪数量,ReduceNumLayer3为第三层视频帧的裁剪数量;例如,以裁剪3帧为例,ReduceNumLayer2 = 1,ReduceNumLayer3 = 2。
步骤46:选择码率压缩比例小于当前码率压缩比例,且与当前码率压缩比例之间的差值最小的裁剪方案,按照选取出的裁剪方案对当前视频帧进行裁剪。
完成各裁剪档位的压缩比例计算后,可进入工作状态;比如,假设下行的原始码率为2M,实际带宽嗅探后的结果为1.5M,那么需要将码率压缩到原始的75%,将75%作为期望压缩比例输入,选择码率压缩比例小于且最接近的裁剪档位作为实际裁剪方案。
进一步地,在判断出当前视频帧能够被裁剪后,可以修改业务信息,该业务信息包括传输帧率与每帧视频帧对应的媒体序列,该媒体序列用以标识每一个视频帧,例如,在裁剪之前,当前视频帧组包括16帧,其对应的媒体序列为1-16,对第7-8帧进行裁剪,此时可将媒体序列修改为1-14,防止接收端将裁剪的视频帧错判为丢帧。
可以理解地,当新的统计结果产生或新的期望压缩比例输入后,可重新计算适合的裁剪档位;为加速符合实际场景的比例使用,可以在首次轮回结束时,就进行一次统计计算;进一步地,在首次统计结果得出前,可使用基于大量实例得出的实验数据作为参考比例。同时,在实际应用中,无论是否需要进行裁剪,都应对每种视频流在统计周期内的帧大小和帧层次进行记录,从而得出统计结果。
步骤47:响应于通过对当前待传输视频流进行裁剪无法满足预设传输条件,判断预设码流表中是否存在小于当前码率的待传输视频流。
如果对当前待传输视频流进行裁剪也无法满足预设传输条件,则进一步判断预设码流表中是否还有其他码率小于当前码率的待传输视频流。
步骤48:若预设码流表中不存在小于当前码率的待传输视频流,则不发送当前待传输视频流。
如果预设码流表中不存在码率小于当前码率的待传输视频流,则表明当前待传输视频流是该预设码流表中码率最小的视频流,用最小码率来进行传输仍然无法正常接收,此时选择不传输该当前待传输视频流;例如,预设码流表中包括1M码率的待传输视频流、2M码率的待传输视频流以及0.6M码率的待传输视频流,当前待传输视频流的码率为0.6M,接收端所需的码率为0.4M,此时无码率更小的视频流可选,不向接收端传输任何视频流。
步骤49:若预设码流表中存在小于当前码率的待传输视频流,则选择预设码流表中的下一个待传输视频流作为当前待传输视频流。
如果预设码流表中存在码率更小的待传输视频流,则可判断当前待传输视频流的码率是否小于或等于接收端的预期接收码率,即执行步骤42。
由于不同场景下,不同层次的视频帧的码率比例变化较大,本申请提供了一种通过实时计算匹配出当前最合适的裁剪帧率的方法,具有以下优点:
1)伸缩范围大,按照本申请所提供的(8,1,TURE)参数进行编码,最高可以抽取1/16的帧率,在部分场景下实际码率可达到原有的11%,可以抽取的范围远大于可分级视频编码(Scalable Video Coding,SVC)。
2)解码兼容性好,本申请所采用的AVC高级跳帧参考模式编码仍然为H.264 AVC编码,主流硬软设备均能兼容进行解码,对于解码端的要求大幅降低的同时,也方便形成统一的流媒体处理方案。
3)对于利用高级跳帧参考模式编码技术进行编码生成的视频流,服务器可对该视频流进行抽帧处理,裁剪掉部分视频帧,能够实现流媒体自适应时减少下行带宽;而且在裁剪视频帧时,通过实时计算得出实时的各层视频帧的权重,找到与当前码率压缩比例最匹配的裁剪方案进行裁剪,实现最接近期望码率压缩比例,贴合接收端的实际接收带宽。
请参阅图9,图9是本申请提供的服务器一实施例的结构示意图,服务器70包括互相连接的存储器71和处理器72,存储器71用于存储计算机程序,计算机程序在被处理器72执行时,用于实现上述实施例中的流媒体自适应传输的方法。
请参阅图10,图10是本申请提供的视频传输系统一实施例的结构示意图,视频传输系统80包括互相连接的服务器81与接收端82,服务器81用于向接收端82发送视频流,服务器81为上述实施例中的服务器。
视频传输系统80还包括发送端83,发送端83使用高级跳帧参考模式编码技术进行编码,接收端82与发送端83可以为移动终端或计算机等设备;高级跳帧参考模式配合抽帧方案,能够实现流媒体自适应时减少下行带宽的效果;在抽帧时,不是单纯的按期望压缩比例换算成抽取帧率,而是通过实时计算码率得到实时的各层视频帧的权重,实现最接近期望码率缩减值的效果。
请参阅图11,图11是本申请提供的计算机可读存储介质一实施例的结构示意图,计算机可读存储介质90用于存储计算机程序91,计算机程序91在被处理器执行时,用于实现上述实施例中的流媒体自适应传输的方法。
计算机可读存储介质90可以是服务端、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种流媒体自适应传输的方法,其特征在于,包括:
响应于通过对当前待传输视频流进行裁剪能够满足预设传输条件,判断所述当前待传输视频流中的当前视频帧组中的当前视频帧是否能够被裁剪,其中,所述当前视频帧组包括第一层视频帧、第二层视频帧以及第三层视频帧,所述视频帧的编码方式为高级跳帧参考模式;
若是,则按照预设周期统计每层所述视频帧的数据包大小总和与数据包的数量;利用每层所述视频帧的数据包大小总和与数据包的数量,计算出相应的平均码率;利用每层所述视频帧的平均码率计算出每种裁剪方案对应的码率压缩比例;基于当前码率与预期接收码率,计算出当前码率压缩比例;选择码率压缩比例小于所述当前码率压缩比例,且与所述当前码率压缩比例之间的差值最小的裁剪方案,按照选取出的裁剪方案对所述当前视频帧进行裁剪;其中,所述利用每层所述视频帧的平均码率计算出每种裁剪方案对应的码率压缩比例的步骤,包括:对所述第一层视频帧的平均码率进行处理以得到第一比值,计算所述第二层视频帧的平均码率与所述第一层视频帧的平均码率的比值,记作第二比值,以及计算所述第三层视频帧的平均码率与所述第一层视频帧的平均码率的比值,记作第三比值;利用所述第一层视频帧的周期、所述第一比值、所述第二比值以及所述第三比值,计算出所述第一层视频帧的码率在总码率中所占的比例;利用所述第一层视频帧的码率在总码率中所占的比例、所述第一比值、所述第二层视频帧的裁剪数量、所述第二比值以及所述第三层视频帧的裁剪数量以及所述第三比值,计算出每种所述裁剪方案对应的码率压缩比例;
若否,则将所述当前视频帧发送至接收端;
其中,所述对所述当前视频帧进行裁剪的步骤,包括:按照预设裁剪策略对所述当前视频帧进行裁剪;其中,所述预设裁剪策略包括保留帧层次为第一预设值的所述当前视频帧;当对所述当前视频帧组进行裁剪的裁剪帧数为偶数时,按对裁剪所述帧层次为第二预设值与第三预设值的所述当前视频帧;当所述裁剪帧数为奇数时,裁剪所述帧层次为所述第三预设值的所述当前视频帧,或者按对裁剪所述帧层次为所述第二预设值与所述第三预设值的所述当前视频帧,且裁剪所述帧层次为所述第三预设值的所述当前视频帧。
2.根据权利要求1所述的流媒体自适应传输的方法,其特征在于,所述响应于通过对当前待传输视频流进行裁剪能够满足预设传输条件的步骤之前,包括:
选择预设码流表中码率最大的待传输视频流作为所述当前待传输视频流;
判断所述当前待传输视频流的码率是否小于或等于所述接收端的预期接收码率;
若是,则将所述当前待传输视频流传输至所述接收端;
若否,则判断通过对所述当前待传输视频流进行裁剪是否能够满足所述预设传输条件。
3.根据权利要求2所述的流媒体自适应传输的方法,其特征在于,所述判断通过对所述当前待传输视频流进行裁剪是否能够满足所述预设传输条件的步骤,包括:
判断通过对所述当前待传输视频流进行裁剪是否能够使得裁剪后的视频流的码率小于所述预期接收码率。
4.根据权利要求2所述的流媒体自适应传输的方法,其特征在于,所述方法还包括:
响应于通过所述对当前待传输视频流进行裁剪无法满足所述预设传输条件,判断所述预设码流表中是否存在小于当前码率的待传输视频流;
若否,则不发送所述当前待传输视频流;
若是,则选择所述预设码流表中的下一个待传输视频流作为所述当前待传输视频流,返回所述判断所述当前待传输视频流的码率是否小于或等于所述接收端的预期接收码率的步骤。
5.根据权利要求1所述的流媒体自适应传输的方法,其特征在于,所述方法还包括:
在判断出所述当前视频帧能够被裁剪后,修改业务信息;
其中,所述业务信息包括传输帧率与每帧所述视频帧对应的媒体序列。
6.一种服务器,其特征在于,包括互相连接的存储器和处理器,其中,所述存储器用于存储计算机程序,所述计算机程序在被所述处理器执行时,用于实现权利要求1-5中任一项所述的流媒体自适应传输的方法。
7.一种视频传输系统,其特征在于,包括互相连接的服务器与接收端,所述服务器用于向所述接收端发送视频流,所述服务器为权利要求6所述的服务器。
8.一种计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序在被处理器执行时,用于实现权利要求1-5中任一项所述的流媒体自适应传输的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120951.2A CN112468764B (zh) | 2021-01-28 | 2021-01-28 | 一种流媒体自适应传输的方法、系统、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120951.2A CN112468764B (zh) | 2021-01-28 | 2021-01-28 | 一种流媒体自适应传输的方法、系统、服务器和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112468764A CN112468764A (zh) | 2021-03-09 |
CN112468764B true CN112468764B (zh) | 2021-05-04 |
Family
ID=74802512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110120951.2A Active CN112468764B (zh) | 2021-01-28 | 2021-01-28 | 一种流媒体自适应传输的方法、系统、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112468764B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113676641B (zh) * | 2021-08-17 | 2023-04-07 | 杭州叙简未兰电子有限公司 | 一种基于5g执法记录仪的双摄像头三码流方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613331A (zh) * | 2017-11-03 | 2018-01-19 | 中广热点云科技有限公司 | 视频传输过程的码率控制方法 |
CN108810545A (zh) * | 2018-07-04 | 2018-11-13 | 中南大学 | 用于视频编码的方法、装置、计算机可读介质及电子设备 |
CN111107297A (zh) * | 2019-12-30 | 2020-05-05 | 广州市百果园网络科技有限公司 | 一种视频传输方法、装置、资源服务器和存储介质 |
CN111416978A (zh) * | 2020-04-29 | 2020-07-14 | 随锐科技集团股份有限公司 | 视频编解码方法及系统、计算机可读存储介质 |
CN111726636A (zh) * | 2019-03-18 | 2020-09-29 | 四川大学 | 一种基于时域下采样与帧率上转换的hevc编码优化方法 |
CN112312137A (zh) * | 2020-10-27 | 2021-02-02 | 唐桥科技(杭州)有限公司 | 一种视频传输方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391825A (zh) * | 2017-08-03 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 一种视频转码方法及其装置、服务器、可读存储介质 |
-
2021
- 2021-01-28 CN CN202110120951.2A patent/CN112468764B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613331A (zh) * | 2017-11-03 | 2018-01-19 | 中广热点云科技有限公司 | 视频传输过程的码率控制方法 |
CN108810545A (zh) * | 2018-07-04 | 2018-11-13 | 中南大学 | 用于视频编码的方法、装置、计算机可读介质及电子设备 |
CN111726636A (zh) * | 2019-03-18 | 2020-09-29 | 四川大学 | 一种基于时域下采样与帧率上转换的hevc编码优化方法 |
CN111107297A (zh) * | 2019-12-30 | 2020-05-05 | 广州市百果园网络科技有限公司 | 一种视频传输方法、装置、资源服务器和存储介质 |
CN111416978A (zh) * | 2020-04-29 | 2020-07-14 | 随锐科技集团股份有限公司 | 视频编解码方法及系统、计算机可读存储介质 |
CN112312137A (zh) * | 2020-10-27 | 2021-02-02 | 唐桥科技(杭州)有限公司 | 一种视频传输方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112468764A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10321138B2 (en) | Adaptive video processing of an interactive environment | |
CN105610635B (zh) | 语音编码发送方法和装置 | |
CN111601118B (zh) | 直播视频的处理方法、系统、装置及终端 | |
CN105025249B (zh) | 视频监控数据传输控制方法、装置及视频监控系统 | |
CN102625106A (zh) | 场景自适应的屏幕编码码率控制方法及其系统 | |
US8243117B2 (en) | Processing aspects of a video scene | |
CN111277826A (zh) | 一种视频数据处理方法、装置及存储介质 | |
CN114640653B (zh) | 一种视频会议中的流媒体分发系统及方法 | |
US9232244B2 (en) | Efficient frame forwarding in large scale real-time screen content sharing meetings | |
US20170142029A1 (en) | Method for data rate adaption in online media services, electronic device, and non-transitory computer-readable storage medium | |
CN111970565A (zh) | 视频数据处理方法、装置、电子设备及存储介质 | |
CN112468764B (zh) | 一种流媒体自适应传输的方法、系统、服务器和存储介质 | |
CN115883877A (zh) | 一种超高清视频流的传输方法及系统 | |
CN111617466B (zh) | 编码格式的确定方法、装置及云游戏的实现方法 | |
CN112866746A (zh) | 一种多路串流云游戏控制方法、装置、设备及存储介质 | |
CN110784731A (zh) | 一种数据流转码方法、装置、设备及介质 | |
CN111064960B (zh) | 一种视频编码的方法、装置、服务器和存储介质 | |
CN113747102A (zh) | 视频通话处理方法、装置、设备及存储介质 | |
CN117956167A (zh) | 视频编码的码率控制方法、装置及计算机可读存储介质 | |
CN115942009A (zh) | 基于混合式编码的远程视频业务办理方法和装置 | |
US20230247069A1 (en) | Systems and Methods for Adaptive Video Conferencing | |
CN116962613A (zh) | 数据传输方法及装置、计算机设备、存储介质 | |
CN115174846A (zh) | 弱网环境下提升视频会议质量的方法、系统、终端及介质 | |
CN115396733A (zh) | 视频帧传输方法、装置、设备、存储介质及产品 | |
CN108271071B (zh) | 一种提高视频清晰度的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |