CN115278302A - 直播流媒体数据处理方法、系统、装置和计算机设备 - Google Patents
直播流媒体数据处理方法、系统、装置和计算机设备 Download PDFInfo
- Publication number
- CN115278302A CN115278302A CN202210904547.9A CN202210904547A CN115278302A CN 115278302 A CN115278302 A CN 115278302A CN 202210904547 A CN202210904547 A CN 202210904547A CN 115278302 A CN115278302 A CN 115278302A
- Authority
- CN
- China
- Prior art keywords
- streaming media
- coding
- data
- live
- slicing
- 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 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000003860 storage Methods 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 105
- 230000002596 correlated effect Effects 0.000 claims description 38
- 238000004806 packaging method and process Methods 0.000 claims description 36
- 238000005538 encapsulation Methods 0.000 claims description 32
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000013501 data transformation Methods 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims description 5
- 235000019580 granularity Nutrition 0.000 description 92
- 238000005516 engineering process Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 23
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000011161 development Methods 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000005192 partition Methods 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 10
- 238000013139 quantization Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000001524 infective effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011835 investigation 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
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请涉及一种直播流媒体数据处理方法、系统、装置、计算机设备、存储介质和计算机程序产品。该方法包括:缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;通过整体编码速率不小于直播流媒体源数据的帧率至少两个编码服务器,对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;将各编码服务器各自的编码视频数据合并,获得用于向直播客户端发送的直播流媒体编码数据。采用本方法能够确保直播的实时性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种直播流媒体数据处理方法、系统、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,直播形式越来越多样化,利用视讯方式进行网络直播,可以将产品展示、相关会议、背景介绍、方案测评、网上调查、对话访谈、在线培训、游戏娱乐等内容现场发布到互联网上,利用互联网的直观、快速,表现形式好、内容丰富、交互性强等特点,加强网络直播的活动效果。随着音视频技术的发展,网络直播中的音视频等流媒体的数据量急剧增加,对实时编码的算力要求越来越高,在网络直播过程中容易出现播放卡顿的问题,影响了直播的实时性。
发明内容
基于此,有必要针对上述技术问题,提供一种能够确保直播实时性的直播流媒体数据处理方法、系统、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种直播流媒体数据处理方法。所述方法包括:
缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关;
通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率;
将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
第二方面,本申请提供了一种直播流媒体数据处理系统。系统包括:切片服务器、合并服务器以及包括至少两个编码服务器的编码服务器集群;
切片服务器,用于缓存直播流媒体数据,响应于缓存的直播流媒体数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体数据切片,获得能够独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关,且与编码服务器集群中编码服务器的数量正相关;
编码服务器集群,用于通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;
合并服务器,用于将各编码服务器各自的编码视频数据合并获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
第三方面,本申请还提供了一种直播流媒体数据处理装置。所述装置包括:
直播流切片模块,用于缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关;
切片并行编码模块,用于通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率;
编码数据合并模块,用于将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关;
通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率;
将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关;
通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率;
将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关;
通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率;
将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
上述直播流媒体数据处理方法、系统、装置、计算机设备、存储介质和计算机程序产品,在缓存的直播流媒体源数据的流媒体时长达到目标缓存时长时,触发按照预设切片粒度将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段,通过整体编码速率不小于直播流媒体源数据的帧率的至少两个编码服务器,对切片获得的流媒体片段进行并行编码,并将获得的各编码服务器各自的编码视频数据合并,得到用于向直播客户端发送的直播流媒体编码数据。对于直播流媒体数据的处理中,缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,且至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率,能够确保通过至少两个编码服务器对切片获得的流媒体片段进行并行编码的处理效率与直播流媒体源数据的帧率相匹配,避免了直播过程中因编码处理效率问题产生卡顿,从而确保了直播的实时性。
附图说明
图1为一个实施例中直播流媒体数据处理方法的应用环境图;
图2为一个实施例中直播流媒体数据处理方法的流程示意图;
图3为一个实施例中并行编码处理的流程示意图;
图4为一个实施例中视频分辨率对比的示意图;
图5为一个实施例中音视频处理的流程示意图;
图6为一个实施例中视频编码处理的流程示意图;
图7为一个实施例中编码树单元分割的示意图;
图8为另一个实施例中直播流媒体数据处理方法的流程示意图;
图9为一个实施例中超高清视频直播的界面示意图;
图10为一个实施例中直播流媒体数据处理系统的结构框图;
图11为一个实施例中直播流媒体数据处理装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。具体来说,本申请实施例提供的直播流媒体数据处理方法,可以应用于如图1所示的应用环境中。其中,终端包括第一终端1021和第二终端1022,第一终端1021通过网络与切片服务器104进行通信,第二终端1022通过网络与合并服务器108进行通信,编码服务器106通过网络分别与切片服务器104、合并服务器108进行通信。数据存储系统可以存储在相应的服务器所需要处理的数据。数据存储系统可以集成在相应的服务器上,也可以放在云上或其他服务器上。主播用户可以通过第一终端1021进行直播流媒体数据采集,并将采集的直播流媒体数据发送到切片服务器104,切片服务器104缓存第一终端1021发送的直播流媒体源数据,在缓存的直播流媒体源数据的流媒体时长达到目标缓存时长时,触发按照预设切片粒度将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段,并将多个流媒体片段发送到至少两个编码服务器106,由整体编码速率不小于直播流媒体源数据的帧率的至少两个编码服务器106,对切片获得的流媒体片段进行并行编码,并将获得的各编码服务器各自的编码视频数据发送到合并服务器108,合并服务器108将各编码服务器各自的编码视频数据合并,得到用于向直播客户端发送的直播流媒体编码数据。合并服务器108可以将合并得到的直播流媒体编码数据发送到各个第二终端1022,以由第二终端1022针对直播流媒体编码数据进行解码播放,观众用户可以通过第二终端1022实现网络直播的观看。
其中,包括第一终端1021和第二终端1022的终端可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。切片服务器104、编码服务器106以及合并服务器108等各服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
其中,云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
在一个实施例中,如图2所示,提供了一种直播流媒体数据处理方法,该方法由计算机设备执行。本实施例中,以该方法应用于图1中的各种服务器为例进行说明,包括以下步骤:
步骤202,缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关。
其中,流媒体(Streaming Media)技术是指将一连串的媒体数据压缩后,以流的方式在网络中分段传送,实现在网络上实时传输影音以供观赏的一种技术。直播流媒体是指在网络直播中所产生的流媒体,直播流媒体源数据为直播过程中由主播端直接产生的原始流媒体数据。流媒体时长是指在缓存直播流媒体源数据时,所缓存的直播流媒体源数据的累积时长。目标缓存时长是预先设定的需要达到的缓存时长,目标缓存时长可以根据实际需要进行设置,以确保能够通过多个编码服务器进行并行编码处理。切片粒度是指针对直播流媒体源数据进行切片处理时,单位切片的时长。目标缓存时长与预设切片粒度正相关,即预设切片粒度越高,则对应目标缓存时长的数值也越大,即需要缓存更多的直播流媒体源数据后,再触发进行切片处理。流媒体片段是指将直播流媒体源数据进行切片后,得到的可独立编码的切片片段。每个流媒体片段均是可独立编码的片段,能够避免不同流媒体片段之间产生交叉影响,从而确保了合并得到的编码视频数据能够进行流畅且清晰地播放。
具体地,在主播用户触发进行网络直播时,服务器可以缓存主播端产生的直播流媒体源数据,服务器统计缓存的直播流媒体源数据的流媒体时长,在流媒体时长达到预先设定的目标缓存时长时,表明服务器已经缓存足够量的直播流媒体源数据,可以支持多个编码服务器进行并行编码。服务器按照预设切片粒度对所缓存的直播流媒体源数据切片,具体可以按照预设切片粒度进行等时长切分,得到时长相同的可独立编码的多个流媒体片段。目标缓存时长与预设切片粒度正相关,切片粒度可以根据实际需要进行设置,如可以是0.5秒、1秒或2秒等,而基于设置的切片粒度,可以设置相应的目标缓存时长,以使目标缓存时长与预设切片粒度正相关。如预设切片粒度为1秒时,目标缓存时长可以设置为12秒,而预设切片粒度为0.5秒时,目标缓存时长可以设置为6秒。
步骤204,通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率。
其中,编码服务器是用作进行视频编码处理的服务器,编码服务器的数量至少为两个,从而可以通过至少两个编码服务器进行并行的编码处理。在并行编码的处理过程中,每个编码服务器均可以针对被分配的流媒体片段进行编码。例如,获得的流媒体片段包括12段,每段流媒体片段的切片粒度为1秒,即每段流媒体片段的时长为1秒,则可以通过12个编码服务器分别对一段流媒体片段进行编码,从而12个编码服务器同时对切片得到的12段流媒体片段进行同步编码,得到各编码服务器各自的编码视频数据。编码视频数据是编码服务器针对流媒体片段进行编码处理所获得的视频编码结果,通过编码可以将流媒体片段进行压缩处理,以减小流媒体片段的数据量,获得便于传输和存储的编码视频数据。整体编码速率是指各个编码服务器在并行进行编码时,各个编码服务器作为整体的编码速率,直播流媒体源数据的帧率是指直播流媒体源数据单位时间内所产生的画面数量。
具体地,通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,每个编码服务器获得各自编码视频数据,编码服务器的数量与切片获得的流媒体片段的数量相匹配。在具体应用时,在单位时间内,触发进行并行编码的编码服务器的数量,与单位时间内切片获得的流媒体片段的数量相同,从而可以将单位时间内切片得到的每一流媒体片段通过不同编码服务器进行并行编码处理,能够提高编码的处理效率。进行并行编码的至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率,从而能够使并行编码的整体编码速率与直播流媒体源数据的帧率相匹配,避免直播过程中因编码处理效率问题产生卡顿,保证直播流媒体的流畅播放,从而确保直播的实时性。
步骤206,将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
其中,直播流媒体编码数据是将各个编码服务器各自获得的编码视频数据进行合并后得到的编码合并结果。直播流媒体编码数据用于向直播客户端发送,以在直播客户端中进行播放。具体地,服务器可以将各编码服务器各自的编码视频数据合并,得到用于向直播客户端发送的直播流媒体编码数据,从而实现对直播流媒体数据的编码处理。在具体应用时,将各编码服务器各自的编码视频数据合并的处理,以及按照预设切片粒度对所缓存的直播流媒体源数据切片的处理可以由相同的服务器执行,也可以由不同的服务器执行。例如,按照预设切片粒度对所缓存的直播流媒体源数据切片的处理可以由切片服务器执行,对切片获得的流媒体片段进行并行编码由多个编码服务器执行,而将各编码服务器各自的编码视频数据合并可以由合并服务器执行。其中,切片服务器和合并服务器可以设为相同的服务器,也可以是单独设置的不同的服务器。
上述直播流媒体数据处理方法中,在缓存的直播流媒体源数据的流媒体时长达到目标缓存时长时,触发按照预设切片粒度将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段,通过整体编码速率不小于直播流媒体源数据的帧率的至少两个编码服务器,对切片获得的流媒体片段进行并行编码,并将获得的各编码服务器各自的编码视频数据合并,得到用于向直播客户端发送的直播流媒体编码数据。对于直播流媒体数据的处理中,缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,且至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率,能够确保通过至少两个编码服务器对切片获得的流媒体片段进行并行编码的处理效率与直播流媒体源数据的帧率相匹配,避免了直播过程中因编码处理效率问题产生卡顿,从而确保了直播的实时性。
在一个实施例中,预设切片粒度包括预设画面组的整数倍粒度;响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段,包括:统计所缓存的直播流媒体源数据的流媒体时长;当流媒体时长达到预设的目标缓存时长时,按照预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段。
其中,预设切片粒度包括预设画面组的整数倍粒度,画面组是指在进行视频编码处理过程中两个帧内编码图像帧之间的间隔,帧内编码图像帧是指能够不参考其他图像帧,只利用本帧的信息进行编码的图像帧。预设切片粒度是预设画面组的整数倍粒度,从而能确保按照预设切片粒度切片得到的流媒体片段均是可独立编码的切片片段。
具体地,服务器缓存直播流媒体源数据时,可以统计所缓存的直播流媒体源数据的流媒体时长,并在流媒体时长达到预设的目标缓存时长时,表明当前缓存的直播流媒体源数据已经能够支持多个编码服务器进行并行编码处理,则服务器按照预设画面组的整数倍粒度将所缓存的直播流媒体源数据进行切片,得到可独立编码的多个流媒体片段。在进行编码处理的过程中,每个画面组均可以独立进行编码处理,按照画面组的整数倍粒度对直播流媒体源数据切片,可以确保切片得到的多个流媒体片段能够独立编码进行编码,有利于确保直播流媒体编码数据的播放效果。
本实施例中,服务器按照预设画面组的整数倍粒度将所缓存的直播流媒体源数据进行切片,能够确保切片得到的多个流媒体片段为可独立编码的片段,使各个流媒体片段之间的编码解码进行有效隔离,从而有利于确保直播流媒体编码数据的播放效果。
在一个实施例中,按照预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段,包括:按照预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行等粒度切片,获得时长相同的、且可独立编码的多个直播流媒体切片数据;按照目标封装格式,将多个直播流媒体切片数据分别进行封装,得到属于目标封装格式的多个流媒体片段。
其中,等粒度切片是指切片时每一片段的粒度均相同,如均为1秒或者0.5秒。直播流媒体切片数据是将缓存的直播流媒体源数据按照等粒度切片得到切片片段,每个直播流媒体切片数据按照等粒度切片得到的,即每个直播流媒体切片数据的时长相同;且每个直播流媒体切片数据均是按照预设画面组的整数倍粒度切片得到的,即每个直播流媒体切片数据均为可独立编码的切片片段。封装格式,也叫容器,就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,封装格式作为编码视频的容器,可以包括头/尾标识和视频描述信息,以便对封装格式中所包括的视频进行标识。封装格式可以包括avi、flv、MP4、rmvb、mkv或ts等各种格式。目标封装格式是预先设定的封装格式。
具体地,服务器按照预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行等粒度切片,获得可独立编码的多个直播流媒体切片数据,每个直播流媒体切片数据的时长相同。服务器查询预设的目标封装格式,并按照该目标封装格式将多个直播流媒体切片数据分别进行封装,得到属于目标封装格式的多个流媒体片段。服务器将切片得到的直播流媒体切片数据转封装成目标封装格式,以得到封装格式为目标封装格式的多个流媒体片段,如得到封装格式为ts格式的多个流媒体片段。
本实施例中,服务器按照预设画面组的整数倍粒度将所缓存的直播流媒体源数据进行等粒度切片,能够确保切片得到的多个流媒体片段为时长相同的且可独立编码的片段,并将切片得到的直播流媒体切片数据分装成属于目标封装格式的多个流媒体片段,使各个流媒体片段之间的编码解码进行有效隔离,从而有利于确保直播流媒体编码数据的播放效果。
在一个实施例中,流媒体片段为目标数量个,目标数量与直播流媒体源数据的帧率正相关,目标数量与编码服务器的独立编码速率负相关;通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据,包括:通过至少目标数量个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;其中,至少目标数量个编码服务器的整体编码速率不小于直播流媒体源数据的帧率。
其中,流媒体片段为目标数量个,即切片得到目标数量个的流媒体片段。目标数量与直播流媒体源数据的帧率正相关,且目标数量与编码服务器的独立编码速率负相关,即直播流媒体源数据的帧率越大,则目标数量越大;而编码服务器的独立编码速率越大,则目标数量越小。独立编码速率是指单个编码服务器独立进行编码时的编码速率。
具体地,在通过多个编码服务器进行并行编码时,通过至少目标数量个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据。即编码服务器的数量不小于流媒体片段的数量,每个流媒体片段均可以对应于一个编码服务器,从而通过至少目标数量个的编码服务器对流媒体片段进行并行编码。其中,至少目标数量个编码服务器的整体编码速率不小于直播流媒体源数据的帧率,即多个编码服务器的整体编码速率大于等于直播流媒体源数据的帧率,从而能够实现针对直播流媒体源数据的编码处理效率与帧率相匹配,可以避免因编码处理效率问题产生卡顿,从而确保直播的实时性。
本实施例中,通过整体编码速率不小于直播流媒体源数据的帧率的至少目标数量个编码服务器,对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据,能够实现针对直播流媒体源数据的编码处理效率与帧率相匹配,可以避免因编码处理效率问题产生卡顿,从而确保直播的实时性。
在一个实施例中,多个流媒体片段属于目标封装格式;如图3所示,通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据,包括:
步骤302,通过至少两个编码服务器对切片获得的、属于目标封装格式的流媒体片段进行并行解封装和解码,得到流媒体数据。
其中,多个流媒体片段属于目标封装格式,即多个流媒体片段分别被封装成目标封装格式。解封装是指解除封装格式,以获得视频编码数据;解码是将视频编码数据解码还原成视频数据。具体地,通过至少两个编码服务器对切片获得的、属于目标封装格式的流媒体片段进行并行解封装和解码,每个编码服务器针对各自被分配的流媒体片段解封装、解码处理,得到流媒体数据。流媒体数据是未进行编码和封装的切片数据。
步骤304,通过各编码服务器对各自的流媒体数据进行并行编码,获得各编码服务器各自的编码片段。
具体地,通过各编码服务器对各自的流媒体数据进行并行编码,具体可以基于预设的编码算法,如通过H.265编码算法进行并行编码,得到各编码服务器各自的编码片段。编码片段是将流媒体数据进行视频编码处理后得到的编码结果片段。
步骤306,通过各编码服务器,按照目标封装格式对各自的编码片段进行并行封装,获得各编码服务器各自的编码视频数据。
具体地,通过各编码服务器,按照目标封装格式对各自得到的编码片段进行并行封装,即按照目标封装格式对编码片段再进行封装,得到各编码服务器各自的编码视频数据,编码视频数据与流媒体片段均属于目标封装格式。
本实施例中,将属于目标封装格式的流媒体片段进行解封装和解码后,由编码服务器进行编码,并将编码得到的编码片段再封装成目标封装格式,得到属于目标封装格式的编码视频数据,通过将编码视频数据封装成与流媒体片段的目标封装格式,便于针对各个编码视频数据的管理,从而有利于提高直播流媒体数据的处理效率。
在一个实施例中,直播流媒体数据处理方法还包括:获取针对直播流媒体源数据进行处理所配置的预设切片粒度;根据预设切片粒度、直播流媒体源数据的帧率以及编码服务器的独立编码速率,确定直播处理延时;直播处理延时分别与预设切片粒度和直播流媒体源数据的帧率正相关,直播处理延时与编码服务器的独立编码速率负相关;基于直播处理延时确定目标缓存时长;目标缓存时长不小于直播处理延时。
其中,预设切片粒度可以在针对直播流媒体源数据进行处理前预先进行配置,如配置成1秒或0.5秒或其他切片粒度。直播处理延时是指将直播流媒体数据进行处理所带来的直播延时。例如,直播流媒体源数据的帧率为60FPS,编码服务器的独立编码速率为5FPS(Frame Per Second,刷新率),若预设切片粒度为1秒,则直播处理延时可以为60*1/5=12秒。FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。直播处理延时分别与预设切片粒度和直播流媒体源数据的帧率正相关,直播处理延时与编码服务器的独立编码速率负相关。即预设切片粒度或直播流媒体源数据的帧率越大,则直播处理延时越大;编码服务器的独立编码速率越大,则直播处理延时越小。
具体地,服务器可以获取针对直播流媒体源数据进行处理所配置的预设切片粒度,具体可以根据实际需要进行灵活配置。预设切片粒度越大,则切片得到的流媒体片段的时长越长。服务器确定直播流媒体源数据的帧率以及编码服务器的独立编码速率,并根据预设切片粒度、帧率和独立编码速率计算得到直播处理延时。在具体实现中,可以通过公式直播处理延时=预设切片粒度*帧率/独立编码速率,计算得到直播处理延时。直播处理延时分别与预设切片粒度和直播流媒体源数据的帧率正相关,直播处理延时与编码服务器的独立编码速率负相关。即为了降低直播处理延时,在直播流媒体源数据的帧率一定时,可以通过提高编码服务器的独立编码速率或减小预设切片粒度实现。服务器基于直播处理延时确定目标缓存时长,使得目标缓存时长不小于直播处理延时,从而确保缓存的直播流媒体源数据能够覆盖直播处理延时,防止直播视频播放中产生卡顿。例如,直播处理延时为12秒时,则服务器设置的目标缓存时长可以大于等于12秒。
本实施例中,服务器根据预设切片粒度、直播流媒体源数据的帧率以及编码服务器的独立编码速率,确定直播处理延时,并基于直播处理延时确定目标缓存时长,以使目标缓存时长不小于直播处理延时,从而能够确保缓存的直播流媒体源数据能够覆盖直播处理延时,防止直播视频播放中产生卡顿,确保直播的实时性。
在一个实施例中,将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据,包括:将各编码服务器各自的编码视频数据按照时间戳顺序进行合并,得到合并编码数据;对合并编码数据进行封装格式转换,获得符合直播传输封装格式的直播流媒体编码数据。
其中,时间戳顺序是指编码视频数据对应的直播流媒体编码数据的产生时间的先后顺序。合并编码数据将编码视频数据进行合并后得到的合并数据。直播传输封装格式是指用于传世直播流媒体的封装格式,如可以是HLS(HTTP Live Streaming,基于HTTP的流媒体传输协议)、DASH(Dynamic Adaptive Streaming over HTTP,基于HTTP的动态自适应流)等封装格式。HLS是一种动态码率自适应技术,包括一个m3u8的索引文件,TS媒体分片文件和key加密串文件。DASH是基于HTTP的动态自适应流,类似HLS协议,它通过一种自适应的比特率流技术,使高质量的流媒体可以通过HTTP协议进行传输。
具体地,服务器可以确定各编码服务器各自的编码视频数据的时间戳顺序,并按照该时间戳顺序将各编码视频数据按先后顺序进行合并,得到合并编码数据。服务器将合并编码数据进行封装格式转换,以获得符合直播传输封装格式的直播流媒体编码数据。直播流媒体编码数据符合直播传输封装格式,有利于将直播流媒体编码数据高效发送到直播客户端进行播放。
进一步地,直播流媒体数据处理方法还包括:通过内容分发网络向直播客户端发送直播流媒体编码数据,以在直播客户端上进行播放。
其中,内容分发网络(Content Delivery Network,CDN)是一种新型网络内容服务体系,其基于IP(Internet Protocol,网际互连协议)网络而构建,基于内容访问与应用的效率要求、质量要求和内容秩序而提供内容的分发和服务。内容分发网络代表了一种基于网络而构建的高质量、高效率、具有鲜明网络秩序的网络应用服务模式。具体地,服务器通过内容分发网络,将直播流媒体编码数据发送到直播客户端,以在直播客户端上实时播放直播流媒体编码数据。
本实施例中,服务器将合并编码数据进行封装格式转换,以获得符合直播传输封装格式的直播流媒体编码数据,并通过内容分发网络将直播流媒体编码数据发送到直播客户端上进行播放,可以确保直播流媒体播放的实时性。
在一个实施例中,直播流媒体数据处理方法还包括:确定至少两个编码服务器的最大整体编码速率;当确定最大整体编码速率与直播流媒体源数据的帧率不匹配时,对至少两个编码服务器的服务器数量进行调整,以使调整后的编码服务器的最大整体编码速率与直播流媒体源数据的帧率相匹配。
其中,最大整体编码速率是指至少两个编码服务器在进行并行编码处理时能够达到的最大编码速率。最大整体编码速率与各个编码服务器本身的计算性能相关,还与编码服务器的资源占用状态相关。即最大整体编码速率可以是至少两个编码服务器的实时整体编码速率,编码服务器在不同的资源占用状态时,可以对应于不同的最大整体编码速率。
具体地,服务器可以确定至少两个编码服务器的最大整体编码速率,具体可以根据各个编码服务器的独立编码速率确定得到,还可以根据各个编码服务器的资源占用状态确定最大整体编码速率。服务器将最大整体编码速率与直播流媒体源数据的帧率进行比较,若确定最大整体编码速率与直播流媒体源数据的帧率不匹配,如确定最大整体编码速率小于直播流媒体源数据的帧率时,则服务器可以对编码服务器的服务器数量进行调整,如可以增加编码服务器的服务器数量,以使调整后的编码服务器的最大整体编码速率与直播流媒体源数据的帧率相匹配,从而能够实现针对直播流媒体源数据的实时处理。在具体应用中,服务器确定最大整体编码速率小于直播流媒体源数据的帧率,则服务器可以增加编码服务器的数量,以提高最大整体编码速率,确保直播实时性;若最大整体编码速率大于直播流媒体源数据的帧率,则服务器可以减少编码服务器的数量以降低最大整体编码速率,以节省运行资源。
本实施例中,在至少两个编码服务器的最大整体编码速率,与直播流媒体源数据的帧率不匹配时,服务器可以通过调整编码服务器的服务器数量,以使最大整体编码速率与直播流媒体源数据的帧率相匹配,从而能够确保直播实时性,并节省运行资源。
在一个实施例中,至少两个编码服务器分别通过编码步骤对切片获得的流媒体片段进行并行编码。该编码步骤包括:将流媒体片段中的各视频帧分别进行划分,得到各视频帧各自的编码单元;对各视频帧各自的编码单元进行预测,并基于获得的预测值得到各编码单元的残差数据;对各视频帧各自的残差数据进行编码,获得流媒体片段的编码视频数据。
其中,在通过至少两个编码服务器对切片获得的流媒体片段进行并行编码时,每个编码服务器均通过编码步骤对各自的流媒体片段进行编码。编码单元进行预测编码的基本单元。残差数据可以根据编码单元与其对应的预测值之间的差异得到。
具体地,编码服务器可以将流媒体片段中的各视频帧分别进行划分,得到各视频帧各自的编码单元。流媒体片段中每一视频帧均可以划分出多个编码单元。编码服务器对各视频帧各自的编码单元进行预测,具体可以基于编码单元中的预测单元进行预测,得到编码单元对应的预测值。编码服务器基于获得的预测值得到各编码单元的残差数据,具体可以由编码服务器确定编码单元与其对应的预测值之间的差异,基于差异得到残差数据。编码服务器可以对各视频帧各自的残差数据进行编码,从而获得流媒体片段的编码视频数据。
本实施例中,编码服务器通过将流媒体片段中的各视频帧划分成编码单元,并基于对编码单元进行预测得到的预测值确定编码单元的残差数据,针对残差数据进行编码,得到流媒体片段的编码视频数据,从而可以基于视频帧之间的差异进行编码,实现视频帧的压缩处理,从而降低了编码视频数据的数据量。
在一个实施例中,编码单元包括预测单元;对各视频帧各自的编码单元进行预测,并基于获得的预测值得到各编码单元的残差数据,包括:对各视频帧各自的预测单元,按照目标预测模式进行预测,得到预测数据;目标预测模式从帧内预测和帧间预测中确定;基于通过预测单元预测得到的预测数据与预测单元,确定各编码单元的原始残差;对各编码单元的原始残差进行数据变换,得到各编码单元的残差数据。
其中,编码单元包括预测单元,预测单元规定了编码单元的所有预测模式,与预测有关的信息都定义在预测单元中,具体如帧内预测的方向、帧间预测的分割方式、运动矢量预测以及帧间预测参考图像索引号等,都属于预测单元的范畴。目标预测模式是指针对预测单元进行预测处理的预测方式,目标预测模式从帧内预测和帧间预测中确定。帧内预测是指利用图像的空间相关性,用周围重建像素值对当前编码块进行预测的预测模式;帧间预测是指利用连续图像之间的相关性,通过运动估计和运动补偿的编码方法去消除视频信息的时间冗余,以利用先前已编码重建帧作为参考帧进行预测的预测模式。预测数据是对预测单元进行预测得到的预测结果。原始残差是预测数据与预测单元之间的原始差异,通过对原始残差进行数据变换,如进行DCT(Discrete Cosine Transform,离散余弦变换)变换和量化处理,得到残差数据。
具体地,编码服务器确定编码单元中的预测单元,并对各视频帧各自的预测单元,按照目标预测模式进行预测得到预测数据。具体可以按照帧内预测或帧间预测对预测单元进行预测,得到预测数据。编码服务器可以基于预测数据与预测单元,确定各编码单元的原始残差。例如,编码服务器可以确定预测数据与预测单元之间的差异,根据该差异得到编码单元的原始残差。编码服务器对各编码单元的原始残差进行数据变换,如进行DCT变换和量化处理,得到各编码单元的残差数据,基于残差数据可以进行编码得到流媒体片段的编码视频数据,从而实现对流媒体片段的编码处理。
本实施例中,编码服务器通过编码单元中的预测单元,按照帧内预测或帧间预测进行预测,并基于得到的预测数据和预测单元确定各编码单元的原始残差,编码服务器对各编码单元的原始残差进行数据变换,得到各编码单元的残差数据,从而可以基于各编码单元的残差数据进行编码,实现视频帧的压缩处理,从而降低了编码视频数据的数据量。
本申请还提供一种应用场景,该应用场景应用上述的直播流媒体数据处理方法。具体地,该直播流媒体数据处理方法在该应用场景的应用如下:
主播用户通过终端进行网络直播,终端将采集的直播流媒体源数据发送到直播服务器,直播服务器缓存直播流媒体源数据,并响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,直播服务器按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段,其中,目标缓存时长与预设切片粒度正相关。直播服务器将多个流媒体片段发送到编码服务器集群中,以通过编码服务器集群中的至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据。其中,至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率。编码服务器集群中各个编码服务器将各自编码得到的编码视频数据发送到直播服务器。直播服务器将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据,并将直播流媒体编码数据向直播客户端发送,以在直播客户端上进行播放。
本申请还提供一种应用场景,该应用场景应用上述的直播流媒体数据处理方法。具体地,该直播流媒体数据处理方法在该应用场景的应用如下:
本实施例中直播流媒体数据包括直播过程中的音视频数据,其中,视频是信息呈现和传播的主要载体,据预测,未来个人消费者网络流量的80%以上和行业应用流量的70%以上都将是视频数据。当前,视频技术正经历从高清(1080P)向超高清(UHD,UltraHigh Definition)的演进,4K超高清、8K超高清的画面分辨率分别为高清的4倍和16倍。超高清视频产业是以超高清视频采集、制作、传输、呈现为主的相关经济活动。发展超高清视频产业将有效带动终端产品替代升级以及制作播出设备的更新,带动上游芯片、面板等产业发展,促进宽带网络投资建设、5G(5th-Generation Mobile CommunicationTechnology,第五代移动通信技术)网络商用和业务发展。根据ITU(InternationalTelecommunication Union,国际电信联盟)的标准,超高清视频分为4K和8K两个规格,支持23.976fps、24fps、25fps、29.97fps、30fps、50fps、59.94fps、60fps和120fps共计9种帧率。超高清视频(4K/8K/16K)实时编码一直是行业痛点,4K和8K超高清视频的分辨率像素分别是1080P的4倍和16倍,加上4K/8K FPS基本都是60FPS+,如此带来的编码算力是1080P的几十倍增长。目前视频行业大多以1080P为主,有很少部分长视频支持4K视频源,但都是离线长视频编码,在实时直播领域很少有4K/8K的直播,偶尔鲜有是通过专门的编码设备编码实现的而8K频道专业的8K编码设备的价格高昂。超高清视频实时编码的算力要求和专业设备昂贵的成本阻碍了超高清直播行业的发展。
基于此,本实施例提供的直播流媒体数据处理方法,可以通过使用通用云服务器(Cloud Virtual Machine,CVM)分布式架构,对超高清4K/8K/16K视频能实时直播高FPS(>=60)编码,满足低成本实时超高清视频直播高质量编码,有利于促进行业发展,在CCTV(Closed Circuit Television,闭路电视)、OTT(Over The Top)行业有很好的应用前景。
具体地,关于ITU针对超高清视频的定义,超高清视频的定义源自视频画面分辨率在4K及以上,但仅提高分辨率并不能很好地表现对视觉效果的提升,需同步突破高分辨率、高帧率、高色深、宽色域、高动态范围和三维声六个维度的技术,才能带来颠覆式、更具感染力和沉浸感的临场体验。如图4所示,视频分辨率对比中,高清(HD,High Definition)的像素为1280*720;全高清(Full HD,Full High Definition)的像素为1920*1080;四倍高清(Quad HD,Quad High Definition)的像素为256*1440;4K超高清(UHD,Ultra HighDefinition)的像素为3840*2160;5K超高清+的像素为5120*2880;8K超高清的像素为7680*4320。根据ITU的标准,超高清视频分为4K和8K两个规格,其中,4K指4K超高清(UHD4K),其水平清晰度3840,垂直清晰度2160,宽高比16:9,总像素数约为830万;8K指8K超高清(UHD8K),其水平清晰度7680,垂直清晰度4320,宽高比16:9,总像素数约为3320万。此外,对于16K(15360x8640,1.3亿像素)超高清在一些元宇宙VR(Virtual Reality,虚拟现实)场景上也慢慢有一些应用探索,最新的视频编码标准AV2和VVC还可以支持16K编码。在ITU规范中,超高清视频支持23.976fps、24fps、25fps、29.97fps、30fps、50fps、59.94fps、60fps和120fps共计9种帧率。随着网络带宽与编码算力的巨大提升,ITU标准去掉了隔行扫描的场编码方式,只保留了逐行扫描的帧编码方式。在色彩深度方面,ITU将原先的8bit提升到10bit和12bit,其中10bit规格用于4K超高清,12bit则用于8K超高清。上述改进进一步提升了超高清视频的流畅度、细腻感和色彩层次。
进一步地,如图5所示,音视频的处理流程中,在输入需要处理的音视频后,针对音视频进行解封装(libavformat demuxing),针对解封装后的编码数据进行解码(libavcodec decoding)处理。针对解码得到的音视频数据可以进行编码(libavcodecencoding)处理,编解码处理支持各种格式,如H.264/H.265/AV1/H.266等。在编码完成后进行封装(libavcodec muxing)处理后输出,具体可以封装成Mp4/MOV/T5格式等各种封装格式。此外,针对解码得到的音视频数据还可以进行编码增强(libavfilter apply effects)处理,并对编码增强处理后的音视频数据依次进行编码、和封装处理,得到输出的音视频编码数据。在编码增强处理中,具体可以包括超分/插帧、SDR(Standard Dynamic Range,标准动态范围图像)/HDR(High-Dynamic Range,高动态范围图像)、文字水印、去噪/去毛刺、去抖动、色彩增强、字幕、拼接、雪碧图等各种处理。音视频处理的算力主要在编码阶段,4K和8K超高清视频的分辨率像素分别是1080P的4倍和16倍,而且4K/8K FPS基本为60FPS+的高刷新率,因此带来的编码算力是1080P的几十倍增长,H.265/H.266/AV1支持4K/8K编码,最新代视频编码标准H.266/AV2已支持16K编码,超高清4K/8k视频实时编码一直是行业痛点。
进一步地,对于视频编码处理,以H.265为例,一帧图像送入到编码器,先按照64x64块大小分割成一个个编码树单元(Coding Tree Uint,CTU),经过深度划分得到编码单元(Coding Uint,CU),每个CU包含预测单元(Predict Unit,PU)和变换单元(TransformUnit,TU)。对每个PU进行预测,得到预测值,将预测值与输入的图像数据相减,得到残差,然后进行DCT变换和量化,得到残差系数,将残差系数送入熵编码模块输出码流。同时,残差系数经反量化、反变换之后,得到重构图像的残差值,再和预测值相加,从而得到了重构图像,重构图像经环内滤波之后,进入参考帧队列,作为下一帧的参考图像,从而依次向后编码。预测时,从最大编码单元(LCU,Largest Code Unit)开始,每层按照四叉树,逐层向下划分,做递归计算。首先,由上向下划分。从depth=0,64x64块先分割为4个32x32的子CUs。然后其中一个32x32的子CU,再继续分割为4个16x16的子CUs,以此类推,直到depth=3,CU大小为8x8。然后,由下往上进行修剪。对4个8x8的CUs的RDcost求和(记为cost1),与对应上一级16x16的CU的RDcost(记为cost2)比较,若cost1小于cost2则保留8x8的CU分割,否则继续往上修剪,逐层比较。最后,找出最优的CU深度划分情况。PU预测分为帧内预测和帧级预测,先相同预测类型内,不同PU间进行比较,找到最优的分割模式,再与帧内帧间模式比较,找到当前CU下的最优预测模式;同时对CU进行基于四叉树结构的自适应变换(Residual Quad-tree Transform,RQT),找出最优的TU模式。最后将一帧图像分成一个个CU,及CU对应下的PU与TU,以通过PU进行预测处理。此外,一帧视频图像还可以编码成一个或者多个片(Slice),每片包含整数个宏块,即每片至少一个宏块,最多时包含整个图像的宏块。片的目的是为了限制误码的扩散和传输,使编码片相互间保持独立。宏块是编码的基本单位,一个编码图像首先要划分成多个块才能进行处理,宏块由整数个块组成。
如图6所示,当前帧Fn输入进行编码处理时,基于当前帧Fn进行预测,得到预测值,并将预测值与当前帧Fn进行相减得到残差,针对残差依次进行变换、量化处理后得到残差系数,对残差系统进行熵编码处理,得到当前帧Fn的编码结果。此外,残差系数经过逆量化、逆变换处理后得到重构图像的残差值,将重构图像的残差值与当前帧Fn的预测值进行相加,得到重构图像。将重构图像经过去方波滤波(DB,Deblocking)、样点自适应补偿滤波(SAO,Sample Adaptive Offset)处理后,得到参考帧F’n,该参考帧F’n作为下一帧的参考图像。进一步地,在具体预测时,针对当前帧Fn进行帧间预测时,基于参考帧F’n-1进行运动估计(ME,Motion Estimation)和运动补偿(MC,Motion Compensation),得到帧间预测结果。进行帧内预测处理时,基于当前帧Fn进行帧内预测选择,以实现帧内预测,得到帧内预测结果。通过比较帧间预测结果和帧间预测结果,而取得当前帧Fn的预测值。
进一步地,PU共有8种分割模式,TU只有划分或不划分2种分割模式。H.265仍然沿用了自H.263就开始采用的广为接受的混合编码框架(帧内编码,帧间编码,变换,量化,编码四个部分),比如帧内预测和基于运动补偿的帧间预测,以及转换编码和高性能的熵编码。和之前的编码标准相比,H.265采用了很多创新的技术,比如灵活的基于大尺寸四叉树的分割结构和残差编码结构、自适应运动参数编码(Adaptive Motion Parameter)、自适应内嵌式滤波器(Adaptive In-loop Filtering)等等。这些崭新的技术提升了H.265标准的编码效率。CU是最基本的正方形编码单元,CU的尺寸可以从8×8到最大的编码单元64×64;PU是进行帧内预测和帧间预测的基本单元,大小可以从4×4到64×64,并且除了对称模式(Symmetric Motion Partition,SMP)的2N×2N、N×N、2N×N和N×2N类似H.264的分割方法之外,H.265还提供了非对称的模式(Asymmetricmotion Partition,AMP),包含了2N×nU、2N×nD、nL×2N和nR×2N,大写的英文字母代表边长较短分割块的位置。变换单元TU是作为变换和量化过程的基本单元,变换单元的形状取决于预测单元的分割模式,当预测单元为正方形,变换单元也为正方形,大小为4×4到32×32;当预测单元不是正方形,变换单元也不会是正方形,尺寸为32×8、8×32、16×4、4×16。每一个编码单元包含一个或多个变换单元,但变换单元的分割必须在编码单元的四叉树结构内。如图7所示,编码树单元CTU经过深度划分得到各个编码单元CU,编码单元CU包括预测单元PU和变换单元TU。其中,预测单元PU的分割模式包括2N×2N、N×N、2N×N、N×2N、2N×nU、2N×Nd、nL×2N和nR×2N等;变换单元TU分割模式包括分割与不分割两种。
H.265以HM16.8为例,编码1080P序列,2M带宽下每秒编码0.03帧。若按照这个速度编码一个10分钟、帧率为30fps的视频,需要10*30/0.03=10000分钟,约166.67小时,该编码速度不能应用到工程产品中,需要编码器一方面做工程性能加速,如多线程、汇编指令加速等,另一方面也可以对视频标准算法做裁剪,如在H.265编码流程中,针对不同的视频场景CU、PU、TU划分以及帧内、帧间预测处理,做一些剪裁和跳过,最后视频编码算法性能参数bd-rate会有一定损失,但是能够在工程性能和压缩率做一些折中,以在通用的服务器上实现超高清视频的实施编码处理。
具体地,本实施例提供的直播流媒体数据处理方法,如图8所示,直播流媒体数据处理的整体处理通过切片、编码、合并分布式集群调度实现,根据集群负载调度,调度分配相应的模块服务器进行处理。具体地,视频源为4K/8K的超高清视频,具体可以包括MP4/MOV/TS/MKV等格式的视频,切片服务器对超高清视频源按GOP(Group Of Pictures,画面组)倍数粒度对超高清视频源切片。GOP长度为两个IDR之间的视频帧,这些视频帧的SPS(Sequence Paramater Set,序列参数集)、PPS(Picture Paramater Set,图像参数集)信息都是独立的,按GOP倍数粒度进行切片,得到的视频可以正常播放,否则若不按GOP粒度倍数切片,随机切视频解码会异常花屏之类问题。其中,SPS中保存了一组编码视频序列(Codedvideo sequence)的全局参数。所谓的编码视频序列即原始视频的一帧一帧的像素数据经过编码之后的结构组成的序列。而每一帧的编码后数据所依赖的参数保存于图像参数集中。一般情况SPS和PPS的NAL Unit通常位于整个码流的起始位置。但在某些特殊情况下,在码流中间也可能出现这两种结构,主要原因可能为解码器需要在码流中间开始解码以及编码器在编码的过程中改变了码流的参数。PPS保存的是NAL Uint(层的单元封包)当前视频段中一些编码相关的参数,如熵编码类型、分片数量、是否权重预测、量化及滤波参数等。
其中,在视频编码算法,如H.264/H.265/H.266/AV1中,图像以序列为单位进行组织。一个序列的第一个图像叫做IDR图像(立即刷新图像),IDR图像都是I帧图像。IDR会导致DPB(Decoded Picture Buffer解码缓存区)清空,而I帧不会。DPB即解码图片缓存区,在做视频解码时,需要将最近的若干幅参考帧缓存起来,这个缓冲区称作DPB。解码已经完成的图像被缓存在DPB中,供后续帧用作参考图像,因此,解码器需要按照一定的规则对DPB中的图像进行管理。IDR图像一定是I图像,但I图像不一定是IDR图像。一个序列中可以有很多的I图像,I帧图像之后的图像可以引用I帧图像之间的图像做运动参考。一个序列中可以有很多的I帧图像,I帧图像之后的图象可以引用I帧图像之间的图像做运动参考。P帧是指前向预测编码帧,P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。B帧是指双向预测内插编码帧,B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,B帧可以作其它B帧的参考帧,也可以不作为其它B帧参考帧。GOP是两个I帧之间的间隔。
切片服务器将切片转封装成TS格式的视频片段。通过多个切片段编码服务器,对生成的切片视频片段进行实时并行编码。由于将源切成了TS视频片段,需要使多个切片段编码服务器并行编码,假设源视频的FPS为F,切片的长度为1秒,切片段编码服务器最小编码速度为X FPS,那么总的直播延时D>=F/X。即在开始切片前要积攒>=D长的视频缓存才开始编码,以保证后续的编码集群总FPS>=视频原FPS,不会产生卡顿。
进一步地,合并服务器对并行切片视频编码出来的TS视频片段,进行视频格式转封装输出为HLS/DASH封装格式。HLS/DASH直播视频内容容器传输格式封装是TS分片,便于各切片编码服务器并行独立编码输出,若是RTMP/FLV/WebRTC等属于一个视频流容器格式封装的格式,则最后合并merge单路流输出时会有一些容器格式编码兼容性的问题。此外,若满足兼容性要求则除了HLS/DASH外,还可以转封装为RTMP/FLV/WebRTC等各种封装格式。最后,由内容分发网络CDN(Content Delivery Network)将转封装出来的HLS/DASH超高清视频格式进行直播流实时分发给用户观看。其中,内容分发网络的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决网络拥挤的状况,提高用户访问网站的响应速度。在一个具体应用中,如图9所示,8K视频实时编码直播输出时,可以稳定支持60FPS的8K视频实时编码处理。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的直播流媒体数据处理方法的直播流媒体数据处理系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个直播流媒体数据处理系统实施例中的具体限定可以参见上文中对于直播流媒体数据处理方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种直播流媒体处理系统1000,该系统包括:切片服务器1002、合并服务器1006以及包括至少两个编码服务器的编码服务器集群1004;其中:
切片服务器1002,用于缓存直播流媒体数据,响应于缓存的直播流媒体数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体数据切片,获得能够独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关,且与编码服务器集群中编码服务器的数量正相关;
编码服务器集群1004,用于通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;
合并服务器1006,用于将各编码服务器各自的编码视频数据合并获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
在一个实施例中,预设切片粒度包括预设画面组的整数倍粒度;切片服务器1002,还用于统计所缓存的直播流媒体源数据的流媒体时长;当流媒体时长达到预设的目标缓存时长时,按照预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段。
在一个实施例中,流媒体片段为目标数量个,目标数量与直播流媒体源数据的帧率正相关,目标数量与编码服务器的独立编码速率负相关;编码服务器集群1004,还用于通过至少目标数量个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;其中,至少目标数量个编码服务器的整体编码速率不小于直播流媒体源数据的帧率。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的直播流媒体数据处理方法的直播流媒体数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个直播流媒体数据处理装置实施例中的具体限定可以参见上文中对于直播流媒体数据处理方法的限定,在此不再赘述。
在一个实施例中,如图11所示,提供了一种直播流媒体数据处理装置1100,包括:直播流切片模块1102、切片并行编码模块1104和编码数据合并模块1106,其中:
直播流切片模块1102,用于缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;目标缓存时长与预设切片粒度正相关;
切片并行编码模块1104,用于通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;至少两个编码服务器的整体编码速率不小于直播流媒体源数据的帧率;
编码数据合并模块1106,用于将各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;直播流媒体编码数据用于向直播客户端发送。
在一个实施例中,预设切片粒度包括预设画面组的整数倍粒度;直播流切片模块1102包括缓存统计模块和缓存切片模块;其中:缓存统计模块,用于统计所缓存的直播流媒体源数据的流媒体时长;缓存切片模块,用于当流媒体时长达到预设的目标缓存时长时,按照预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段。
在一个实施例中,缓存切片模块包括等粒度切片模块和切片封装模块;其中:等粒度切片模块,用于按照预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行等粒度切片,获得时长相同的、且可独立编码的多个直播流媒体切片数据;切片封装模块,用于按照目标封装格式,将多个直播流媒体切片数据分别进行封装,得到属于目标封装格式的多个流媒体片段。
在一个实施例中,流媒体片段为目标数量个,目标数量与直播流媒体源数据的帧率正相关,目标数量与编码服务器的独立编码速率负相关;切片并行编码模块1104,还用于通过至少目标数量个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;其中,至少目标数量个编码服务器的整体编码速率不小于直播流媒体源数据的帧率。
在一个实施例中,多个流媒体片段属于目标封装格式;切片并行编码模块1104包括数据还原模块、编码处理模块和编码封装模块;其中:数据还原模块,用于通过至少两个编码服务器对切片获得的、属于目标封装格式的流媒体片段进行并行解封装和解码,得到流媒体数据;编码处理模块,用于通过各编码服务器对各自的流媒体数据进行并行编码,获得各编码服务器各自的编码片段;编码封装模块,用于通过各编码服务器,按照目标封装格式对各自的编码片段进行并行封装,获得各编码服务器各自的编码视频数据。
在一个实施例中,还包括切片粒度获取模块、直播延时确定模块和缓存时长确定模块;其中:切片粒度获取模块,用于获取针对直播流媒体源数据进行处理所配置的预设切片粒度;直播延时确定模块,用于根据预设切片粒度、直播流媒体源数据的帧率以及编码服务器的独立编码速率,确定直播处理延时;直播处理延时分别与预设切片粒度和直播流媒体源数据的帧率正相关,直播处理延时与编码服务器的独立编码速率负相关;缓存时长确定模块,用于基于直播处理延时确定目标缓存时长;目标缓存时长不小于直播处理延时。
在一个实施例中,编码数据合并模块1106,还用于将各编码服务器各自的编码视频数据按照时间戳顺序进行合并,得到合并编码数据;对合并编码数据进行封装格式转换,获得符合直播传输封装格式的直播流媒体编码数据;还包括数据发送模块,用于通过内容分发网络向直播客户端发送直播流媒体编码数据,以在直播客户端上进行播放。
在一个实施例中,还包括服务器数量调整模块,用于确定至少两个编码服务器的最大整体编码速率;当确定最大整体编码速率与直播流媒体源数据的帧率不匹配时,对至少两个编码服务器的服务器数量进行调整,以使调整后的编码服务器的最大整体编码速率与直播流媒体源数据的帧率相匹配。
在一个实施例中,还包括编码单元获得模块、预测模块和残差编码模块;其中:编码单元获得模块,用于将流媒体片段中的各视频帧分别进行划分,得到各视频帧各自的编码单元;预测模块,用于对各视频帧各自的编码单元进行预测,并基于获得的预测值得到各编码单元的残差数据;残差编码模块,用于对各视频帧各自的残差数据进行编码,获得流媒体片段的编码视频数据。
在一个实施例中,编码单元包括预测单元;预测模块,还用于对各视频帧各自的预测单元,按照目标预测模式进行预测,得到预测数据;目标预测模式从帧内预测和帧间预测中确定;基于通过预测单元预测得到的预测数据与预测单元,确定各编码单元的原始残差;对各编码单元的原始残差进行数据变换,得到各编码单元的残差数据。
上述直播流媒体数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储直播流媒体数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种直播流媒体数据处理方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (17)
1.一种直播流媒体数据处理方法,其特征在于,所述方法包括:
缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;所述目标缓存时长与所述预设切片粒度正相关;
通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;所述至少两个编码服务器的整体编码速率不小于所述直播流媒体源数据的帧率;
将所述各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;所述直播流媒体编码数据用于向直播客户端发送。
2.根据权利要求1所述的方法,其特征在于,所述预设切片粒度包括预设画面组的整数倍粒度;所述响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段,包括:
统计所缓存的直播流媒体源数据的流媒体时长;
当所述流媒体时长达到预设的目标缓存时长时,按照所述预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段。
3.根据权利要求2所述的方法,其特征在于,所述按照所述预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段,包括:
按照所述预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行等粒度切片,获得时长相同的、且可独立编码的多个直播流媒体切片数据;
按照目标封装格式,将所述多个直播流媒体切片数据分别进行封装,得到属于所述目标封装格式的多个流媒体片段。
4.根据权利要求1所述的方法,其特征在于,所述流媒体片段为目标数量个,所述目标数量与所述直播流媒体源数据的帧率正相关,所述目标数量与编码服务器的独立编码速率负相关;
所述通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据,包括:
通过至少所述目标数量个所述编码服务器对切片获得的流媒体片段进行并行编码,获得各所述编码服务器各自的编码视频数据;
其中,至少所述目标数量个所述编码服务器的整体编码速率不小于所述直播流媒体源数据的帧率。
5.根据权利要求1所述的方法,其特征在于,所述多个流媒体片段属于目标封装格式;所述通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据,包括:
通过至少两个编码服务器对切片获得的、属于目标封装格式的流媒体片段进行并行解封装和解码,得到流媒体数据;
通过各所述编码服务器对各自的流媒体数据进行并行编码,获得各所述编码服务器各自的编码片段;
通过各所述编码服务器,按照所述目标封装格式对各自的编码片段进行并行封装,获得各所述编码服务器各自的编码视频数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取针对所述直播流媒体源数据进行处理所配置的所述预设切片粒度;
根据所述预设切片粒度、所述直播流媒体源数据的帧率以及所述编码服务器的独立编码速率,确定直播处理延时;所述直播处理延时分别与所述预设切片粒度和所述直播流媒体源数据的帧率正相关,所述直播处理延时与所述编码服务器的独立编码速率负相关;
基于所述直播处理延时确定所述目标缓存时长;所述目标缓存时长不小于所述直播处理延时。
7.根据权利要求1所述的方法,其特征在于,所述将所述各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据,包括:
将所述各编码服务器各自的编码视频数据按照时间戳顺序进行合并,得到合并编码数据;
对所述合并编码数据进行封装格式转换,获得符合直播传输封装格式的直播流媒体编码数据;
所述方法还包括:
通过内容分发网络向所述直播客户端发送所述直播流媒体编码数据,以在直播客户端上进行播放。
8.根据权利要求1至7任意一项所述的方法,其特征在于,所述方法还包括:
确定所述至少两个编码服务器的最大整体编码速率;
当确定所述最大整体编码速率与所述直播流媒体源数据的帧率不匹配时,对所述至少两个编码服务器的服务器数量进行调整,以使调整后的编码服务器的最大整体编码速率与所述直播流媒体源数据的帧率相匹配。
9.根据权利要求1至7任意一项所述的方法,其特征在于,所述至少两个编码服务器分别通过编码步骤对切片获得的流媒体片段进行并行编码;所述编码步骤包括:
将所述流媒体片段中的各视频帧分别进行划分,得到所述各视频帧各自的编码单元;
对所述各视频帧各自的编码单元进行预测,并基于获得的预测值得到各所述编码单元的残差数据;
对所述各视频帧各自的残差数据进行编码,获得所述流媒体片段的编码视频数据。
10.根据权利要求9所述的方法,其特征在于,所述编码单元包括预测单元;所述对所述各视频帧各自的编码单元进行预测,并基于获得的预测值得到各所述编码单元的残差数据,包括:
对所述各视频帧各自的预测单元,按照目标预测模式进行预测,得到预测数据;所述目标预测模式从帧内预测和帧间预测中确定;
基于通过所述预测单元预测得到的预测数据与所述预测单元,确定各所述编码单元的原始残差;
对各所述编码单元的原始残差进行数据变换,得到各所述编码单元的残差数据。
11.一种直播流媒体处理系统,其特征在于,所述系统包括:切片服务器、合并服务器以及包括至少两个编码服务器的编码服务器集群;
所述切片服务器,用于缓存直播流媒体数据,响应于缓存的直播流媒体数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体数据切片,获得能够独立编码的多个流媒体片段;所述目标缓存时长与所述预设切片粒度正相关,且与所述编码服务器集群中编码服务器的数量正相关;
所述编码服务器集群,用于通过所述至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;
所述合并服务器,用于将所述各编码服务器各自的编码视频数据合并获得直播流媒体编码数据;所述直播流媒体编码数据用于向直播客户端发送。
12.根据权利要求11所述的系统,其特征在于,所述预设切片粒度包括预设画面组的整数倍粒度;
所述切片服务器,还用于统计所缓存的直播流媒体源数据的流媒体时长;当所述流媒体时长达到预设的目标缓存时长时,按照所述预设画面组的整数倍粒度,将所缓存的直播流媒体源数据进行切片,获得可独立编码的多个流媒体片段。
13.根据权利要求11或12所述的系统,其特征在于,所述流媒体片段为目标数量个,所述目标数量与所述直播流媒体源数据的帧率正相关,所述目标数量与编码服务器的独立编码速率负相关;
所述编码服务器集群,还用于通过至少所述目标数量个所述编码服务器对切片获得的流媒体片段进行并行编码,获得各所述编码服务器各自的编码视频数据;其中,至少所述目标数量个所述编码服务器的整体编码速率不小于所述直播流媒体源数据的帧率。
14.一种直播流媒体数据处理装置,其特征在于,所述装置包括:
直播流切片模块,用于缓存直播流媒体源数据,响应于缓存的直播流媒体源数据的流媒体时长达到目标缓存时长,按照预设切片粒度对所缓存的直播流媒体源数据切片,获得可独立编码的多个流媒体片段;所述目标缓存时长与所述预设切片粒度正相关;
切片并行编码模块,用于通过至少两个编码服务器对切片获得的流媒体片段进行并行编码,获得各编码服务器各自的编码视频数据;所述至少两个编码服务器的整体编码速率不小于所述直播流媒体源数据的帧率;
编码数据合并模块,用于将所述各编码服务器各自的编码视频数据合并,获得直播流媒体编码数据;所述直播流媒体编码数据用于向直播客户端发送。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210904547.9A CN115278302A (zh) | 2022-07-29 | 2022-07-29 | 直播流媒体数据处理方法、系统、装置和计算机设备 |
PCT/CN2023/094147 WO2024021772A1 (zh) | 2022-07-29 | 2023-05-15 | 直播流媒体数据处理方法、系统、装置和计算机设备 |
US18/644,232 US20240283986A1 (en) | 2022-07-29 | 2024-04-24 | Live Streaming Media |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210904547.9A CN115278302A (zh) | 2022-07-29 | 2022-07-29 | 直播流媒体数据处理方法、系统、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115278302A true CN115278302A (zh) | 2022-11-01 |
Family
ID=83772064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210904547.9A Pending CN115278302A (zh) | 2022-07-29 | 2022-07-29 | 直播流媒体数据处理方法、系统、装置和计算机设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240283986A1 (zh) |
CN (1) | CN115278302A (zh) |
WO (1) | WO2024021772A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115914681A (zh) * | 2022-11-14 | 2023-04-04 | 北京奇艺世纪科技有限公司 | 视频断流处理方法、装置、设备、存储介质及程序产品 |
WO2024021772A1 (zh) * | 2022-07-29 | 2024-02-01 | 腾讯科技(深圳)有限公司 | 直播流媒体数据处理方法、系统、装置和计算机设备 |
CN117499720A (zh) * | 2023-11-10 | 2024-02-02 | 广州凯迪云信息科技有限公司 | 一种用于提高图像直播质量的方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118354108B (zh) * | 2024-06-18 | 2024-08-16 | 北京宏数科技有限公司 | 一种通过5g公网推送直播视频流的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2749029A4 (en) * | 2011-08-25 | 2015-01-21 | Panasonic Ip Corp America | METHOD AND DEVICES FOR CODING, EXTRACTION AND DECODING VIDEO CONTENT BY MEANS OF A TILE CODING SCHEME |
JP2017195477A (ja) * | 2016-04-19 | 2017-10-26 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
CN107197296B (zh) * | 2017-06-22 | 2019-08-13 | 华中科技大学 | 一种基于COStream的HEVC并行编码方法和系统 |
CN109862357A (zh) * | 2019-01-09 | 2019-06-07 | 深圳威尔视觉传媒有限公司 | 低延迟的云游戏图像编码方法、装置、设备和存储介质 |
CN110933436A (zh) * | 2019-12-17 | 2020-03-27 | 展讯通信(上海)有限公司 | 图像编码方法、装置、计算机设备及存储介质 |
CN114257839A (zh) * | 2020-09-23 | 2022-03-29 | 京东方科技集团股份有限公司 | 视频编码装置及解码装置、播放系统及方法 |
CN115278302A (zh) * | 2022-07-29 | 2022-11-01 | 腾讯科技(深圳)有限公司 | 直播流媒体数据处理方法、系统、装置和计算机设备 |
-
2022
- 2022-07-29 CN CN202210904547.9A patent/CN115278302A/zh active Pending
-
2023
- 2023-05-15 WO PCT/CN2023/094147 patent/WO2024021772A1/zh unknown
-
2024
- 2024-04-24 US US18/644,232 patent/US20240283986A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021772A1 (zh) * | 2022-07-29 | 2024-02-01 | 腾讯科技(深圳)有限公司 | 直播流媒体数据处理方法、系统、装置和计算机设备 |
CN115914681A (zh) * | 2022-11-14 | 2023-04-04 | 北京奇艺世纪科技有限公司 | 视频断流处理方法、装置、设备、存储介质及程序产品 |
CN117499720A (zh) * | 2023-11-10 | 2024-02-02 | 广州凯迪云信息科技有限公司 | 一种用于提高图像直播质量的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20240283986A1 (en) | 2024-08-22 |
WO2024021772A1 (zh) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2024021772A1 (zh) | 直播流媒体数据处理方法、系统、装置和计算机设备 | |
KR102304687B1 (ko) | 정보 처리 장치 및 방법 | |
TW202037163A (zh) | 改善的子劃分內預測 | |
JP6050488B2 (ja) | ランダムアクセスのためのマルチレイヤビデオ符号化方法及びその装置、並びにランダムアクセスのためのマルチレイヤビデオ復号化方法及びその装置 | |
US12058347B2 (en) | Flexible tile signaling in video coding | |
US11750849B2 (en) | Method for partitioning block including image and device therefor | |
CN110324623B (zh) | 一种双向帧间预测方法及装置 | |
CN110809758A (zh) | 容器文件及视频位流中关注区域的增强信令发射 | |
TW202046722A (zh) | 用於框內預測模式推導之基於區塊之量化剩餘域脈碼調變指派 | |
US9723321B2 (en) | Method and apparatus for coding video stream according to inter-layer prediction of multi-view video, and method and apparatus for decoding video stream according to inter-layer prediction of multi view video | |
CN111212025B (zh) | 网络自适应视频流的传输方法和装置 | |
CN113038128B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
US9961323B2 (en) | Method and apparatus for multiview video encoding based on prediction structures for viewpoint switching, and method and apparatus for multiview video decoding based on prediction structures for viewpoint switching | |
US20170078697A1 (en) | Depth image prediction mode transmission method and apparatus for encoding and decoding inter-layer video | |
CN105230016A (zh) | 用于视频译码的具有解码次序编号的单个网络抽象层单元包 | |
CN112166606A (zh) | 用于处理图像的方法及其设备 | |
US12101489B2 (en) | Supporting view direction based random access of bitstream | |
KR101610725B1 (ko) | 참조 빈도에 따라 참조 영상 데이터를 제어하는 비디오 부복호화 방법 및 장치 | |
Zeng et al. | TVSR‐OR: Tile‐based 360‐degree video streaming over real time streaming protocol with optimized read | |
TW202312739A (zh) | 綠色中繼資料訊號傳遞 | |
TW202433920A (zh) | 用於跨分量適應性迴路濾波的區域優化儲存方案 | |
KR20240046575A (ko) | 비디오 인코딩 방법 및 장치, 전자 디바이스, 및 저장 매체 | |
KR20150006465A (ko) | 비디오 스트림들의 비용-효율적이고 저-레이턴시 인코딩을 가능하게 하기 위한 메커니즘 | |
CN117812268A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40076048 Country of ref document: HK |