一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实时视频特效的渲染方法、系统、装置及存储介质与流程

2021-11-05 20:08:00 来源:中国专利 TAG:


1.本发明涉及图像处理技术领域,尤其是一种实时视频特效的渲染方法、系统、装置及介质。


背景技术:

2.伴随着智能手机的普及,人们的日常娱乐的方式以及内容也日益丰富。通过视频的方式进行内容输出,是一种新兴互联网内容传播方式,随着移动终端普及和网络的提速,视频等的大流量传播内容逐渐获得各大平台和用户的青睐。然而,视频的制作是存在一定的技术门槛的,以视频渲染过程为例,现有技术所常用的方法主要为:针对固定的视频特效模板定制开发渲染合成程序,需要设计人员通过专业设计工具设计视频模板,使用插件导出模板配置文件,或者人工填写配置文件。
3.然而,上述方法存在明显的缺陷:其一,针对每个模板定制开发渲染合成程序,在开发以及测试上需要无休止地投入大量的人力和时间,模板制作周期太长,成本难以控制;使用插件导出模板配置文件,需要依赖或者开发相应设计工具的插件,投入更多的开发资源,同时视频模板设计过程无法直接对用户开放;其二,当前的专业设计工具不具备ai特效设计能力,更不具备ai特效实时预览能力,同时对终端依赖性强;其三,在用户侧进行创作时,由于人工填写配置文件,存在人为错误可能以及大量的人工时间成本。


技术实现要素:

4.有鉴于此,为至少部分解决上述技术问题之一,本发明实施例目的在于提供一种简单、便捷、智能化并能进行ai特效等复杂内容创作的实时视频特效的渲染方法,此外,本技术还提供了能够对应实现该方法的系统、装置及计算机可读的存储介质。
5.第一方面,本技术的技术方案提供了一种实时视频特效的渲染方法,其步骤包括:
6.获取第一视频素材,根据所述第一视频素材的渲染工序划分得到第一素材内容和第二素材内容;
7.通过渲染预测得到所述第一素材内容的第一优先级以及所述第二素材内容的第二优先级,根据所述第一优先级和所述第二优先级确定渲染队列;
8.根据所述渲染队列进行图形处理资源的线程分配,根据所述线程分配的结果对所述第一素材内容进行切片特效渲染得到第一渲染内容,和对第二部分素材内容进行特效渲染得到第二渲染内容;
9.将所述第一渲染内容与所述第二渲染内容进行融合渲染,输出得到特效视频。
10.在本技术方案的一种可行的实施例中,所述通过渲染预测得到所述第一素材内容的第一优先级以及所述第二素材内容的第二优先级这一步骤,其包括:
11.获取所述第一素材内容平均帧特效的第一复杂度和第一素材内容的特效持续帧数;
12.通过所述第一复杂度和所述特效持续帧数的乘积,与所述第一视频素材的帧序列
的比值表征所述第一优先级。
13.在本技术方案的一种可行的实施例中,所述通过渲染预测得到所述第一素材内容的第一优先级以及所述第二素材内容的第二优先级这一步骤,其还包括:
14.获取所述第二素材内容平均帧特效的第二复杂度和所述第一视频素材的帧率;
15.通过所述第二复杂度和所述帧率的乘积,与所述第一视频素材的帧序列的比值表征所述第二优先级。
16.在本技术方案的一种可行的实施例中,所述根据所述线程分配的结果对所述第一素材内容进行切片特效渲染得到第一渲染内容这一步骤,其包括:
17.根据所述特效持续帧数将所述帧序列进行分组,将分组结果进行排序得到切片序列,根据所述切片序列进行特效渲染得到所述第一渲染内容。
18.在本技术方案的一种可行的实施例中,所述根据所述线程分配的结果对所述第一素材内容进行切片特效渲染得到第一渲染内容这一步骤,其还包括:
19.获取所述第一素材内容的渲染任务请求;
20.确认请求通过,获取网络性能参数;
21.根据预设的可容忍延迟时间以及渲染延迟的正态分布峰值,结合所述网络性能参数确定所述第一素材内容的切块帧数信息。
22.在本技术方案的一种可行的实施例中,所述根据所述渲染队列进行图形处理资源的线程分配这一步骤,其包括:
23.将所述第一素材内容分配至服务器端图形处理资源进行特效渲染;
24.将所述第二素材内容分配至本地图形处理资源和/或所述服务器端图形处理资源进行特效渲染。
25.在本技术方案的一种可行的实施例中,所述方法还包括以下步骤:
26.将所述第一渲染内容与所述第二渲染内容进行整合得到视频特效模板和/或特效素材;
27.获取第二视频素材,将所述视频特效模板和/或所述特效素材与所述第一视频素材进行合成得到所述特效视频。
28.第二方面,本发明的技术方案还提供一种实时视频特效的渲染系统,其包括:
29.图像接口模块,用于获取第一视频素材;
30.图像渲染模块,用于根据所述第一视频素材的渲染工序划分得到第一素材内容和第二素材内容,根据所述渲染队列进行图形处理资源的线程分配;并根据所述线程分配的结果对第二部分素材内容进行特效渲染得到第二渲染内容;
31.ai模块,所述ai模块用于根据所述线程分配的结果对所述第一素材内容进行切片特效渲染得到第一渲染内容;
32.视频输出模块,用于所述第一渲染内容与所述第二渲染内容进行融合渲染,输出得到特效视频。
33.第三方面,本发明的技术方案还提供一种实时视频特效的渲染装置,其包括:
34.至少一个处理器;
35.至少一个存储器,用于存储至少一个程序;
36.当至少一个程序被至少一个处理器执行,使得至少一个处理器运行第一方面中的
一种实时视频特效的渲染方法。
37.第四方面,本发明的技术方案还提供了一种存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于运行第一方面中的方法。
38.本发明的优点和有益效果将在下面的描述中部分给出,其他部分可以通过本发明的具体实施方式了解得到:
39.本技术技术方案通过将待渲染的视频素材根据渲染工序的复杂程度划分成为两个部分,并确定两个部分渲染任务的优先级,根据优先级构成的渲染队列进行图像处理资源的分配,使得资源调用更为合理,视频渲染效率也大幅度提高;针对不同的渲染任务采取不同的渲染方式,使得渲染进程更为高效,也能够实现更为复杂的特效渲染,有利于提高用户体验;方案过程中只需要用户上传待渲染的视频素材,无需进行配置文件或者参数的填充,避免了人为错误操作,降低了创作门槛,进一步提升了用户体验。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1为本发明实施例提供的一种实时视频特效的渲染方法的步骤流程图;
42.图2为本发明实施例中android、ios、h5端的渲染过程示意图;
43.图3为本发明实施例中小程序端渲染过程示意图;
44.图4为本发明实施例中视频模板的素材来源以及发布方式的示意图;
45.图5为本发明实施例中一种实时视频特效的渲染系统的结构示意图。
具体实施方式
46.下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
47.如背景技术中所描述,现有的模板式的视频渲染方法存在着开放成本高、用户创作成本高、研发学习成本高以及无法支持较为复杂的特效预览与融合等问题。为此,本技术的技术方案的主要目的在于打破专业动画设计工具不具备ai特效等复杂特效的设计及实时预览的局限;能够让专业设计人员更便捷地设计具备专业效果的视频模板,以使得普通用户也可以快速上手设计具备专业效果的特效视频。
48.因此,在第一方面,如图1所示,本技术提供的一种实时视频特效的渲染方法,其步骤包括s100

s400:
49.s100、获取第一视频素材,根据第一视频素材的渲染工序划分得到第一素材内容和第二素材内容;
50.具体地,实施例可以通过智能终端的数据接口服务获取得到转码后的第一视频素
材,即待渲染的视频素材;并且在该视频素材包含了用户所选择的目标特效。实施例中的智能终端中的应用层根据内置的图形渲染工具,例如各类android/ios sdk或者javascript sdk对视频素材中的目标特效按照渲染工序进行划分;示例性地,在实施例中,由于ai特效渲染具备素材一次采集、反复处理的特性;而基础特效渲染则是不断进行素材采集和特效处理,因而将ai特效作为第一素材内容,将基础特效作为第二素材内容。
51.s200、通过渲染预测得到第一素材内容的第一优先级以及第二素材内容的第二优先级,根据第一优先级和第二优先级确定渲染队列;
52.其中,实施例中的渲染预测是指,在端终端的应用层或者在服务器端所执行的,对划分得到两个部分的渲染任务进行渲染的复杂度以及渲染优先级进行计算的过程。具体地,在通过步骤s100划分得到ai特效和基础特效两部分的素材之后,实施例通过渲染预测确定了基础特效以及ai特效的渲染时间复杂度以及渲染任务的优先级,并根据优先级从高到低的顺序放入渲染队列之中,进行优先级的高低比较是,进行对比的是两种特效类型的优先级的具体数值,数值大则优先级高。此外,需要说明的是,在实施例中,可能出现基础特效和ai特效的优先级相同的情况,则可以采用基础特效和ai特效并行渲染的方式,并根据基础特效和ai特效的复杂度的比值进行图像处理资源的分配,使得资源利用实现最优化分配。
53.s300、根据渲染队列进行图形处理资源的线程分配,根据线程分配的结果对第一素材内容进行切片特效渲染得到第一渲染内容,和对第二部分素材内容进行特效渲染得到第二渲染内容;
54.具体地,在经由步骤s200对两种特效进行图像处理资源的分配之后,将基础特效的渲染素材以及ai特效的渲染素材分发至对应的渲染工具中进行图像特效,渲染工具可以是智能终端的cpu处理器或gpu处理器,亦可以服务器端的cpu或者gpu处理器。在实施例中,切片特效渲染是指将待渲染的素材例如ai特效,对待渲染基础特效的帧序列进行分组,分组中的帧数由待渲染ai特效所持续的帧数所确定,通过对ai特效进行切片渲染,可以实现ai特效渲染的实时预览,更加便于用户对特效视频的渲染过程进行把控和调整。示例性的,当实施例中ai特效渲染工序的优先级大于基础特效的优先级,实施例优先集中cpu线程上传ai特效素材资源到gpu中,由gpu通过切片特效渲染的方式对ai特效进行渲染,在完成ai特效的渲染任务之后,再继续集中做基础特效素材资源上传gpu的处理;在ai当前切片处理完毕前,集中cpu线程下载基础特效处理完毕的资源数据到cpu中继续处理;当前有ai切片处理完毕时,集中cpu线程下载当前ai切片处理完毕的资源数据到cpu中继续处理。需要说明的是,由于cpu在实施例中资源消耗一般,因此,可以不对cpu资源分配做特殊处理。
55.s400、将第一渲染内容与第二渲染内容进行融合渲染,输出得到特效视频;
56.示例性地,实施例中cpu处理可以将完成渲染后的ai特效的视频帧与基础特效的视频帧进行整合或者融合得到完整的特效视频可供用户进行预览或缓存。
57.在一些可选择实施例中,步骤s200通过渲染预测得到第一素材内容的第一优先级以及第二素材内容的第二优先级这一过程可以包括步骤s210

s220:
58.s210、获取第一素材内容平均帧特效的第一复杂度和第一素材内容的特效持续帧数;
59.示例性地,实施例中第一素材内容(ai特效)平均帧特效的第一复杂度记为o
ai
,第
一素材(ai特效)内容的特效持续帧数m。其中,第一复杂度用于表征待渲染的ai特效视频帧所需要占用的图像渲染资源。
60.s220、通过第一复杂度和特效持续帧数的乘积,与第一视频素材的帧序列的比值表征第一优先级;
61.示例性地,根据步骤s210获取的ai特效平均帧特效时间复杂度o
ai
以及ai特效持续帧数m,得到ai特效渲染优先级p
ai
为:
[0062][0063]
其中,f
ai
为ai特效的起始帧序列。
[0064]
在一些可选择实施例中,步骤s200通过渲染预测得到第一素材内容的第一优先级以及第二素材内容的第二优先级这一过程可以包括步骤s230

s240:
[0065]
s230、获取第二素材内容平均帧特效的第二复杂度和第一视频素材的帧率
[0066]
具体地,第二素材(基础特效)内容平均帧特效的第二复杂度为每一帧基础特效渲染时间复杂度,首先实施例需要确定每一待渲染视频帧中的每一层基础特效时间复杂度o
n
,结合实施例中帧像素遍历时间复杂度o,可以得到每一帧基础特效渲染时间复杂度o
f

[0067][0068]
其中,i=1,2,3,

,n;此外,实施例还获取了第一视频素材的帧率即为待渲染视频的帧率记为r。
[0069]
s240、通过第二复杂度和帧率的乘积,与第一视频素材的帧序列的比值表征第二优先级;
[0070]
具体地,实施例根据步骤s230确定的每一帧基础特效渲染时间复杂度o
f
、帧率r与待渲染视频的帧序列f,所得到的每一帧基础特效渲染优先级p
f

[0071][0072]
在一些可选择的实施例中,实施例步骤s300中根据线程分配的结果对第一素材内容进行切片特效渲染得到第一渲染内容这一过程可以包括更为具体的步骤s310:
[0073]
s310、根据特效持续帧数将帧序列进行分组,将分组结果进行排序得到切片序列,根据切片序列进行特效渲染得到第一渲染内容;
[0074]
示例性地,记实施例中当前基础特效渲染帧序列f
m
,每一层基础特效时间复杂度为o
n
,ai特效起始帧序列f0,ai特效平均帧特效时间复杂度o
ai
,ai特效持续帧数m。在上述参数已经确定的基础上,将帧序列f
m
到f0 m帧进行分组,每组帧数为f
n
=(f0‑
f
m
)/2,最后一组帧数则为(f0‑
f
m
m)%f
n
。实施例中,每组元素大小为n,则每组ai特效复杂度为每组对应ai帧数f
ai2
为f
ai2
=o
group
/o
ai
;最后一组的ai帧数为m

∑f
ai2
;最后,实施例根据切片顺序进行ai特效渲染处理。每一个切片处理完毕后实时进行通知,并进入图像渲染任务队列,等待基础特效与ai特效融合渲染。
[0075]
在一些可选择实施例中,根据线程分配的结果对第一素材内容进行切片特效渲染
得到第一渲染内容这一过程,其还可以包括步骤s300a

s300c:
[0076]
s300a、获取第一素材内容的渲染任务请求;
[0077]
具体地,实施例中的智能终端与服务器端采用长连接的方式,以达到依赖服务端的特效渲染实时预览的效果,在进行数据的交换之前需要发送连接请求。
[0078]
s300b、确认请求通过,获取网络性能参数;
[0079]
具体地,实施例整个视频渲染任务中第一次高级ai特效请求连接成功后,通过网络预测的方式,由服务端发送一个测试包到应用端,该测试包包的长度为l,包接收时间为t,则简算网络性能为vl=l/t。
[0080]
s300c、根据预设的可容忍延迟时间以及渲染延迟的正态分布峰值,结合网络性能参数确定第一素材内容的切块帧数信息;
[0081]
具体地,实施例首先获取用户预先设置的可容忍延时秒数(时间)记为d(例如d的取值为1

3s),并确定固定码率大小为cbr,那么每秒视频需要传输的时长为v
cbr
=cbr/8。实施例进一步获取定时统计的渲染延时的正态分布峰值为d
g
;则可以确定切块包含帧数为n=1(v1/vcbr))24(d

dg)且(v1>vcbr);应用端将切块帧数信息发送到服务端,服务端根据前述的渲染预测和ai切片方法进行处理渲染;最终实施例根据切块渲染出切片视频,切片视频返回给应用端。
[0082]
在一些可选择实施例中,步骤s400中根据渲染队列进行图形处理资源的线程分配这一过程,其可以包括步骤s410和s420:
[0083]
将第一素材内容分配至服务器端图形处理资源进行特效渲染;
[0084]
将第二素材内容分配至本地图形处理资源和/或服务器端图形处理资源进行特效渲染。
[0085]
具体地,实施例可以将ai特效的任务上传至服务器端进行渲染,而根据智能终端的具体情况将基础特效的渲染任务在本地完成或者上传至服务端完成。
[0086]
示例性地,如图2所示,当智能终端为app端和h5端的情况时,实施例采用本地和服务端组合的高效实时渲染方式。app端和h5端分别通过opengl es和webgl技术实现终端基础特效实时渲染,高级特效渲染则通过实现的高效服务端渲染和传输技术实现实时渲染。首先通过渲染预测方法,根据图像渲染图层、基础特效复杂度和ai特效复杂度预测分配图像渲染和ai处理的资源比例,以及决定两种渲染何时同时并行处理。应用端的ai模块中根据ai特效复杂度等级分为基础ai特效和高级ai特效两部分;基础ai特效在应用端进行处理,根据切片ai方法,对ai特效根据切片顺序进行ai处理。每一个切片处理完毕后实时通知图像渲染模块,进入图像渲染任务队列。高级ai特效通过长连接调用图像接口服务。通过网络预测方法计算当前网络性能。之后应用端通过切块预测方法,对ai特效处理信息进行切块,根据切块顺序发送处理信息到图像接口服务。图像接口服务通知图像渲染服务中的ai模块进行处理,ai模块对处理信息块进行切片,根据切片顺序进行ai特效处理,并及时将处理结果通过图像接口服务发回应用端,应用端将返回结果通知图像渲染模块,进入图像渲染任务队列。此外在一些可选实施例中,可以采用设计模板的方式进行渲染,在设计模板配置参数时,渲染预提取会实时根据参数计算分析渲染信息,在配置参数确认后,提交渲染区域信息;图像渲染模块在渲染时,只对渲染预提取的渲染区域进行渲染。
[0087]
又例如,智能终端也可以为小程序端,如图3所示,由于小程序不支持终端渲染,小
程序通过实现的高效服务端渲染和传输技术实现实时渲染。首先,小程序端通过网络预测方法计算当前网络性能。然后图像接口服务通知图像渲染服务进行处理。图像渲染服务通过渲染预测方法处理基础特效渲染和ai特效渲染的资源分配,以及处理优先级。ai特效模块通过切片ai特效方法,对ai特效处理进行切片。每一个切片处理完毕后实时通知图像渲染模块,进入图像渲染任务队列。图像渲染模块根据视频帧顺序和网络性能执行视频预切片,渲染合成完毕的视频切片按照切片顺序发送到小程序端。小程序端接收到当前播放序号切片后实时播放切片视频内容,非当前播放序号的切片视频保存在缓存中,以待排到序号时进行快速播放。
[0088]
在一些可行的实施例中,实时视频特效的渲染方法还可以将第一渲染内容与第二渲染内容进行整合得到视频特效模板和/或特效素材,将视频特效模板和/或特效素材与待渲染视频素材进行合成得到特效视频。
[0089]
此外,如图4所示,用户视频设计模板素材来源方式包括但不限于以下三种:其一、使用专业工具设计粒子特效和声音特效,上传特效文件到实施例的系统中;其二、选择实施例系统已有的特效,其可以是实施例系统提供或用户公开发布的特效;其三、选择实施例系统已发布的视频模板(系统提供或用户公开发布的视频模板)进行二次设计。
[0090]
第二方面,本技术的技术方案还提供一种实时视频特效的渲染系统,其主要包括:图像接口模块,用于获取第一视频素材;
[0091]
图像渲染模块,用于根据第一视频素材的渲染工序划分得到第一素材内容和第二素材内容,根据渲染队列进行图形处理资源的线程分配;并根据线程分配的结果对第二部分素材内容进行特效渲染得到第二渲染内容;
[0092]
ai模块,ai模块用于根据线程分配的结果对第一素材内容进行切片特效渲染得到第一渲染内容;
[0093]
视频输出模块,用于第一渲染内容与第二渲染内容进行融合渲染,输出得到特效视频。
[0094]
除此之外,如图5所示,实施例系统根据不同的智能终端,其应用层还可以包括android/ios sdk,其下还可以分为ai处理模块和基于opengles的图像渲染模块;或者包括javascript sdk其下还可以分为ai处理模块和基于webgl的图像渲染模块。可以理解的是,实施例系统中还可以包括数据层,其包括数据库以及数据接口服务。
[0095]
第三方面,本技术的技术方案还提供一种实时视频特效的渲染装置,其包括至少一个处理器;至少一个存储器,用于存储至少一个程序;当至少一个程序被至少一个处理器执行,使得至少一个处理器运行如第一方面中的一种实时视频特效的渲染方法。
[0096]
本发明实施例还提供了一种存储介质内存储有程序,程序被处理器执行,实现如第一方面中的方法。
[0097]
从上述具体的实施过程,可以总结出,本发明所提供的技术方案相较于现有技术存在以下优点或优势:
[0098]
1.本技术技术方案可以支持实时预览,为了提高渲染效率,保证视频模板设计和视频模板合成视频时的实时预览,提出了“渲染预测”、“切片ai”和“切块ai”方法,根据渲染需要、网络性能进行各项优化;
[0099]
2.本技术技术方案综合app端、浏览器端和服务端的优势,进行多端综合渲染,渲
染效率更高;
[0100]
3.本技术技术方案支持用户素材发布共享、视频模板发布共享、视频模板二次设计。
[0101]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0102]
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
[0103]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0104]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0105]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0106]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献