「智能媒体生产」系列课程第一讲:概念、原理和基本使用

本文内容整理自「智能媒体生产」系列课程第一讲:概念、原理和基本使用,由阿里云视频云媒体服务技术负责人分享智能媒体生产的领域与定位、构架与服务层次、基本概念与技术原理,以及如何一站式开发接入视频制作业务。

作者:IMMENSE
来源:视频云技术

“超视频化”时代,云计算打破产业原有壁垒,推动技术演进发生。媒体生产制作的云端一体服务,为整个泛视频产业带来新的变革,而「智能媒体生产」就是聚焦这一领域的企业级视频制作工具

01 剪辑:核心且有生命力

智能媒体生产在视频生产与消费过程中处于什么位置?从全链路看,视频从采集开始,历经生产制作、管理、分发和消费,而生产制作处于「制播」流程中「制」这个环节

视频生产与消费也发生了趋势上的转变。以生产制作为例,从只有专业人员使用专业的软件,使用非编、转播车工具才能进行制作,到越来越多的人可以在移动端使用一键美颜,在Web端使用各种剪辑工具进行内容生产。

从人工制作到AI全面参与,从专业、小众的制作团队,到普罗大众,从被动接收到个性互动,在趋势的变化过程中,互联网和云计算起到了至关重要的作用。而云上生产制作,就是智能媒体生产服务的领域

生产制作,在视频全链路中的比重将会增加,主要基于两点:一是短视频APP的兴起,让普通老百姓的美学素养有了普遍提升;二是真正优质的内容仍较少,内容的质量以及分发的效率成为各方角逐的焦点。从这两个维度来看,智能媒体生产服务发挥的空间也将有所提升。图片智能媒体生产解决什么问题?

云计算浪潮之下,云上生产制作演变为业务面临的主要场景,而智能媒体生产着力解决其中六大问题。

l 云端剪辑制作合成。智能媒体生产解决的第一个核心问题就是如何在云端实现高效快速的剪辑、制作、合成导出。

l 素材库管理与公共素材的使用。云上生产制作面临着大量素材管理的问题,以及当缺少素材时,需要系统提供公共素材供用户使用。

l 规模化剪辑制作合成。在满足剪辑制作和素材管理的基本需求后,业务可能需要快速生产规模化视频,由于视频创作过程较为繁琐,规模化的制作能够极大地提高生产效率。

l 专业、高效剪辑制作合成。云端生产制作之前,存在大量专业非编工具,非编工具有其优点,也存在一些劣势,比如本地渲染会消耗大量资源,占用客户端时效,客户需要大量等待时间才能够得到成片,而智能媒体生产正是解决如何在云端专业、高效发挥作用这一问题。

l AI辅助生产制作。随着AI在各个领域的深入,是否能够引入AI,进一步提升生产制作效率,解决制作周期长的问题,成为智能媒体生产关注的问题。

l 无干预的全智能生产制作。客户的诉求通常是很发散的,比如需要制作某种主题的视频,但是该主题对应的素材以及如何编排仍未确定,这时则存在一种高阶的生产制作需求:在无干预的状态下,由云上生产制作系统进行一键式全智能生产制作。

剪辑

剪辑是智能媒体生产的核心。什么是剪辑?引用世界剪辑大师沃尔特·默奇的话,剪辑是在两个空间维度和一个时间维度对声音和画面做马赛克式的拼接。剪辑实际上是一次创作的过程,既包括对时间轴的处理,也包括对视频画面的处理、音频的处理。

完美的剪辑需要满足六项准则,按顺序,分别是剪辑的情感,故事性,剪辑编排的节奏,视线的走向,二维特性以及三维立体的连贯性。剪辑的核心关键点在于何时、何处将一个画面转向另一个画面。

为了更好地服务云上生产制作的客户,智能媒体生产服务解构出五种能力:
第一,提供大量的素材;
第二,提供多样化工具;
第三,能够高效地对视频素材画面进行解构,便于后续时间线的编排;
第四,在剪辑交互操作过程中,引入丰富的视觉和音频效果;
第五,整体的剪辑是连贯,一气呵成的。
基于此,设计有生命力的生产制作流程,成为视频智能媒体服务需要考虑的重点图片

02 云端一体,协同运转

工作流程

智能媒体生产的流程可以分为三个部分。

输入部分的核心是内容资源库的管理和设计,既包括丰富的来源,也拥有多样化的文件类型,其中包含传统的音视图文等媒资,也包含更泛化的元数据、富文本和故事板等类型。

输出的成片以及媒体内容,也可以反过来回溯到输入部分,作为下一次创作素材的补充。

素材经过媒体预处理的环节,从视觉、声音、文本等多个维度进行智能分析与处理,输出针对视频画面和声音的解构,用于创作者结合不同场景创作工具进行思路创作。

其中,既包括移动端的创作工具,又包括Web端的剪辑工具,还有基于云端的模板工厂和AI辅助的规模化、批量化生产制作工具。

生产制作部分,列举了剪辑制作的各种能力,既有简单的剪切拼接,也有多轨的图像叠加和混音、图文混编,叠加智能能力的字幕、配音、集锦以及综合制作。

影像内容消费实际上是智能媒体生产制作的输出渠道,既可以输出直接用于分发的成片,可二创的素材,同时还可以输出非视频文件的故事板,用于线下精编进行二次加工,而消费体验反馈又会回到智能制作系统的AI算法侧,促进AI的自学习。图片

技术架构

智能媒体生产的技术架构,从下往上看,最底侧是媒体生产所依赖的媒资库,包括音视图文元数据,文件与实时流,模版,制作工程以及临时媒资文件,同时还包括以特征值为主的人物、标签、版权和镜头等类型。

中间是媒体生产的核心架构模块,可分成生产工具和生产制作服务两大模块,并通过API进行桥接。生产工具方面,主要是故事板、效果编辑和播放器三个组件,底层的内核是预览的渲染引擎。

生产制作服务方面也分为三个核心模块:最底层渲染合成的剪辑制作模块,时间线纠错和补全的处理中心,以及用于规模化、批量化生产的模板工厂。

关于时间线,时间线既支持人工组织,也支持AI辅助组织,而AI辅助组织时间线依赖于很多原子AI算法能力。

再往上两个层次分别是SaaS各种服务/页面,以及不同的生产制作场景,以上构成了智能媒体生产的技术架构。图片

服务层次

智能媒体生产的服务层次,是提供云端一体、可分可合的PaaS云服务和PaaS+的WebSDK。如何理解云端一体?云端一体就是云跟端在协议和顶层设计上进行一体化设计,所有云服务提供的能力都可以由端上的WebSDK提供,端侧的WebSDK最终所指向调用的云端服务,跟通过API调用是一模一样的。

可分可合的意思是可以单独地使用WebSDK,或者单独地使用云服务而不受影响

先看云服务,云服务的核心是通过OpenAPI提供服务,最后剪辑制作任务完成的通知靠事件通知工具来回调。

整个OpenAPI分成四大板块,一是剪辑制作,是最核心的板块,包括标准剪辑,直播剪辑,以及更复杂的云剪辑工程管理。二是媒资库,即关于素材库以及输出成片的管理。三是智能任务,在剪辑制作过程中发挥辅助的API作用。四是模板工厂,主要提供批量化、规模化降低门槛服务,而公共配置实际上是为事件通知服务的。

云服务板块与上面的WebSDK一脉相承。WebSDK提供的核心场景能力有三种,分别为标准剪辑,直播剪辑和模板工厂剪辑。

标准剪辑主要涉及资源和交互两个门类,资源即各种轨道、素材、滤镜、转场、特效等效果,交互即提供各种剪辑操作方面的交互模式。

直播剪辑也是如此,不同的是,直播剪辑操作的资源是直播流,交互则采用了双播放器以及单轨剪辑模式。

模板工厂剪辑的资源跟标准剪辑相同,但是交互存在一些区别,可以根据时间线的固定部分创建模板,然后将模板中可替换的素材或者是非素材部分进行参数覆盖。

WebSDK公共的两大子组件,分别是时间线和剪辑播放器,时间线目前支持多轨、多素材和多种效果,按照创意思路进行编排,与传统播放器相比,剪辑播放器除了支持List播放以及时间线效果预览之外,还需要将素材叠加各种效果进行单视频播放。

WebSDK逻辑兼顾交互逻辑和UI,自带CSS样式,客户可以通过简单的十几行代码,非常快捷地创建属于自己的剪辑交互界面图片

03 技术原理与设计实现

基本概念

l 素材素材即用于剪辑制作的原材料,拥有丰富的类型,如视频,纯音频,图片,独立字幕等,也可以是泛文本,或者是逻辑的设计实体。

l 时间线时间线是智能媒体生产最核心的概念,是音视图文多层轨道,多个素材,多类效果,按照视频创作思路编排的过程和结果,既描述创作的过程,也描述创作的结果。

同时也是剪辑合成的依据,当把结果提交到云端时,云剪辑的合成服务就会按照时间线最终结果进行渲染和合成,因此,时间线是智能媒体生产最重要的数据结构,也是视频生产制作的核心。

l 模板模板是把时间线的素材编排规律,包括转场/滤镜/特效的规律,以及其他规律进行抽象,并把其中可以固定的部分进行固定化、标准化的结果。相比时间线,使用模板会更加方便、容易地进行规模化的制作。

l 云剪辑工程云剪辑工程是一个更大范畴的概念,用于描述一次视频创作过程中所涉及的所有数据,一般包括基本的元数据,比如剪辑的标题、创建时间、描述,视频创作所需要的素材,以及描述实际视频创作内容的时间线等。

l 剪辑合成任务剪辑合成任务是指当视频创作完成之后,可将最终制作好的时间线或者模板提交合成,生成新的媒体资源。媒体资源的合成,是一个异步的过程,剪辑合成任务则描述了任务从开始创建到最终完成的过程。

l 成片成片是剪辑制作、合成或者导出的目标产物。成片在这里是一个广义的概念,针对当次剪辑的输出,因此,当次的成片也可以作为下次的素材进行二次创作。

l 智能任务在剪辑制作和合成中,可以对素材或者生成目标媒体资源的过程进行智能处理,智能任务则用来描述对应的智能处理过程。

核心链路与设计原则

l 核心链路核心链路包含抽象层输入、处理和输出三部分。

输入和输出与泛媒资库有关,其中来源与目标具有一致性,如统一媒资、OSS对象和第三方URL。输入部分增加了对直播流的支持,输出部分则增加了对时间线交换的类型支持。

处理部分,处理的过程实际上就是剪辑、包装、渲染与合成的异步过程,其中最核心的对象是时间线,同时,涉及到的高级管理包括复杂的云剪辑工程管理,素材管理以及成片管理。

此外,提效方式包括三种:模板工厂用于批量化、规模化生产视频;智能生产模式适用于提升人工处理效率的时效性;并行剪辑用于提升长视频或者多素材场景的合成耗时。

l 设计原则输出部分最核心的设计原则即源文件的输入输出原则

剪辑实际上是为了生产源片,因此,使用的素材也是源文件,不管素材库的素材输出多少路的转码文件,在剪辑合成时使用的也是素材的原始文件,并合成目标成片的原始文件,根据需要转码生成不同清晰度的输出流。

此外,还需要设置三个参数。在没有手动指定的情况下,参数都有默认的策略。

第一个参数关于目标成片的分辨率,默认使用原文件素材的最大宽高。举例说明,存在三个素材,源文件的分辨率分别是三个数值,则会取这三个素材的最大宽作为输出的宽,最大高作为输出的高。

第二个参数关于码率,与上述类似,会取源文件的最大码率作为目标的合成码率,当然也会有一个上限阈值,防止源文件中某一素材的码率特别高,导致输出的成片质量差。

最后一个参数关于格式,在没有指定的情况下,默认采用264的编码和MP4的封装,以及AAC的音频格式。图片

媒资库设计

媒资库的设计要点分别是开放性灵活性跨产品协作

开放性体现在两个方面:第一,提供了多租户用户隔离的媒资库,同时开放了大量音乐素材版权给客户进行剪辑使用;第二,媒资库设计为跨产品的融合,本质上也是开放性维度的体现。

在生产制作过程中,并不强侵入性地要求注册媒资,或者使用智能媒体服务的媒资,而是也可以使用视频点播VOD产品的媒资,以及第三方的文件和直播流,三方文件甚至支持S3协议。

媒资库统一了管理范围,以源文件为素材,目标文件为成片,临时的时间线和制作工程也在管理范畴内。

此外,媒资管理是泛媒体的管理,除了传统的音视图文媒资之外,还包括其他通用的媒资管理,都可以纳入到媒资内容素材管理中。媒资库在视频云层面是统一的,拥有统一的元数据体系,并且支持自定义。

同时,存储能力可以直接复用OSS的存储和视频点播的存储,媒体处理能力也跟MPS转码的媒体处理能力完全对应,所有可以在MPS上设置的编解码参数,都可以在智能媒体生产体系中完成。图片

时间线

时间线的设计核心是“统一”,即统一的架构和统一的协议。统一的协议是指端跟云使用同一套时间线协议,统一的架构是指云跟端的行为是完全一致的,所有能够在端上操作获得的效果都可以通过API完成。
时间线的设计结合了专业非编和传统EDL的特点。专业非编都是多轨的,素材和效果的设计各异,整个时间线非常复杂和专业,而传统EDL是单轨的,定义素材但不定义效果和舞台,时间线相对比较简单,业界对此并没有统一的标准。

因此,阿里云自己定义了一套时间线协议标准,在云和端采用一体化的可复用设计。

时间线涉及的对象有四类。第一,轨道/图层,其中称音频为Track轨道,而称视频为Layer图层。第二,Clip,素材,素材是铺设在轨道上进行内容编排的最小单位。第三,Effect,效果,效果既可以作用在素材上,也可以作用在轨道上。第四,Scene,舞台,舞台就是最终的画布,剪辑合成的成片所拥有的画布就是舞台。

设计需要有取舍和平衡。首先,效果轨道可以独立出现,增加了一定的灵活度,其次保留了轨道的素材,原始素材仅作为引用。在专业非编中,轨道素材和原始素材是分别在时间线中多次描述的,导致使用过程比较复杂,而仅仅保留轨道上使用的素材,可以提高其易用性。

同时,按照素材类型做多轨设计,支持画布的自动参数设置和自定义参数设置,保证了时间线的通用性和可扩展性。图片通过时间线数据结构详情,可以看到,时间线的第一级结构是各个轨道,按照类型分为视频、音频、图片、字幕和效果轨道,可进行叠加,并根据轨道内数组的层叠顺序进行渲染,每一个轨道又包含多个素材,即轨道素材,与轨道相对应。

同时,ImageTrack(图片轨道),SubtitleTrack(字幕轨道),EffectTrack(效果轨道)都作用在视觉上,通过最简模式,在调用API时统一设置成VideoTrack,并通过TrackType进行区分,大大降低了开发的工作量

ImageTrack以及图片素材对于最终合成的成片来讲,都可认为是视觉上的素材,仍然可以通过视觉轨道素材的Type区分原始素材类型,进一步减少开发量。图片以下展示多轨道的前端效果,左上角是素材库、内容库,中间是播放器,最右侧是效果的编辑区。图片进一步拆解轨道素材,可列举出8个主要属性。MediaId和MediaURL用于描述具体对应哪个素材,是素材的标识,既支持直接引用媒资库里的媒资Id,也支持指定OSS地址或第三方S3地址。这两个参数有且仅有一个不能为空。

Type是指素材片段类型。In和Out是指素材片段相对于完整素材的入、出点。需要区分TimelineIn和TimelineOut,两者容易混淆,In和Out是指从一段完整的素材里截取的哪一片段,比如,整段素材是十分钟,从第一分钟截取到第二分钟,那么In就是60s,Out就是120s。

TimelineIn和TimelineOut则用于描述素材片段相对于最终输出成片时间线的入、出点。比如,一分钟的素材截取出来用于片尾创作,可能这个片尾已经到了整个时间线的第30分钟和第31分钟了,那么TimelineIn是30分钟,TimelineOut是31分钟。图片关于效果,除了基础的文字,裁剪,贴边或者Scale,还有特效的部分,可分成三类:VFX,是指针对整个画面完整特效的应用;Filter滤镜,是对色彩调和和风格化效果的呈现;Transition转场,一般用于两个素材接缝处。

同时,支持更细粒度地指定特效的属性,针对特效本身指定其应用在时间线上的入、出点,当特效涉及到视频画面时,还可以进行坐标和宽高的设置。图片

模板工厂

模板工厂跟时间线的设计原则非常相似,也是完全云端一致的。模板能力既可以通过Open API调用实现规模化的生产制作,也可以通过WebSDK或者阿里云控制台进行交互操作和提交。

目前,模板工厂已经支持公共模板库和自定义模板,且自定义模板坚持普惠化,与Adobe AE生态打通,通过引入专业的AE模板,让开发者能够非常方便且规模化地生产制作。

相对于时间线,模板的参数简化为两个:一个是模板ID,另一个是关于素材的参数组合,即把时间线里可以固定的部分进行固定化和标准化,把可变的部分做成ClipsParam,然后把结果创建成一个模板ID。
通过模板工厂,能够很方便地降低创意门槛和使用门槛,设计师可以设计好模板,并供调用方调用,同时,模板工厂的模板本身也支持嵌套或者组合使用。

举例说明,有一个标准的完整时间线,主要功能是在视频画面上叠加图片,比如logo,如果只需不停更换视频,可以把图片整体的内容做成模板,把视频的MediaId做成模板中可变的部分,在Template Config里传入video,即传入要进行模板应用的素材,就可以非常方便地实现与时间线相同的功能。图片此外,还可以使用高级模板将专业制作能力进行规模化量产。高级模板完美结合Adobe设计师生态,并内置了70+官网模板,同时,支持使用Adobe AE制作视频,通过插件导出到模板工厂进行模板注册,以及支持模板工厂服务器批量生成视频,更多详细内容可参考以下文档。

高级模板制作流程:https://help.aliyun.com/document_detail/467970.html高级模板设计规范:https://help.aliyun.com/document_detail/467972.html高级模板API调用详解:https://help.aliyun.com/document_detail/445389.html

04动手实操,一站式开发接入

作为一站式开发的主链路,剪辑制作与合成实际上是一个异步处理的过程,核心是提交任务,接收回调和查询任务状态,获得合成结果,共包含三个辅助子场景,媒资管理,智能任务处理以及全局配置。
关于剪辑合成任务的处理共有三种调用方式:第一种是直接调用OpenAPI发起任务;第二种是通过阿里云IMS控制台发起调用;第三种是在自己的业务系统中集成剪辑WebSDK发起调用。图片以下介绍若干流程,其中前面几个流程都是直接通过OpenAPI的方式发起剪辑合成任务,并且获取结果。

Timeline剪辑合成

使用Timeline直接进行剪辑合成是最简流程,通过组织参数,由客户直接调用OpenAPI发起剪辑合成任务,核心参数是Timeline时间线这个字段,同时设置合成的目标,比如宽高、码率,当然也可以不设置,只需设置合成目标的路径。

虽然剪辑合成的链路是异步的,但是提交作业是个同步服务,会同步返回三个核心参数。第一个是代表此次合成任务的JobId,即作业Id。第二个是提交时间线内容时创建的云剪辑工程Id,当工程Id没有填写时,会自动进行创建,同步返回ProjectId。第三个字段是默认合成的新成片的Id,提前返回给提交方。
提交方提交任务之后处于等待结果的状态,共有三种方式接收结果:

第一种是通过回调服务,主动接收事件通知,即在合成完成后主动向配置了回调服务地址的客户发送回调,回调支持HTTP回调和MNS回调两种,效率较高。

其他两种方式由客户调用方发起查询。一种查询方式通过作业ID,查询合成任务的状态和相关信息;另一种方式更关心合成的媒资成片的信息,通过MediaId直接查询相媒资内容信息,即GetMediaInfo。
基于效率考虑,推荐使用第一种回调服务的方式,即主动接收发送的回调。客户方发起查询的方式,需要不停地建立轮询的请求。

当然也可以两种方式相结合,比如,默认以回调服务接收,如果超过了客户侧设置的时间,也可以通过调用查询服务主动获取相关状态。图片

标准模板剪辑合成

标准模板剪辑合成与使用Timeline剪辑合成非常相似,唯一不同的是提交的参数。
可以看到,提交的API服务的名字、返回的字段、回调的方式和查询的方式都是一样的,而提交的参数由Timeline变成了模板的两个核心参数,一个是模板ID(TemplateId),另外一个是素材的覆盖参数(ClipsParam)。使用该接口的前提是已经自定义了模板工厂的模板,或者直接使用公共模板库中系统自带的模板。图片

高级模板剪辑合成

高级模板意味着要使用Adobe After Effect制作AE模板来发起合成,核心参数与标准模板相同,但在提交高级模板合成之前,有两个额外的步骤。

一是需要先在本地下载并安装AE和VE Exporter插件。
二是基于AE创作,使用VE插件导出模板以及相应素材,打包成包含模板工程信息以及素材信息的zip文件,上传至OSS,然后提交模板合成。图片

直播剪辑

直播剪辑场景的核心参数略有一些变化,因为直播剪辑的输入源是直播流。目前我们支持针对多个直播流的直播素材进行剪辑,因此,除了指定素材本身,还需要额外指定直播流的配置。

直播剪辑有两种模式,一种是粗剪,粗剪是TS精度的,最快时效为秒级。另一种是精剪,达到准帧精度,通过优化,直播剪辑的时效性可以达到20倍速。

直播剪辑可以在两种场景下使用。一是直播结束之后,对直转点内容进行剪辑,直转点的内容源头需要是阿里云的直播流。二是在直播的进行过程中,对已直播过的内容进行快速剪辑。

同时,直播剪辑支持多个直播流的混剪,也就是说,并不限制单个直播流,而是可以把多个直播流的不同素材片段一起进行剪辑。图片

Web工具剪辑合成

使用Web工具进行剪辑并提交合成,共有两种模式,一种是使用阿里云控制台,直接在阿里云控制台上进行操作。

另一种是集成WebSDK,在客户自己的业务页面进行剪辑与提交合成,实现剪辑流程与业务APP或业务系统更紧密的结合。标准剪辑-时间线和标准剪辑-模板,以及直播剪辑都支持在Web端进行剪辑制作和效果预览。

当制作完成后,如果使用的是阿里云控制台,则可以直接在界面上提交合成,因为阿里云控制台理论上其实是一个SaaS,可以直接使用。

如果使用的是集成WebSDK到自己的业务界面,则可以在后端调用SubmitMediaProducingJob(标准剪辑)或者SubmitLiveEditingJob(直播剪辑),只不过Timeline不是人工拼成,而是直接由WebSDK生成的。图片

剪辑工程管理与使用工程ID提交合成

剪辑工程管理与使用工程ID提交合成更复杂一些,适用于客户或者开发者对于剪辑工程有更深入诉求,希望对剪辑工程进行深入管理的情况,共有两种方式:

一种方式是创建一个云剪辑工程,并直接指定其时间线数据,通过工程ID进行合成,此方式无需传入时间线,因为工程ID背后的时间线数据,可以从工程对象获取,而提交之后的流程与前面流程保持一致。
另一种方式是先创建一个云剪辑工程,然后不停更新时间线数据,最后仍然通过工程ID提交合成作业,后续流程仍然相同。图片

媒资库资源注册

媒资库支持对OSS Object和VOD Media发起注册,注册之后,会生成统一的MediaId方便后续管理和剪辑制作。

实际上VOD的MediaId在后续版本中不再需要手动发起注册,而是将智能媒体服务与VOD进行统一MediaId抽象,也就是说可以天然地识别VOD MediaId,而无需注册成IMS MediaId,当然,强行把VOD MediaId注册成IMS MediaId也是可行的。

此外,媒资库的开放性意味着媒资注册并不一定要显示调用

提交剪辑合成时,Timeline轨道里的素材可以直接传入媒体URL,而无需事先注册,并且支持提交合成之后将未注册的素材自动进行注册。MediaId统一之后,反过来也意味着,智能媒体服务的生产工具IMS也可以看作VOD的生产制作工具,直接给VOD剪辑使用。图片

智能任务处理

智能任务处理在素材分析、剪辑与包装阶段进行智能分析或处理。智能任务的分析是一个耗时的过程,所以需要先提交任务,再通过作业ID进行查询。

智能任务,可分为两大类,SummitASRJob和SummitAudioProduceJob,这两个作业一般作为生产制作过程中的素材辅助信息或素材中间信息,任务的提交结果需要与时间线编排和制作结合起来,完成最终的创作与成品合成。

而SummitIProductionJob的输出结果已经是封面、摘要,或者擦除logo、文本之后的视频,因此,作业结果一般可以直接作为成片输出,并通过JobId主动查询获取。任务的执行方式仍然是异步的过程,而智能任务在生产制作中起到辅助提效的作用。图片

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论