CN116980392A - 媒体流处理方法、装置、计算机设备和存储介质 - Google Patents
媒体流处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116980392A CN116980392A CN202211516657.4A CN202211516657A CN116980392A CN 116980392 A CN116980392 A CN 116980392A CN 202211516657 A CN202211516657 A CN 202211516657A CN 116980392 A CN116980392 A CN 116980392A
- Authority
- CN
- China
- Prior art keywords
- media stream
- terminal
- media
- target
- processing capability
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 238000003672 processing method Methods 0.000 title abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 310
- 230000003993 interaction Effects 0.000 claims abstract description 253
- 230000002452 interceptive effect Effects 0.000 claims abstract description 80
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000004590 computer program Methods 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 36
- 238000009877 rendering Methods 0.000 claims description 33
- 238000005457 optimization Methods 0.000 claims description 30
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 38
- 230000000694 effects Effects 0.000 abstract description 20
- 238000013473 artificial intelligence Methods 0.000 abstract description 13
- 230000003044 adaptive effect Effects 0.000 description 31
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000001094 photothermal spectroscopy Methods 0.000 description 1
Abstract
本申请涉及一种媒体流处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法涉及人工智能技术,可由云服务器执行,包括:在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息;基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;向交互房间中的目标终端下发目标媒体流。采用本方法能够提高媒体流的播放效果。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种媒体流处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,基于云技术实现的云应用类型和数量越来越多,如各种各样的云游戏。在云应用中,应用服务在云端服务器运行,云端服务器将云应用中渲染完成的音视频流下方到终端中进行播放,从而不需要终端进行复杂处理,可以降低终端的设备条件要求。
然而,在将渲染完成的音视频流下方到终端进行播放时,不同终端各自的设备条件不同,难以实现各个终端播放流畅和音质高、画质高之间的平衡,容易出现播放卡顿或者音质低、画质低的问题,导致媒体流的播放效果较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效平衡媒体流的播放流畅和播放品质,从而提高媒体流播放效果的媒体流处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种媒体流处理方法。所述方法包括:
在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息;
基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
向交互房间中的目标终端下发目标媒体流。
第二方面,本申请还提供了一种媒体流处理装置。所述装置包括:
处理能力信息获取模块,用于在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息;
媒体数据编码模块,用于基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
媒体流确定模块,用于确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
媒体流下发模块,用于向交互房间中的目标终端下发目标媒体流。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息;
基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
向交互房间中的目标终端下发目标媒体流。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息;
基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
向交互房间中的目标终端下发目标媒体流。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息;
基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
向交互房间中的目标终端下发目标媒体流。
上述媒体流处理方法、装置、计算机设备、存储介质和计算机程序产品,基于加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息,对待下发的媒体数据进行自适应编码,获得媒体流参数与媒体流处理能力信息相适配的至少一种媒体流,从至少一种媒体流中确定根据目标终端的媒体流处理能力信息选定的目标媒体流,并将目标媒体流下发到目标终端,使得基于云应用进行交互的目标终端可以根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,从而提高媒体流的播放效果。
第六方面,本申请提供了一种媒体流处理方法。所述方法包括:
在云应用的运行过程中,确定针对云应用的交互房间中终端的至少一种媒体流;至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的;且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
获取目标媒体流,并将目标媒体流进行播放。
第七方面,本申请还提供了一种媒体流处理装置。所述装置包括:
媒体流确定模块,用于在云应用的运行过程中,确定针对云应用的交互房间中终端的至少一种媒体流;至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的;且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
媒体流选定模块,用于确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
媒体流获取模块,用于获取目标媒体流,并将目标媒体流进行播放。
第八方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在云应用的运行过程中,确定针对云应用的交互房间中终端的至少一种媒体流;至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的;且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
获取目标媒体流,并将目标媒体流进行播放。
第九方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在云应用的运行过程中,确定针对云应用的交互房间中终端的至少一种媒体流;至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的;且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
获取目标媒体流,并将目标媒体流进行播放。
第十方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
在云应用的运行过程中,确定针对云应用的交互房间中终端的至少一种媒体流;至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的;且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
获取目标媒体流,并将目标媒体流进行播放。
上述媒体流处理方法、装置、计算机设备、存储介质和计算机程序产品,确定针对云应用的交互房间中终端的至少一种媒体流,至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的,且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配,从至少一种媒体流中确定根据目标终端的媒体流处理能力信息选定的目标媒体流,并获取目标媒体流进行播放,基于云应用进行交互的过程中根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,从而提高媒体流的播放效果。
附图说明
图1为一个实施例中媒体流处理方法的应用环境图;
图2为一个实施例中媒体流处理方法的流程示意图;
图3为一个实施例中不同终端显示不同视频流的界面示意图;
图4为图3所示实施例中终端显示视频流变化的界面示意图;
图5为一个实施例中自适应编码的流程示意图;
图6为另一个实施例中媒体流处理方法流程示意图;
图7为一个实施例中云游戏处理的流程示意图;
图8为一个实施例中云游戏的架构框图;
图9为一个实施例中联播技术编码出多路视频流的示意图;
图10为一个实施例中媒体流处理的架构框图;
图11为一个实施例中媒体流处理装置的结构框图;
图12为另一个实施例中媒体流处理装置的结构框图;
图13为一个实施例中计算机设备的内部结构图;
图14为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的媒体流处理方法,可以应用于如图1所示的应用环境中。其中,各个终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。各个终端102可以加入在服务器104运行的云应用的交互房间,从而在该交互房间中实现基于云应用的交互,如进行社交沟通、进行游戏对战等各种交互。服务器104在云应用的运行过程中,基于加入到云应用的交互房间中进行交互的各个终端102的媒体流处理能力信息,对待下发的媒体数据进行自适应编码,获得媒体流参数与媒体流处理能力信息相适配的至少一种媒体流,服务器104从至少一种媒体流中确定根据目标终端的媒体流处理能力信息选定的目标媒体流,并将目标媒体流下发到目标终端,目标终端可以是各个终端102中的任意一个。
本申请实施例提供的媒体流处理方法,可以应用于如图1所示的应用环境中。各个终端102可以加入在服务器104运行的云应用的交互房间,从而在该交互房间中实现基于云应用的交互,如进行社交沟通、进行游戏对战等各种交互。在云应用的运行过程中,加入交互房间的目标终端确定针对云应用的交互房间中各终端102的至少一种媒体流,至少一种媒体流是由服务器104基于加入到交互房间中进行交互的终端102的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的,且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配,目标终端从至少一种媒体流中确定根据目标终端的媒体流处理能力信息选定的目标媒体流,并获取目标媒体流进行播放。目标终端可以为各个终端102中的任意一个。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的方案涉及人工智能的云计算技术,具体通过如下实施例进行说明:
在一个实施例中,如图2所示,提供了一种媒体流处理方法,该方法由计算机设备执行,具体可以由终端或服务器等计算机设备单独执行,也可以由终端和服务器共同执行,在本申请实施例中,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息。
其中,云应用是指基于云技术实现的应用,可以由云服务器运行。云技术(Cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。在具体应用中,云应用可以为云游戏,云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
交互房间是指在云应用中的虚拟交互空间,属于相同交互房间的用户可以在交互房间内进行交互。用户在交互房间中,可以实现各种形式的交互,如游戏对战、对话交流等形式的交互。例如,云应用为云游戏,则加入云游戏同一交互房间的用户可以进行游戏对战交互。此外,对于加入到交互房间中的用户,各个用户之间的交互方式可以不同,如对于云游戏的交互房间,用户A和用户B可以进行对战交互,而用户C可以针对用户A和用户B的对战交互进行观战交互,则用户A、用户B和用户C均需要获取该交互房间中的媒体数据。加入到云应用的交互房间中进行交互的终端的数量可以为一个或至少两个。媒体流处理能力信息用于描述终端针对媒体流的处理能力,具体可以为针对下行媒体流的处理能力,如可以包括但不限于包括终端支持的码率、帧率、解码格式等各种能力信息。不同的终端,由于设备条件的不同,如终端硬件的性能差异,终端的网络差异等,会有不同的媒体流处理能力信息。例如,对于网络状况优良的终端,其可以支持流畅处理的媒体流的码率也越大;对于解码性能强的终端,其可以支持更优的媒体流解码算法,以对媒体流进行解码处理。媒体流处理能力信息可以由服务器对交互房间中的终端进行检测得到,也可以根据交互房间中的终端的标识信息查询得到,还可以由交互房间中的终端上报获得。
具体地,服务器可以运行云应用,在云应用的运行过程中,用户可以通过终端加入云应用的交互房间中,以在该交互房间中进行交互。服务器检测云应用的交互房间中的参与成员,获取加入到该交互房间的终端的媒体流处理能力信息。在具体实现中,服务器可以向加入交互房间的终端发送处理能力信息请求,以指示终端上报其相应的媒体流处理能力信息。此外,服务器也可以直接根据终端的标识信息查询得到相应的媒体流处理能力信息,还可以针对终端进行检测或评估,得到终端的媒体流处理能力信息。
步骤204,基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配。
其中,媒体数据属于云应用中的下行数据,即媒体数据是需要由服务器向各终端下发的数据。媒体数据是用户通过云应用进行交互的过程中产生的数据,具体的数据内容和数据类型与云应用相关。例如,媒体数据可以包括游戏视频数据,服务器通过将游戏视频数据下发到参与云游戏的各个终端,在各个终端中进行播放,从而实现云游戏的运行。媒体数据可以由服务器基于各个终端的操作信息,结合云应用的运行信息生成得到,如可以渲染生成游戏视频数据。自适应编码是指针对交互房间中终端的媒体流处理能力信息进行适应性编码,不同的媒体流处理能力信息可以对应于不同的编码条件,以编码获得不同的媒体流。
媒体流是媒体数据经过编码得到的媒体编码数据,通过对媒体数据进行编码,可以实现对媒体数据的压缩,通过编码得到的媒体流进行传输和存储,能够减少数据量,提高媒体数据的传输效率,节省媒体数据的存储空间。媒体流参数是指媒体流的属性参数,具体可以包括但不限于包括编码格式、分辨率、帧率、码率等各种属性参数。媒体流参数的具体类型可以根据实际需要进行灵活设置,如可以根据云应用的类型进行对应设置。对于不同媒体流参数的媒体流,其适应于不同的处理条件,如适应于不同的解码格式、网络传输条件、播放条件等。媒体流的媒体流参数与媒体流处理能力信息相适配,从而支持具有不同媒体流处理能力信息选择适合的媒体流进行处理,如进行传输、解码或播放等处理,可以确保媒体流的处理效果。
具体地,服务器获取交互房间中待下发的媒体数据,并基于交互房间中终端的媒体流处理能力信息,对媒体数据进行自适应编码,得到至少一种媒体流。媒体流的种类数目可以根据媒体流处理能力信息确定,交互房间中各个终端各自的媒体流处理能力信息差异变化大的数量越多,则为适配各个终端,需要编码出更多种类的媒体流。不同种类的媒体流可以具有不同的媒体流参数,媒体流的媒体流参数与媒体流处理能力信息相适配。例如,若交互房间1中加入了3个终端进行交互,分别为终端A、终端B和终端C,若终端A、终端B和终端C各自的媒体流处理能力信息差异较大,则服务器针对该交互房间可以编码出3种媒体流,媒体流处理能力信息分别与一种媒体流适配。又如,交互房间2中加入了2个终端进行交互,分别为终端D和终端E,若终端D和终端E各自的媒体流处理能力信息差异较小,则服务器针对该交互房间可以编码出1种媒体流,该种媒体流的媒体流参数与终端D的媒体流处理能力信息,及终端E的媒体流处理能力信息均相适配。
步骤206,确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的。
其中,目标终端属于加入到云应用的交互房间中进行交互的终端,目标终端可以是加入到云应用的交互房间中进行交互的终端中的至少一部分。目标媒体流是需要向目标终端下发的媒体流。目标媒体流根据目标终端的媒体流处理能力信息从至少一种媒体流中选定确定,具体可由服务器基于目标终端的媒体流处理能力信息,从至少一种媒体流中选定得到;也可以由目标终端根据自身的媒体流处理能力信息,从至少一种媒体流中选定得到。
具体地,服务器确定交互房间中目标终端所匹配的目标媒体流,如服务器可以确定需要下发媒体流的目标终端,目标终端为加入到交互房间中终端的至少一部分,即目标终端的数量可以为一个或者两个以上。
步骤208,向交互房间中的目标终端下发目标媒体流。
具体地,确定目标媒体流后,服务器将确定的目标媒体流向交互房间中的目标终端下发,目标终端接收到目标媒体流后,可以针对目标媒体流进行解码并播放。
在一个具体应用中,如图3所示,两个用户通过不同的终端基于云应用进行交互,具体为通过云游戏进行对战,第一终端和第二终端均加入了云游戏的交互房间,如虚线所示,表示第一终端和第二终端加入了同一交互房间,第一终端和第二终端各自的媒体流处理能力信息不同,在第一终端和第二终端上分别展示了云游戏的对战画面。其中,第一终端上展示的画面的码率为10Mb/s,即10M比特每秒,分辨率为1080P,帧率为60帧每秒;而第二终端上展示的画面的码率为5Mb/s,即5M比特每秒,分辨率为720P,帧率为50帧每秒,在视觉效果上,第一终端上展示的对战画面更加清晰,且更加流畅。第一终端媒体流处理能力强于第二终端,所以第一终端从服务器获取码率更大、分辨率更高、帧率更高的视频流,仍然可以进行流畅运行;而第二终端媒体流处理能力更弱,但其可以从服务器获取码率更小、分辨率更低、帧率更低的视频流,同样能够进行流畅运行,从而有效平衡了媒体流在终端的播放流畅和播放品质,从而提高媒体流的播放效果。
进一步地,若第二终端的媒体流处理能力得到加强,如第二终端释放了运行内存,关闭了后台应用,如图4所示,服务器检测到第二终端与第一终端的媒体流处理能力相同,则第二终端也可以向服务器获取码率更大、分辨率更高、帧率更高的视频流进行展示,具体也可以展示码率为10Mb/s、分辨率为1080P、帧率为60帧每秒的对战画面。
上述媒体流处理方法中,基于加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息,对待下发的媒体数据进行自适应编码,获得媒体流参数与媒体流处理能力信息相适配的至少一种媒体流,从至少一种媒体流中确定根据目标终端的媒体流处理能力信息选定的目标媒体流,并将目标媒体流下发到目标终端,使得基于云应用进行交互的目标终端可以根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,从而提高媒体流的播放效果。
在一个实施例中,如图5所示,自适应编码的处理,即基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流,包括:
步骤502,基于媒体流处理能力信息,确定针对交互房间中终端的至少一种媒体流编码条件。
其中,媒体流编码条件是指针对媒体数据进行编码的条件,具体可以包括但不限于编码格式、码率、分辨率和帧率等,按照不同的媒体流编码条件对媒体数据进行编码,可以获得不同种类的媒体流,每种媒体流的媒体流参数符合相应的媒体流编码条件。媒体流编码条件可以综合交互房间中所有终端的媒体流处理能力信息确定,从而能够在确保媒体流播放效果的前提下,减少媒体流的数量,从而降低编码处理的工作量。
具体地,服务器根据交互房间中所有终端的媒体流处理能力信息,确定针对交互房间中终端的媒体流编码条件,媒体流编码条件可以为一种或至少两种,具体根据交互房间中终端的媒体流处理能力信息确定。例如,交互房间3中加入了5个终端,服务器可以获取5个终端各自的媒体流处理能力信息,并综合各个终端的媒体流处理能力信息,确定出3种媒体流编码条件,如终端A、终端B和终端C对应于媒体流编码条件1,终端D对应于媒体流编码条件2,而终端E对应于媒体流编码条件3。
此外,在具体实现中,服务器也可以针对交互房间中每个终端的媒体流处理能力信息,确定与该终端相对应的媒体流编码条件,从而得到至少一种媒体流编码条件。例如,交互房间4中加入了终端A和终端B,服务器可以针对终端A和终端B各自的媒体流处理能力信息,分别确定终端A和终端B各自对应的媒体流编码条件,即该交互房间4可以按照两种媒体流编码条件编码出两种媒体流。若交互房间4中又加入了终端F,服务器针对终端F的媒体流处理能力信息,确定出的媒体流编码条件与终端A的媒体流编码条件相同,则终端F也可以适用于终端A的媒体流编码条件编码得到相应的媒体流,则终端F可以复用终端A对应的媒体流,此时该交互房间4仍然按照两种媒体流编码条件编码出两种媒体流。若交互房间4中又加入了终端G,服务器根据终端G的媒体流处理能力信息,确定出新的媒体流编码条件,与终端A、终端B及终端F分别的媒体流编码条件均不同,则服务器可以根据新的媒体流编码条件编码出新的媒体流,此时该交互房间4可以按照三种媒体流编码条件编码出三种媒体流。
步骤504,获取交互房间中待下发的媒体数据。
其中,媒体数据是终端用户在云应用的交互过程中所产生的应用数据,需要由服务器下发到加入到交互房间中终端上进行播放和展示。具体地,服务器获取交互房间中待下发的媒体数据,媒体数据可以由服务器根据交互房间中各个终端上传的交互操作数据渲染生成,如可以为云游戏的视频数据。
步骤506,按照至少一种媒体流编码条件,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流。
具体地,服务器利用至少一种媒体流编码条件对媒体数据进行自适应编码,如可以按照媒体流编码条件指定的码率、编码格式对媒体数据进行自适应编码,得到至少一种媒体流,获得的媒体流的媒体流参数满足媒体流编码条件。例如,媒体流编码条件包括码率为3M、5M和10M三种,则服务器可以对媒体数据进行自适应编码,编码出码率分别为3M、5M和10M的三种媒体流。
本实施例中,服务器根据交互房间中终端的媒体流处理能力信息,确定至少一种媒体流编码条件,并按照该至少一种媒体流编码条件对获得的媒体数据进行自适应编码,得到至少一种媒体流,媒体流的媒体流参数满足媒体流编码条件,从而根据交互房间中终端的媒体流处理能力信息编码出相匹配的媒体流,使得基于云应用进行交互的目标终端可以根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,有利于提高媒体流的播放效果。
在一个实施例中,媒体流处理能力信息包括网络资源信息和设备解码信息;基于媒体流处理能力信息,确定针对交互房间中终端的至少一种媒体流编码条件,包括:根据网络资源信息确定码率;根据设备解码信息确定编码格式、帧率和分辨率;基于码率、编码格式、帧率和分辨率,确定针对交互房间中终端的至少一种媒体流编码条件。
其中,网络资源信息用于表示终端的网络状况,具体可以包括但不限于包括终端的网络带宽,如可以包括上行带宽和下行带宽等。设备解码信息用于表示终端针对媒体流进行解码和播放的处理能力。设备解码信息具体可以包括设备解码算力信息,如可以包括设备支持的解码格式、分辨率、帧率等。编码格式是指针对媒体数据进行编码所采用的编码方式,如可以包括H.264、VP9、H.265或AV1等编码方式。解码格式与编码格式相对应,通过相对应的解码格式可以对编码格式编码得到的媒体流进行解码,以还原出媒体数据。
具体地,服务器获取的媒体流处理能力信息包括终端的网络资源信息和设备解码信息。其中,网络资源信息可以由服务器对终端进行带宽评估得到;设备解码信息则可以由服务器查询设备的属性信息获得,也可以由终端上报得到。对于网络资源信息,服务器确定码率,即确定需要编码生成的媒体流的数据传输速率。对于设备解码信息,服务器可以确定编码格式、帧率和分辨率,从而确保终端可以适配进行解码得到媒体数据,并将媒体数据进行播放。服务器根据码率、编码格式、帧率和分辨率,得到针对交互房间中终端的至少一种媒体流编码条件。
在具体应用中,服务器可以将同一终端的网络资源信息确定码率,根据该终端的设备解码信息确定编码格式、帧率和分辨率,并将码率、编码格式、帧率和分辨率组合得到针对该终端的媒体流编码条件。进一步地,服务器在确定出各个终端的媒体流编码条件后,基于各个终端的媒体流编码条件进行合并和去重,从而得到针对交互房间中终端的至少一种媒体流编码条件。
本实施例中,服务器基于根据网络资源信息确定的码率,根据设备解码信息确定的编码格式、帧率和分辨率,确定至少一种媒体流编码条件,通过确定的媒体流编码条件,服务器可以编码出与交互房间中终端的媒体流处理能力信息编码相匹配的媒体流,使得基于云应用进行交互的目标终端可以根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,有利于提高媒体流的播放效果。
在一个实施例中,媒体流处理能力信息包括网络资源信息和设备解码信息;至少一种媒体流编码条件包括编码格式、码率、帧率或分辨率中的至少一种。
具体地,终端的媒体流处理能力信息包括网络资源信息和设备解码信息,网络资源信息用于表示终端的网络状况,基于终端的网络状况可以确定编码的码率;设备解码信息用于表示终端针对媒体流的解码及播放能力,基于终端针对媒体流的解码及播放能力,可以确定编码的编码格式、帧率和分辨率。服务器确定的媒体流编码条件包括编码格式、码率、帧率或分辨率中的至少一种,具体可以根据实际需要进行灵活设置。
本实施例中,服务器基于码率、编码格式、帧率和分辨率中的至少一种,确定出至少一种媒体流编码条件,通过确定的媒体流编码条件,服务器可以在指定的维度灵活编码出与交互房间中终端的媒体流处理能力信息编码相匹配的媒体流,使得基于云应用进行交互的目标终端可以根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,有利于提高媒体流的播放效果。
在一个实施例中,媒体流包括至少两种;按照至少一种媒体流编码条件,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流,包括:当媒体流编码条件包括相同的帧率,对媒体数据分别进行自适应编码,获得媒体流参数满足媒体流编码条件的至少两种媒体流;各媒体流中相同分布位置的数据具有相同的时间戳信息;当媒体流编码条件包括存在倍数关系的帧率,对媒体数据分别进行自适应编码,获得媒体流参数满足媒体流编码条件的至少两种媒体流;各媒体流中相同分布位置的数据的时间戳信息存在倍数关系。
其中,媒体流包括至少两种,即服务器编码出至少两种媒体流参数不同的媒体流。分布位置是指在媒体流中的数据位置,例如,对于视频数据,分布位置为视频流中每个视频帧所在的位置序号。时间戳信息是指媒体数据本身的属性信息,每个媒体数据均具有各自的属性信息,包括各自的时间戳信息,以标记媒体数据之间的先后顺序关系。对媒体数据进行编码,是将媒体数据进行压缩,即进行采样压缩,则采样出的媒体数据的时间戳并不一定保持连续。例如,对于视频数据,若间隔一帧进行采样编码,则编码得到的视频流中视频帧的时间戳信息也存在1帧的间隔。时间戳信息具体可以为时间戳序号,用来表征各数据之间的先后顺序关系。倍数关系是指不同帧率之间存在倍率,例如,对于帧率为30FPS(FramesPer Second,帧每秒)和60FPS,则该两种帧率之间存在2被的倍数关系。
在编码出多种媒体流时,各种媒体流中数据的时间戳信息之间的关联关系,与各媒体流帧率之间的关联关系相匹配。具体地,在服务器需要编码出多种媒体流,且媒体流编码条件包括相同的帧率,即每种媒体流的帧率相同,则服务器按照媒体流编码条件对述媒体数据分别进行自适应编码,得到至少两种媒体流。获得的至少两种媒体流具有不同的媒体流参数,但具有相同的帧率。对于获得的至少两种媒体流,在媒体流中同分布位置的数据具有相同的时间戳信息,即各种媒体流均是从原始的媒体数据中抽取相同时间戳信息的数据进行编码得到。
在服务器需要编码出多种媒体流,且媒体流编码条件包括存在倍数关系的帧率,即不同种类媒体流的帧率存在倍数关系,则服务器按照媒体流编码条件对述媒体数据分别进行自适应编码,得到至少两种媒体流。获得的至少两种媒体流具有不同的媒体流参数,且帧率之间也存在倍数关系。对于获得的至少两种媒体流,在媒体流中同分布位置的数据的时间戳信息也存在与帧率相同的倍数关系,即各种媒体流均是从原始的媒体数据中抽取存在倍数关系的时间戳信息的数据进行编码得到。例如,对于两种帧率的媒体流,媒体流A的帧率为30FPS,而媒体流B的帧率为60FPS,媒体流B的帧率是媒体流A的帧率的2倍,若媒体流A中第n帧的时间戳为2N,则媒体流B中第n帧的时间戳为N,媒体流B中第2n帧的时间戳为2N。
本实施例中,服务器编码出至少两种媒体流时,各媒体流帧率相同时,各媒体流中数据的时间戳信息也保持一致;而各媒体流帧率存在倍数关系时,各媒体流中数据的时间戳也保持一致的倍数关系,从而有利于在不同帧率的快速切换。
在一个实施例中,基于媒体流处理能力信息,确定针对交互房间中终端的至少一种媒体流编码条件,包括:基于媒体流处理能力信息,通过联播算法确定针对交互房间中终端的至少一种媒体流编码条件;按照至少一种媒体流编码条件,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流,包括:通过每种媒体流编码条件相匹配的编码器,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流。
其中,联播(Simulcast)算法是通过推流端推流时将采集的媒体数据编码成多种媒体流并发送到转发节点,终端可以通过连接转发节点根据自身下行带宽网络情况动态地选择某个媒体流。具体联播算法通过设置不同的编码器对媒体数据进行编码,通过不同的编码器编码得到不同种类的媒体流。
具体地,服务器基于交互房间中终端的媒体流处理能力信息,采用联播算法确定至少一种媒体流编码条件。通过联播算法,基于媒体流处理能力信息可以确定媒体流编码条件的种类数量,以及每种媒体流编码条件的具体条件参数。服务器确定每种媒体流编码条件相匹配的编码器,并按照该编码器对媒体数据进行自适应编码,得到媒体流参数满足媒体流编码条件的至少一种媒体流。
本实施例中,服务器通过联播算法确定媒体流编码条件,并通过每种媒体流编码条件相匹配的编码器,对媒体数据进行自适应编码得到至少一种媒体流,通过编码出与交互房间中终端的媒体流处理能力信息编码相匹配的媒体流,使得基于云应用进行交互的目标终端可以根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,有利于提高媒体流的播放效果。
在一个实施例中,媒体流包括至少两种;按照至少一种媒体流编码条件,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流,包括:确定参考媒体流的参考编码优化参数;参考媒体流,是按照参考媒体流编码条件对媒体数据进行自适应编码得到的;根据参考编码优化参数,确定至少一种媒体流编码条件相匹配的编码优化参数;按照至少一种媒体流编码条件和相匹配的编码优化参数,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流。
其中,自适应编码出的媒体流包括至少两种,参考媒体流是用于自适应编码进行参考的媒体流。参考编码优化参数是参考媒体流在编码时的优化参数,具体可以包括率失真优化信息、编码单元划分、变换处理、预处理等各种类型信息,从而可以有效降低自适应编码时的失真率。参考媒体流通过按照参考媒体流编码条件对媒体数据进行自适应编码得到,具体在自适应编码时引入参考编码优化参数进行编码优化处理。
具体地,在自适应编码出多种媒体流时,服务器可以将已经完成编码或者已经确定编码参数的媒体流,即服务器可以确定按照参考媒体流编码条件对媒体数据进行自适应编码得到的参考媒体流,并获取参考媒体流的参考编码优化参数。服务器根据参考编码优化参数,确定至少一种媒体流编码条件相匹配的编码优化参数,并按照至少一种媒体流编码条件和相匹配的编码优化参数,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流,从而利用参考媒体流的参考编码优化参数辅助进行自适应编码,在降低媒体流编码失真率的前提下,简化了确定编码优化参数的处理,有利于提高智适应编码的处理效率。
本实施例中,服务器利用参考媒体流的参考编码优化参数,确定至少一种媒体流编码条件相匹配的编码优化参数,并通过确定的编码优化参数辅助进行自适应编码,可以在降低媒体流编码失真率的前提下,简化了确定编码优化参数的处理,有利于提高智适应编码的处理效率。
在一个实施例中,媒体流处理方法还包括:当加入到云应用的交互房间中进行交互的终端触发更新,获取更新后终端的媒体流处理能力信息;当更新后终端的媒体流处理能力信息满足媒体流更新条件,基于更新后终端的媒体流处理能力信息,对至少一种媒体流进行更新。
其中,加入到云应用的交互房间中进行交互的终端触发更新,表明交互房间中的终端发生变化,如有终端退出或者有新的终端加入。媒体流更新条件用于判定是否需要针对媒体流信息更新,即是否需要改变媒体流的种类数量,或者是否需要改变每种媒体流的媒体流参数。媒体流更新条件可以基于更新后终端的媒体流处理能力信息,与已经存在的媒体流的媒体流参数的匹配结果确定,如更新后终端的媒体流处理能力信息能够与已经存在的媒体流的媒体流参数匹配,则针对更新后的终端,仍然可以向其下发已经编码存在的媒体流,则不需要对媒体流进行更新。若更新后终端的媒体流处理能力信息与已经存在的媒体流的媒体流参数均不匹配,则需要对媒体流进行更新,以得到媒体流参数能够与更新后终端的媒体流处理能力信息相匹配的媒体流,如可以新增媒体流或者改变一部分媒体流的媒体流参数。
具体地,服务器可以针对交互房间加入的终端进行检测,在检测到加入交互房间中进行交互的终端触发更新,如有终端退出交互房间或有终端加入交互房间时触发更新,服务器可以获取更新后终端的媒体流处理能力信息。服务器获取媒体流更新条件,并根据更新后终端的媒体流处理能力信息确定是否媒体流更新条件,若满足媒体流更新条件,表明需要对自适应编码得到的媒体流进行更新,则服务器可以于更新后终端的媒体流处理能力信息,对至少一种媒体流进行更新。例如,服务器可以增加新的媒体流,或者服务器可以减少媒体流,又或者服务器可以对媒体流的媒体流参数进行调整。服务器对媒体流的更新方式根据实际需要进行选择。
本实施例中,在交互房间中终端触发更新,且更新后终端的媒体流处理能力信息满足媒体流更新条件,服务器对至少一种媒体流进行更新,从而根据交互房间中终端的动态状态,对媒体流进行动态更新,能够在交互房间中产生更新时,及时动态调整媒体流,以平衡媒体流在终端的播放流畅和播放品质,有利于提高媒体流的播放效果。
在一个实施例中,基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流,包括:基于媒体流处理能力信息和编码处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流整体的媒体流参数与编码处理能力信息相适配。
其中,编码处理能力信息用于描述服务器针对媒体数据进行编码处理的能力,具体可以包括服务器的编码算力信息。服务器的编码处理能力有限,无法无限制地支持过多媒体流的自适应编码处理,则服务器可以结合编码处理能力信息对媒体流的自适应编码进行调控。
具体地,服务器获取编码处理能力信息,并基于编码处理能力信息和媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流。具体地,服务器可以综合媒体流处理能力信息和编码处理能力信息,确定媒体流的数目,并按照该数目进行自适应编码得到相应数量的媒体流。自适应编码得到的媒体流整体的媒体流参数与编码处理能力信息相适配,具体可以是媒体流整体的媒体流参数不超过服务器的编码处理能力范围,从而确保服务器能够正常执行自适应编码处理,输出相应数量的媒体流。
本实施例中,服务器根据媒体流处理能力信息和编码处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,使得到的媒体流整体的媒体流参数与编码处理能力信息相适配,从而确保服务器能够正常执行自适应编码处理,输出相应数量的媒体流。
在一个实施例中,媒体流处理方法还包括:获取加入到云应用的交互房间中进行交互的终端的操作指令信息;根据操作指令信息渲染生成交互房间中待下发的媒体数据,并将媒体数据存储到目标缓存中。
其中,操作指令信息是指用户在云应用的交互房间中进行交互时所触发的控制操作的操作信息。如在云游戏的对战交互过程中,操作指令信息可以包括用户触发的进行对战的操作信息。具体地,用户通过终端在交互房间中进行交互,终端采集用户触发的控制操作,并生成操作指令信息。终端将操作指令信息发送到服务器,服务器获取终端上传的操作指令信息,并根据操作指令信息渲染生成交互房间中待下发的媒体数据,如服务器可以根据操作指令信息和云应用的应用交互逻辑,渲染生成交互房间中待下发的媒体数据。服务器可以将生成的媒体数据存储到目标缓存中。
进一步地,基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流,包括:从目标缓存中读取媒体数据,并基于媒体流处理能力信息对媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流。
具体地,服务器进行自适应编码处理时,服务器可以从目标缓存中读取已经存储的媒体数据,并基于媒体流处理能力信息对获得的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流。
本实施例中,服务器将根据终端的操作指令信息渲染生成的媒体数据存储到目标缓存中,并从目标缓存中读取媒体数据进行自适应编码处理,可以减少媒体数据在不同存储器中的反复读写处理,有利于提高媒体流自适应编码的处理效率。
在一个实施例中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息,包括:当检测到终端通过节点服务器加入到云应用的交互房间中进行交互,针对终端进行网络资源检测,得到网络资源信息;获取终端的设备解码信息;根据网络资源信息和设备解码信息,得到终端的媒体流处理能力信息。
其中,节点服务器可以与进行媒体流数据处理的服务器及终端分别连接,从而作为终端与服务器之间的连接桥梁,实现终端与服务器的稳定通信。终端可以与节点服务器连接,以通过节点服务器连接到进行媒体流数据处理的服务器。终端的网络资源信息由服务器进行网络资源检测得到,如可以针对终端进行带宽评估,得到终端的网络资源信息。
具体地,服务器检测到终端通过节点服务器加入到云应用的交互房间中进行交互时,可以针对加入交互房间的终端进行网络资源检测,得到终端的网络资源信息。服务器可以获取终端的设备解码信息,具体可以通过查询终端的属性信息获取终端的设备解码信息。服务器根据终端的网络资源信息和设备解码信息,得到终端的媒体流处理能力信息。此外,得到终端的网络资源信息后,服务器可以基于网络资源信息针对终端的接入进行调度,调整终端连接的节点服务器,实现终端能够就近接入,从而降低网络延时和抖动。
本实施例中,服务器针对通过节点服务器加入交互房间的终端进行网络资源检测,得到网络资源信息,并结合获取的设备解码信息得到终端的媒体流处理能力信息,从而能够通过终端的媒体流处理能力信息进行自适应编码,使得基于云应用进行交互的目标终端可以根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,有利于提高媒体流的播放效果。
在一个实施例中,确定交互房间中目标终端所匹配的目标媒体流,包括以下至少一项:根据交互房间中目标终端发送的媒体流选择请求,从至少一种媒体流中确定目标媒体流;从至少一种媒体流中,确定媒体流参数与交互房间中目标终端的媒体流处理能力信息相适配的目标媒体流。
其中,媒体流选择请求可以由目标终端向服务器发送,以请求服务器下发指定的目标媒体流。具体地,目标终端可以根据自身的实时媒体流处理能力信息从至少一种媒体流中选定目标媒体流,并生成媒体流选择请求,目标终端将媒体流选择请求发送到服务器,服务器根据目标终端发送的媒体流选择请求,确定目标终端从至少一种媒体流中所选定的目标媒体流。此外,服务器也可以根据目标终端的媒体流处理能力信息,直接从至少一种媒体流中,确定目标终端的目标媒体流。
本实施例中,服务器可以根据用户的媒体流选择请求确定目标媒体流,或直接基于终端的媒体流处理能力信息确定目标媒体流,从而能够为终端准确确定相适配的媒体流,确保目标终端的媒体流播放效果。
在一个实施例中,如图6所示,提供了一种媒体流处理方法,该方法由计算机设备执行,具体可以由终端或服务器等计算机设备单独执行,也可以由终端和服务器共同执行,在本申请实施例中,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤602,在云应用的运行过程中,确定针对云应用的交互房间中终端的至少一种媒体流;至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的;且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配。
其中,交互房间是指在云应用中的虚拟交互空间,属于相同交互房间的用户可以在交互房间内进行交互。用户在交互房间中,可以实现各种形式的交互,如游戏对战、对话交流等形式的交互。媒体流处理能力信息用于描述终端针对媒体流的处理能力,具体可以为针对下行媒体流的处理能力,如可以包括但不限于包括终端支持的码率、帧率、解码格式等各种能力信息。不同的终端,由于设备条件的不同,如终端硬件的性能差异,终端的网络差异等,会有不同的媒体流处理能力信息。媒体数据属于云应用中的下行数据,即媒体数据是需要由服务器向各终端下发的数据。媒体数据是用户通过云应用进行交互的过程中产生的数据,具体的数据内容和数据类型与云应用相关。自适应编码是指服务器针对交互房间中终端的媒体流处理能力信息进行适应性编码,不同的媒体流处理能力信息可以对应于不同的编码条件,以编码获得不同的媒体流。媒体流是媒体数据经过服务器进行编码得到的媒体编码数据,媒体流参数是指媒体流的属性参数,具体可以包括但不限于包括编码格式、分辨率、帧率、码率等各种属性参数。
具体地,对于加入到云应用的交互房间进行交互的目标终端,可以在云应用的运行过程中,确定服务器针对云应用的交互房间中生成的至少一种媒体流,至少一种媒体流的媒体流参数与媒体流处理能力信息相适配。至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的。
步骤604,确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的。
其中,目标终端可以是加入到云应用的交互房间中进行交互的终端中的至少一部分终端。具体地,对于目标终端,该目标终端可以确定交互房间中与自身匹配的目标媒体流,目标媒体流根据自身的媒体流处理能力信息从至少一种媒体流中选定得到。
步骤606,获取目标媒体流,并将目标媒体流进行播放。
具体地,对于选定的目标媒体流,目标终端获取该目标媒体流,并将获得的目标媒体流进行播放,如将获得的目标视频流进行播放。
上述媒体流处理方法中,确定针对云应用的交互房间中终端的至少一种媒体流,至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的,且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配,从至少一种媒体流中确定根据目标终端的媒体流处理能力信息选定的目标媒体流,并获取目标媒体流进行播放,基于云应用进行交互的过程中根据自身媒体流处理能力信息,获取相匹配的目标媒体流进行播放,能够有效平衡媒体流在终端的播放流畅和播放品质,从而提高媒体流的播放效果。
在一个实施例中,确定交互房间中目标终端所匹配的目标媒体流,包括:根据目标终端的媒体流处理能力信息,生成媒体流选择请求;向服务器发送媒体流选择请求;媒体流选择请求用于指示服务器从至少一种媒体流中确定目标终端所匹配的目标媒体流。
其中,媒体流选择请求可以由目标终端向服务器发送,以请求服务器下发指定的目标媒体流。具体地,目标终端可以根据自身的实时媒体流处理能力信息从至少一种媒体流中选定目标媒体流,并生成媒体流选择请求,目标终端将媒体流选择请求发送到服务器,以指示服务器根据目标终端发送的媒体流选择请求,确定目标终端从至少一种媒体流中所选定的目标媒体流。
本实施例中,终端可以根据自身的媒体流处理能力信息,通过发送媒体流选择请求确定目标媒体流,从而能够准确确定相适配的媒体流,确保目标终端的媒体流播放效果。
本申请还提供一种应用场景,该应用场景应用上述的媒体流处理方法。具体地,该媒体流处理方法在该应用场景的应用如下:
在云会议的应用场景中,各用户可以通过各自的终端基于云会议应用进行视频会议,终端可以采集本地的视频数据上传到云服务器,云服务器将各用户的视频数据进行整合,得到云会议的会议视频数据,并将会议视频数据下发到各个终端。参加云会议的各个终端设备的性能不一,具有不同的媒体流处理能力,云服务器可以基于各个终端的媒体流处理能力信息,对待下发的会议视频数据进行自适应编码,获得视频流参数与媒体流处理能力信息相适配的至少一种会议视频流。云服务器从至少一种会议视频流中确定根据各个终端各自的媒体流处理能力信息选定的目标会议视频流,并将目标会议视频流下发到相应的终端,以在相应的终端进行展示。在云会议中,每个终端展示的是与自身媒体流处理能力相匹配的会议视频流,会议视频流的视频流参数可以不同,如可以有不同的帧率、码率和分辨率,但可以有效平衡会议视频流在不同终端的播放流畅和播放品质,从而提高会议视频流的播放效果。
本申请还提供一种应用场景,该应用场景应用上述的媒体流处理方法。具体地,该媒体流处理方法在该应用场景的应用如下:
云应用渲染的基本原理是将应用,比如游戏应用放到服务器上运行,把应用渲染出来的音视频画面,通过服务程序将桌面画面和语音采集、音视频编码以后再以媒体流的形式传送到终端,然后终端将接收到的音视频流解码后在终端渲染出来,终端上不再需要安装应用,各种终端比如电视、手机、PC、平板都可以运行。互动云应用,如互动云游戏将应用在云端渲染服务器中运行,然后终端用户连上云端渲染服务器的互动房间实现相应的玩法,比如拳皇格斗游戏,传统应用需要购买单机设备,互动用户用手柄连接上设备后实现互玩,或者PC版双方玩家通过同一个键盘实现互玩。而对于云互动应用,互动用户可以在不同的地方用电视、手机、PC、平板连接云端渲染设备,进行实时互动游戏应用体验。其中,云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户,在客户端用户的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以支持。
对于互动云游戏应用体验,传统技术是云端渲染服务器在采集编码时根据连接上的所有房间互动用户的网络带宽,选择最低带宽码率编码传输才能保证整个房间内的用户下行流畅,如此带来的最大问题是导致互动房间内网络好的用户画质也比较差,即交互房间内应用游戏画面画质是由交互房间内网络最差的用户决定的,导致房间内互动用户的体验比较差。此外,传统技术中下行视频编码流也只能选择下行所有用户终端都支持的编码格式,如H.264、VP9、H.265或AV1等,视频编码格式配置时需要综合所有用户的下行视频解码格式,导致网络终端视频硬解支持好的终端也只能选择参与终端都支持解码的视频编码格式,即基本默认只能用H.264,导致了视频流的压缩画质和带宽浪费成本问题。
基于此,本实施例提出了一种媒体流处理方法,涉及基于多码率自适应在互动云渲染应用的技术方案,码率自适应(Adaptive Bitrate Streaming,ABR)是指根据用户下行网络带宽情况自适应选择相适应的码率流下行,具体通过在云端渲染服务器中增加一个独立的编码算力服务,该编码算力服务可以实时编码出几种不同码率、帧率和分辨率的视频流,渲染实例房间内用户可以根据自身下行网络情况,自适应选择相应的视频流,在不增加延时情况下,解决了互动房间内不同用户网络带宽和视频流画质的折中,增强了视频流的播放效果,提高了用户体验。
具体地,对于云应用云游戏,其基本原理是将游戏和应用放到服务器上运行,将游戏和应用渲染出来的音视频画面,通过服务程序将桌面画面、语音采集和音视频编码以后再以媒体流的形式传送到终端,然后终端将接收到的音视频流解码后在终端渲染出来,终端上不再需要安装游戏,各种终端比如电视、手机、PC、平板都可以运行,如此可以不需要关注游戏和应用怎么去适配不同的软硬件平台、终端渲染性能是否强大等等这些问题。对于上行数据,可以由终端通过键盘、鼠标、手柄、触摸屏等操作,终端将用户的操作指令和坐标位置上行传输到云游戏服务器,云游戏服务器将接收到的操作指令映射成相应的游戏鼠标按键,再通过键盘鼠标驱动发送给真正的游戏应用服务器完成整个游戏应用服务体验。如图7所示,在云游戏中,终端将采集的交互操作实时传输到云端服务器,由云端服务器进行渲染计算,并将渲染计算得到的压缩的音视频流下发到终端,由终端进行解码和播放。
互动云应用云游戏的基本架构如图8所示,用户连接边缘节点或直连SFU(Selective Forwarding Unit,选择性转发单元)接入,云渲染服务器和SFU服务器会对用户网络做BWE(Bandwidth Estimation)带宽评估,并根据用户网络归属和BWE带宽评估做就近接入调度,尽量减少延时。其中,选择性转发单元SFU不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给房间内的其他终端,其实际上为音视频路由转发器。通过带宽估计可以确定发送多大的视频流且不会造成网络拥塞,以此来保证不会降低视频质量。云渲染服务器也可以将负载、延迟等信息上报至接入调度,以灵活调整调度。
进一步地,在进行链路选择时,可以就近调度边缘节点、基于历史调度信息参考或者进行链路动态切换。对于连接链路的往返延时(Round-Trip Time,RTT)而言,用户通过边缘节点连接选择性转发单元,再连接云渲染服务器时,往返延时RTT为往返延时0+往返延时1+往返延时2;用户通过连接选择性转发单元,再连接云渲染服务器时,往返延时RTT为往返延时0+往返延时3。传统处理中,云渲染服务器实时采集云端渲染画面和编码,编码码率根据互动用户网络的BWE带宽评估,选择最差网络用户BWE的带宽作为编码内核的码率控制,导致云渲染服务器房间内的画质受限于房间最差用户的网络带宽。下行视频编码流只能选择下行所有用户终端都支持的编码格式,如H.264、VP9、H.265或AV1等。视频编码格式配置时,需要综合所有用户的下行视频解码格式,导致网络终端视频硬解支持好的终端也只能选择所有参与终端都支持解码的视频编码格式,即默认只能选择H.264,带来了视频流的压缩画质和带宽浪费成本问题。
其中,码率控制的目的是给编码器动态地选择一套最佳的编码参数,使编码器在一个目标比特率下编码出符合一定带宽要求的码流。视频码率是数据传输时单位时间传送的数据位数,一般单位是Kbps,即千位每秒。视频码率可以理解为取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。码率越高,则画面越清晰。帧率是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量,每秒钟帧数越多,所显示的动作就会越流畅。
对于WebRTC(Web Real-Time Communications,网页实时通信)的Simulcast联播基本原理。Simulcast(联播)的基本原理是通过推流端推流时将采集的源视频流编码成多种视频流并发送到SFU,观看端可以通过连接SFU根据自已下行带宽网络情况去动态的选择某个视频流。如图9所示,发送端可以向选择性转发单元SFU发送三种分辨率的视频流,包括1080P、360P和180P,选择性转发单元SFU可以根据接收端的需要对应进行下发。具体地,将1080P的视频流下发到接收端1,将360P的视频流下发到接收端2,将180P的视频流下发到接收端3。SFU服务器最核心的特点是将其“伪装”成一个WebRTC的Peer客户端,WebRTC的其他客户端其实并不知道其通过点对点(peer-to-peer)连接的是一台真实的客户端或是一台服务器,通常将这种连接称之为P2S,即Peer to Server(点对服务器)。
Simulcast联播接口体现在SDP(Session Description Protocol,会话描述协议)协商时,其视频媒体行会出现a=ssrc-group:SIM的字样,其格式为a=ssrc-group:SIMstream0 stream1 stream2...,其中SSRC(同步信源,Synchronization source)序列{stream0 stream1 stream2...},即为Simulcast联播的多个层级,序列长度通常不超过3,各个层级按照分辨率大小从小到大依次排列。假定stream0的分辨率为w0xh0,其他类推,则分辨率满足stream0(w0xh0)<stream1(w1xh1)<stream2(w2xh2)的条件。其中,SSRC是实时传输协议数据流(A Transport Protocol for Real-Time Applications Stream,RTPstream)的数据源,取值为固定范围内的随机数。
例如,在一个具体应用中,Simulcast SDP协商的示例如下:
a=ssrc-group:SIM 3462331267 49866344//a为属性(Attributes),ssrc-group用于定义一组相关联的ssrc;
a=ssrc-group:FID 3462331267 1502500952//关联一组常规RTP stream和重传RTP stream
a=ssrc-group:FID 49866344 241640858
a=ssrc:3462331267cname:m+kwZezC1JiVXDIB//cname用于定义规范名称,用于确定RTP stream;
a=ssrc:49866344cname:m+kwZezC1JiVXDIB
a=ssrc:1502500952cname:m+kwZezC1JiVXDIB
a=ssrc:241640858cname:m+kwZezC1JiVXDIB
a=ssrc:3462331267cname:m+kwZezC1JiVXDIB
a=simulcast:send 1;2,3recv 4//send方向会发送两个Simulcasti流,基中一个流的描述在rid=1的描述中,另一个流的描述在rid=2和rid=3的描述中,recv方向接收一个Simulcast流,在rid=4的描述中;
RTCP(Real-time Control Protocol,实时传输控制协议)为每个RTP用户提供了一个全局唯一的规范名称标识符CNAME(Canonical Name,规范名称),接收者采用它确定一个RTP stream。a=ssrc-group:FID 3462331267 1502500952,用于关联一组常规RTPstream和重传RTP stream。a=ssrc-group:SIM 3462331267 49866344,指将二组按照分辨率大小编码质量由低到高的MediaStreamTrack关联在一起。
Simulcast层数变化的配置关系可以如下:
const SimulcastFormat kSimulcastFormats[]={
{1920,1080,3(层数),5000(最大码率),4000(起始码率),800(最小码率)},
{1280,720,3,2500,2500,600},
{960,540,3,1200,1200,350},
{640,360,2,700,500,150},
{480,270,2,450,350,150},
{320,180,1,200,150,30},
{0,0,1,200,150,30}};
WebRTC中如果送到编码器的采集视频帧分辨率发生变化,则会触发ReconfigureEncoder也就是重置编码器操作,然后Simulcast层数也会重新计算。对于1920x1080的采集分辨率,允许的最大Simulcast层数为3层,对于640x360的采集分辨率,允许的最大层数为2层。所以当采集视频分辨率从1920x1080变为640x360时,Simulcast层数就会发生变化。
本实施例提供的媒体流处理方法的基本架构,如图10所示,用户连接边缘节点或直连选择性转发单元SFU接入,云渲染服务器和SFU服务器会对用户网络做BWE带宽评估,根据用户网络ISP(Internet Service Provide,互联网服务提供商)归属和BWE带宽评估做就近接入调度,尽量减少延时。具体可以根据用户出口IP就近运营商调度,如深圳电信用户就近深圳电信CDN接入,就近接入网络延时和抖动最小。在云渲染服务器上增加一个媒体转码服务,为了减少云渲染到用户的端到端延时,媒体转码服务和云渲染服务器可以设置在同一个算力及存储IO(输入/输出,Input/Output)大实例上。云渲染服务器渲染出来的画面缓存buffer,如可以包括视频YUV数据或RGB数据,可以被媒体转码服务通过CPU或内存IO直接读取,或是可以通过GPU(graphics processing unit,图形处理器)、FPGA(FieldProgrammable Gate Array,可编程阵列逻辑)、ASIC(Application Specific IntegratedCircuit,专用集成电路)等这些外设,以DMA(直接存储器访问,Direct Memory Access)方式直接访问,减少内存来回copy复制处理。
具体地,用户1、用户2和用户3均分别通过边缘节点连接选择性转发单元SFU,接入云渲染服务器。用户1支持的带宽为10Mbps,用户2支持的带宽为20Mbps,用户3支持的带宽为5Mbps。在云服务器端,云渲染服务器渲染的视频数据,媒体转码服务可以通过DMA的方式直接进行访问,具体可以通过CPU、GPU、ASIC或FPGR等外设进行直接存储器访问。媒体转码服务基于RDO(Rate Distortion Optimation,率失真优化)信息共享的编码方式,通过Simulcast联播算法编码出5Mbps、10Mbps和20Mbps三种码率的视频流,视频流的分辨率分别为720P、1080P和4K,视频流的帧率为30FPS和60FPS。其中,编码过程中有许多的模式可以选择,有些模式的图像失真较小,但是码率却很大;有些模式的图像失真较大,但是码率却很小。在不超过某最大码率的情况下,失真达到最小,即为率失真优化的优化过程,具体可以基于条件极值、拉格朗日乘子法等方法实现。
进一步地,媒体转码服务跟终端用户会有媒体处理信息协商,比如用户终端支持的视频解码格式(VP9/H.264/H.265/AV1等)、Simulcast多视频流码率、分辨率、帧率协商等,根据该协商编码出多路不同的实时视频流,具体可以是不同码率、不同分辨率、不同帧率的视频流。多路实时视频流在不同码率、分辨率、而同帧率下时,出帧PTS(PresentationTime Stamp,显示时间戳)保持一致;若不同帧率之间保持倍数关系,比如25FPS对应50FPS、30FPS对应60FPS、60FPS对应120FPS,则不同帧率倍数关系时对应帧PTS保持一致,如低帧率第N帧对于高帧率第2N帧,GOP(Group of Pictures,画面组)大小保持一致,方便用户Simultcast在不同码率的视频流之间无缝快速切换。其中,GOP是视频编码中两个I帧之间的时间间隔。
进一步地,对于视频编码算法协商,由于云应用云游戏互动应用房间的参与互动用户数是动态变化的,因此媒体转码服务启动的编码路数、编码算法格式以及码率可以进行动态调整和生成的。比如,当互动房间只有2人时,媒体处理转码服务会编码出1-2路视频流;当有新用户参与时,根据新用户进入时支持的视频解码格式、带宽BWE评估情况,评估是否需要动态新开一路编码适配房间内用户数。房间内媒体处理转码服务编码出的视频编码流数跟云渲染服务器的编码算力以及终端用户协商所得,最大媒体处理转码服务实例数不能超过所在云渲染服务器的编码最大算力处理能力,否则会导致采集编码出帧不稳定。
此外,媒体处理转码服务出的不同编码视频流在编码RDO信息可以相互参考,比如编码单元划分、MC(Motion Compensation,运动补偿)、ME(Motion Estimation,运动估计)、变换、预处理、lookahead(前瞻)等这些不同的视频流编码RDO信息相互参考提升编码效率和节省编码算力消耗。
终端用户和SFU之间通过标准WebRTC Simulcast协商,根据用户网络带宽BWE评估情况,自适应选择云渲染服务器里媒体处理转码算力中,选一路适合自身终端解码算力和网络带宽适配的视频流。具体地,服务器可以根据接入的房间用户的平均网络情况,自适应编码不同的档位、分辨率、客户端编码codec支持情况以及云端服务器算力情况,编码出几路合适码率、分辨率以及编解码格式的视频流,由终端用户根据自身当前网络情况选择接入。例如,用户网络为5M,服务器可以编码会出一路1080P@60FPS的4.5M视频流,即分辨率为1080P,帧率为60FPS,码率为4.5M,而服务器的算力是有限的,所以可以编码出2-3路视频流,比如云渲染服务器可以编码出三个档位:H.264 1080@25FPS 2.5M、H.265 1080P@60FPS5M、H.264 720@25FPS 1M三档,房间内用户根据自身网络情况自适应选择合适的档位,以获得相应的视频流进行播放。
本实施例提供的媒体流处理方法,通过多码率自适应为互动房间终端用户自适应选择合适的视频码率流,各种应用中的QoS(Quality of Service,服务质量)和QoE(Quality of Experience,体验质量)均得到有效的提升。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的媒体流处理方法的媒体流处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个媒体流处理装置实施例中的具体限定可以参见上文中对于媒体流处理方法的限定,在此不再赘述。
在一个实施例中,如图11所示,提供了一种媒体流处理装置1100,包括:处理能力信息获取模块1102、媒体数据编码模块1104、媒体流确定模块1106和媒体流下发模块1108,其中:
处理能力信息获取模块1102,用于在云应用的运行过程中,获取加入到云应用的交互房间中进行交互的终端的媒体流处理能力信息;
媒体数据编码模块1104,用于基于媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
媒体流确定模块1106,用于确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
媒体流下发模块1108,用于向交互房间中的目标终端下发目标媒体流。
在一个实施例中,媒体数据编码模块1104,还用于基于媒体流处理能力信息,确定针对交互房间中终端的至少一种媒体流编码条件;获取交互房间中待下发的媒体数据;按照至少一种媒体流编码条件,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流。
在一个实施例中,媒体流处理能力信息包括网络资源信息和设备解码信息;媒体数据编码模块1104,还用于根据网络资源信息确定码率;根据设备解码信息确定编码格式、帧率和分辨率;基于码率、编码格式、帧率和分辨率,确定针对交互房间中终端的至少一种媒体流编码条件。
在一个实施例中,媒体流处理能力信息包括网络资源信息和设备解码信息;至少一种媒体流编码条件包括编码格式、码率、帧率或分辨率中的至少一种。
在一个实施例中,媒体流包括至少两种;媒体数据编码模块1104,还用于当媒体流编码条件包括相同的帧率,对媒体数据分别进行自适应编码,获得媒体流参数满足媒体流编码条件的至少两种媒体流;各媒体流中相同分布位置的数据具有相同的时间戳信息;当媒体流编码条件包括存在倍数关系的帧率,对媒体数据分别进行自适应编码,获得媒体流参数满足媒体流编码条件的至少两种媒体流;各媒体流中相同分布位置的数据的时间戳信息存在倍数关系。
在一个实施例中,媒体数据编码模块1104,还用于基于媒体流处理能力信息,通过联播算法确定针对交互房间中终端的至少一种媒体流编码条件;通过每种媒体流编码条件相匹配的编码器,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流。
在一个实施例中,媒体流包括至少两种;媒体数据编码模块1104,还用于确定参考媒体流的参考编码优化参数;参考媒体流,是按照参考媒体流编码条件对媒体数据进行自适应编码得到的;根据参考编码优化参数,确定至少一种媒体流编码条件相匹配的编码优化参数;按照至少一种媒体流编码条件和相匹配的编码优化参数,对媒体数据进行自适应编码,获得媒体流参数满足媒体流编码条件的至少一种媒体流。
在一个实施例中,还包括媒体流更新模块,用于当加入到云应用的交互房间中进行交互的终端触发更新,获取更新后终端的媒体流处理能力信息;当更新后终端的媒体流处理能力信息满足媒体流更新条件,基于更新后终端的媒体流处理能力信息,对至少一种媒体流进行更新。
在一个实施例中,媒体数据编码模块1104,还用于基于媒体流处理能力信息和编码处理能力信息,对交互房间中待下发的媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流;至少一种媒体流整体的媒体流参数与编码处理能力信息相适配。
在一个实施例中,还包括媒体数据生成模块,用于获取加入到云应用的交互房间中进行交互的终端的操作指令信息;根据操作指令信息渲染生成交互房间中待下发的媒体数据,并将媒体数据存储到目标缓存中;媒体数据编码模块1104,还用于从目标缓存中读取媒体数据,并基于媒体流处理能力信息对媒体数据进行自适应编码,获得针对交互房间中终端的至少一种媒体流。
在一个实施例中,处理能力信息获取模块1102,还用于当检测到终端通过节点服务器加入到云应用的交互房间中进行交互,针对终端进行网络资源检测,得到网络资源信息;获取终端的设备解码信息;根据网络资源信息和设备解码信息,得到终端的媒体流处理能力信息。
在一个实施例中,媒体流确定模块1106,还用于根据交互房间中目标终端发送的媒体流选择请求,从至少一种媒体流中确定目标媒体流。
在一个实施例中,媒体流确定模块1106,还用于从至少一种媒体流中,确定媒体流参数与交互房间中目标终端的媒体流处理能力信息相适配的目标媒体流。
上述媒体流处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图12所示,提供了一种媒体流处理装置1200,包括:媒体流确定模块1202、媒体流选定模块1204和媒体流获取模块1206,其中:
媒体流确定模块1202,用于在云应用的运行过程中,确定针对云应用的交互房间中终端的至少一种媒体流;至少一种媒体流,是由服务器基于加入到交互房间中进行交互的终端的媒体流处理能力信息,对交互房间中待下发的媒体数据进行自适应编码获得的;且至少一种媒体流的媒体流参数与媒体流处理能力信息相适配;
媒体流选定模块1204,用于确定交互房间中目标终端所匹配的目标媒体流;目标媒体流,是根据目标终端的媒体流处理能力信息从至少一种媒体流中选定的;
媒体流获取模块1206,用于获取目标媒体流,并将目标媒体流进行播放。
在一个实施例中,媒体流选定模块1204,还用于根据目标终端的媒体流处理能力信息,生成媒体流选择请求;向服务器发送媒体流选择请求;媒体流选择请求用于指示服务器从至少一种媒体流中确定目标终端所匹配的目标媒体流。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储媒体流处理数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种媒体流处理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种媒体流处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13和图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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 (19)
1.一种媒体流处理方法,其特征在于,所述方法包括:
在云应用的运行过程中,获取加入到所述云应用的交互房间中进行交互的终端的媒体流处理能力信息;
基于所述媒体流处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码,获得针对所述交互房间中所述终端的至少一种媒体流;所述至少一种媒体流的媒体流参数与所述媒体流处理能力信息相适配;
确定所述交互房间中目标终端所匹配的目标媒体流;所述目标媒体流,是根据所述目标终端的媒体流处理能力信息从所述至少一种媒体流中选定的;
向所述交互房间中的所述目标终端下发所述目标媒体流。
2.根据权利要求1所述的方法,其特征在于,所述基于所述媒体流处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码,获得针对所述交互房间中所述终端的至少一种媒体流,包括:
基于所述媒体流处理能力信息,确定针对所述交互房间中所述终端的至少一种媒体流编码条件;
获取所述交互房间中待下发的媒体数据;
按照所述至少一种媒体流编码条件,对所述媒体数据进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少一种媒体流。
3.根据权利要求2所述的方法,其特征在于,所述媒体流处理能力信息包括网络资源信息和设备解码信息;所述基于所述媒体流处理能力信息,确定针对所述交互房间中所述终端的至少一种媒体流编码条件,包括:
根据所述网络资源信息确定码率;
根据所述设备解码信息确定编码格式、帧率和分辨率;
基于所述码率、所述编码格式、所述帧率和所述分辨率,确定针对所述交互房间中所述终端的至少一种媒体流编码条件。
4.根据权利要求2所述的方法,其特征在于,所述媒体流处理能力信息包括网络资源信息和设备解码信息;所述至少一种媒体流编码条件包括编码格式、码率、帧率或分辨率中的至少一种。
5.根据权利要求2所述的方法,其特征在于,所述媒体流包括至少两种;所述按照所述至少一种媒体流编码条件,对所述媒体数据进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少一种媒体流,包括:
当所述媒体流编码条件包括相同的帧率,对所述媒体数据分别进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少两种媒体流;各所述媒体流中相同分布位置的数据具有相同的时间戳信息;
当所述媒体流编码条件包括存在倍数关系的帧率,对所述媒体数据分别进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少两种媒体流;各所述媒体流中相同分布位置的数据的时间戳信息存在所述倍数关系。
6.根据权利要求2所述的方法,其特征在于,所述基于所述媒体流处理能力信息,确定针对所述交互房间中所述终端的至少一种媒体流编码条件,包括:
基于所述媒体流处理能力信息,通过联播算法确定针对所述交互房间中所述终端的至少一种媒体流编码条件;
所述按照所述至少一种媒体流编码条件,对所述媒体数据进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少一种媒体流,包括:
通过每种媒体流编码条件相匹配的编码器,对所述媒体数据进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少一种媒体流。
7.根据权利要求2所述的方法,其特征在于,所述媒体流包括至少两种;所述按照所述至少一种媒体流编码条件,对所述媒体数据进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少一种媒体流,包括:
确定参考媒体流的参考编码优化参数;所述参考媒体流,是按照参考媒体流编码条件对所述媒体数据进行自适应编码得到的;
根据所述参考编码优化参数,确定所述至少一种媒体流编码条件相匹配的编码优化参数;
按照所述至少一种媒体流编码条件和相匹配的编码优化参数,对所述媒体数据进行自适应编码,获得媒体流参数满足所述媒体流编码条件的至少一种媒体流。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当加入到所述云应用的交互房间中进行交互的终端触发更新,获取更新后终端的媒体流处理能力信息;
当所述更新后终端的媒体流处理能力信息满足媒体流更新条件,基于所述更新后终端的媒体流处理能力信息,对所述至少一种媒体流进行更新。
9.根据权利要求1所述的方法,其特征在于,所述基于所述媒体流处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码,获得针对所述交互房间中所述终端的至少一种媒体流,包括:
基于所述媒体流处理能力信息和编码处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码,获得针对所述交互房间中所述终端的至少一种媒体流;
所述至少一种媒体流整体的媒体流参数与所述编码处理能力信息相适配。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取加入到所述云应用的交互房间中进行交互的终端的操作指令信息;
根据所述操作指令信息渲染生成所述交互房间中待下发的媒体数据,并将所述媒体数据存储到目标缓存中;
所述基于所述媒体流处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码,获得针对所述交互房间中所述终端的至少一种媒体流,包括:
从所述目标缓存中读取所述媒体数据,并基于所述媒体流处理能力信息对所述媒体数据进行自适应编码,获得针对所述交互房间中所述终端的至少一种媒体流。
11.根据权利要求1至10任意一项所述的方法,其特征在于,所述获取加入到所述云应用的交互房间中进行交互的终端的媒体流处理能力信息,包括:
当检测到终端通过节点服务器加入到所述云应用的交互房间中进行交互,针对所述终端进行网络资源检测,得到网络资源信息;
获取所述终端的设备解码信息;
根据所述网络资源信息和所述设备解码信息,得到所述终端的媒体流处理能力信息。
12.根据权利要求1至10任意一项所述的方法,其特征在于,所述确定所述交互房间中目标终端所匹配的目标媒体流,包括以下至少一项:
根据所述交互房间中目标终端发送的媒体流选择请求,从所述至少一种媒体流中确定目标媒体流;
从所述至少一种媒体流中,确定媒体流参数与所述交互房间中目标终端的媒体流处理能力信息相适配的目标媒体流。
13.一种媒体流处理方法,其特征在于,所述方法包括:
在云应用的运行过程中,确定针对所述云应用的交互房间中终端的至少一种媒体流;所述至少一种媒体流,是由服务器基于加入到所述交互房间中进行交互的终端的媒体流处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码获得的;且所述至少一种媒体流的媒体流参数与所述媒体流处理能力信息相适配;
确定所述交互房间中目标终端所匹配的目标媒体流;所述目标媒体流,是根据所述目标终端的媒体流处理能力信息从所述至少一种媒体流中选定的;
获取所述目标媒体流,并将所述目标媒体流进行播放。
14.根据权利要求13所述的方法,其特征在于,所述确定所述交互房间中目标终端所匹配的目标媒体流,包括:
根据所述目标终端的媒体流处理能力信息,生成媒体流选择请求;
向所述服务器发送所述媒体流选择请求;所述媒体流选择请求用于指示所述服务器从所述至少一种媒体流中确定所述目标终端所匹配的目标媒体流。
15.一种媒体流处理装置,其特征在于,所述装置包括:
处理能力信息获取模块,用于在云应用的运行过程中,获取加入到所述云应用的交互房间中进行交互的终端的媒体流处理能力信息;
媒体数据编码模块,用于基于所述媒体流处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码,获得针对所述交互房间中所述终端的至少一种媒体流;所述至少一种媒体流的媒体流参数与所述媒体流处理能力信息相适配;
媒体流确定模块,用于确定所述交互房间中目标终端所匹配的目标媒体流;所述目标媒体流,是根据所述目标终端的媒体流处理能力信息从所述至少一种媒体流中选定的;
媒体流下发模块,用于向所述交互房间中的所述目标终端下发所述目标媒体流。
16.一种媒体流处理装置,其特征在于,所述装置包括:
媒体流确定模块,用于在云应用的运行过程中,确定针对所述云应用的交互房间中终端的至少一种媒体流;所述至少一种媒体流,是由服务器基于加入到所述交互房间中进行交互的终端的媒体流处理能力信息,对所述交互房间中待下发的媒体数据进行自适应编码获得的;且所述至少一种媒体流的媒体流参数与所述媒体流处理能力信息相适配;
媒体流选定模块,用于确定所述交互房间中目标终端所匹配的目标媒体流;所述目标媒体流,是根据所述目标终端的媒体流处理能力信息从所述至少一种媒体流中选定的;
媒体流获取模块,用于获取所述目标媒体流,并将所述目标媒体流进行播放。
17.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14中任一项所述的方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
19.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211516657.4A CN116980392A (zh) | 2022-11-30 | 2022-11-30 | 媒体流处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211516657.4A CN116980392A (zh) | 2022-11-30 | 2022-11-30 | 媒体流处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980392A true CN116980392A (zh) | 2023-10-31 |
Family
ID=88481997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211516657.4A Pending CN116980392A (zh) | 2022-11-30 | 2022-11-30 | 媒体流处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980392A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117440186A (zh) * | 2023-12-22 | 2024-01-23 | 深圳星网信通科技股份有限公司 | 视频服务集成方法、视频集成设备和计算机可读存储介质 |
-
2022
- 2022-11-30 CN CN202211516657.4A patent/CN116980392A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117440186A (zh) * | 2023-12-22 | 2024-01-23 | 深圳星网信通科技股份有限公司 | 视频服务集成方法、视频集成设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yaqoob et al. | A survey on adaptive 360 video streaming: Solutions, challenges and opportunities | |
US10979663B2 (en) | Methods and apparatuses for image processing to optimize image resolution and for optimizing video streaming bandwidth for VR videos | |
US9172979B2 (en) | Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences | |
CN103813213B (zh) | 基于移动云计算的实时视频分享平台和方法 | |
CN103379363B (zh) | 视频处理方法及装置、移动终端和系统 | |
US20050080894A1 (en) | Method and system for topology adaptation to support communication in a communicative environment | |
CN103248964B (zh) | 基于rtp/rtcp的车载视频传输系统 | |
WO2012021174A2 (en) | EXPERIENCE OR "SENTIO" CODECS, AND METHODS AND SYSTEMS FOR IMPROVING QoE AND ENCODING BASED ON QoE EXPERIENCES | |
CN105577819A (zh) | 一种虚拟化桌面的分享系统、分享方法以及分享装置 | |
TWI786572B (zh) | 沉浸式媒體提供方法、獲取方法、裝置、設備及存儲介質 | |
US11159823B2 (en) | Multi-viewport transcoding for volumetric video streaming | |
CN103108186A (zh) | 实现视频高清传播的方法 | |
US20200404241A1 (en) | Processing system for streaming volumetric video to a client device | |
US20230188716A1 (en) | Viewport-based transcoding for immersive visual streams | |
JP2020521212A (ja) | Vrマルチメディアの経験品質を決定するための方法および装置 | |
WO2023142716A1 (zh) | 编码方法、实时通信方法、装置、设备及存储介质 | |
Chen et al. | Live360: Viewport-aware transmission optimization in live 360-degree video streaming | |
CN116980392A (zh) | 媒体流处理方法、装置、计算机设备和存储介质 | |
JP2003534741A (ja) | Mpeg−4リモートアクセス端末を有する通信システム | |
CN113973224A (zh) | 媒体信息的传输方法、计算设备及存储介质 | |
US20120265858A1 (en) | Streaming portions of a quilted graphic 2d image representation for rendering into a digital asset | |
WO2023130896A1 (zh) | 媒体数据的数据处理方法、装置、计算机设备及存储介质 | |
Zhang et al. | Fuzzy-based 3-D stream traffic lightweighting over mobile P2P network | |
CN116980662A (zh) | 流媒体播放方法、装置、电子设备、存储介质及程序产品 | |
WO2021223577A1 (zh) | 一种视频处理的方法、相关装置、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |