自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张晖的专栏

一名搞视频技术的研究僧,关注公众号“灰度五十”,获取更多音视频技术知识、名企内推,玩转影音

  • 博客(117)
  • 资源 (23)
  • 收藏
  • 关注

原创 速度快\颜色准\功能多,移动端HEIF图片解码实现方案

功能多:SDK同时支持YUV400/420格式解码、Alpha通道、缩放、SO后下载等功能,并且提供有集成到Glide、Freso的示例,具有更广泛的应用场景和更高的灵活性。速度快:SDK采用了先进的图像处理技术和优化算法,确保了图片解码的速度和效率,相比原生接口有数倍的性能提升,如下面对比图所示(图中0代表Android原生接口解码失败)颜色准:SDK内置了先进的色彩管理模块,支持多种颜色空间,可以更准确地还原图片的色彩。在下面的例子中,我们解码一张带Alpha通道的HEIF图片并叠加到紫色背景上。

2023-07-30 12:30:16 323

原创 移动端高性能Unity播放器实现方案

随着VR、AR、元宇宙等新玩法的出现,Unity平台的视频播放需求逐渐增加,比如下面两个动图就是在百度真实的案例。前者是演唱会场景,后者则是一个演讲会场。通过这两个案例可以真切地感受到虚实结合给传统视听体验带来的改变。所以在网络上能看到很多文章,介绍如何自己实现Unity播放器SDK,基本都是如下的思路:从硬件解码器中取出YUV数据 -> 送到Unity上下文中进行渲染。这个思路非常简单直接,问题也很明显。

2023-04-18 20:39:12 1202 2

原创 最简单的移动端VR播放\投屏\防挡弹幕实现方案

去年,我提出了终端播放产品『』的概念,以全景声、HDR、超低延时直播、元宇宙虚实结合为重点。今天,百度智能云移动端播放器SDK 3.5.0版本发布,为『沉浸超感』这个主题添加了三大能力。

2023-03-29 20:03:42 353

原创 如何打造新时代的终端播放产品?

站在2022年底这个时间点,提问当今时代的终端播放产品应具备怎样的特点?。以沉浸式的观看交互,超越感官的视听体验,打造符合新时代特征的高质量终端播放产品。

2022-11-18 17:37:30 1196

原创 我的音视频技术笔记路线图

恍惚间发现自己的博客文章已经有100篇了(有几篇尚在草稿箱中等待进一步加工),才发觉应该弄一个总目录,让自己心里有数,也让诸位读者看着舒心。我的文章不同于其他作者,鲜少有手把手入门性质文章(这方面我的师哥雷博士已有许多著作在前),多是以某一个技术点为主题,展开进行较为深入的介绍。下面即将这些点联结为一棵音视频知识树,供诸君参考:基础知识1. 编解码基础知识1.1 H264码率控制H.264码率控制算法研究及JM相应代码分析(一)H.264码率控制算法研究及JM相应代码分析(二)H.264

2021-09-05 21:50:33 5415 5

原创 播放器色觉辅助功能开发,助力提升色觉障碍用户的视频观看体验

所谓色觉辅助功能,就是帮助色盲、色弱人群更好的观看视频。比如下面的画面,是红绿两队在进行足球比赛 那么一位患有红绿色盲的用户看到的画面可能是下面这样的 可以看到,由于患有红绿色盲,这位用户将难以区分出比赛中的红绿两队,这势必会影响用户的观看体验。所谓色觉辅助功能,就是帮助这样的特殊用户更好的观看视频,经过色觉辅助优化,我们可以做到让红绿色盲看到的画面变成下面的样子 可以看到,此时...

2018-05-30 22:03:50 2847 1

原创 如何将Paddle(Lite)模型转换为TensorFlow(Lite)模型

模型间的相互转换在深度学习应用中很常见,paddlite和TensorFlowLite是移动端常用的推理框架,有时候需要将模型在两者之间做转换,本文将对转换方法做说明。

2024-04-09 19:31:06 364

原创 深度学习入门笔记(九)自编码器

自编码器是一个无监督的应用,它使用反向传播来更新参数,它最终的目标是让输出等于输入。数学上的表达为,f(x) = x,f 为自编码器,x 为输入数据。自编码器会先将输入数据压缩到一个较低维度的特征,然后利用这个较低维度的特征重现输入的数据,重现后的数据就是自编码器的输出。所以,从本质上来说,自编码器就是一个压缩算法。如下图有三点需要注意。

2024-02-08 17:06:23 609

原创 深度学习入门笔记(八)可以不断思考的模型:RNN与LSTM

梯度接近 0 则意味着梯度消失了;针对RNN的问题,如果我们能让 RNN 在接受上一时刻的状态和当前时刻的输入时,有选择地记忆和删除一部分内容(或者说信息),问题就可以解决了,比如有一句话提及刚才吃了苹果,那么在此之前说的吃香蕉的内容就没那么重要,删除就好了。之前学到的 CNN 和全连接,模型的输入数据之间是没有关联的,比如图像分类,每次输入的图片与图片之间就没有任何关系,上一张图片的内容不会影响到下一张图片的结果。也就是指当前系统的状态,可能受很长时间之前系统状态的影响,这是RNN中无法解决的一个问题。

2024-02-08 16:57:28 353

原创 深度学习入门笔记(附录一)性能优化实战经验

前面几节介绍了很多理论,难免会好奇:理论如何与实战结合呢?本节我们就穿插一点实战经验,来换换脑子~

2024-02-02 23:42:32 527

原创 深度学习入门笔记(七)卷积神经网络CNN

本节深入介绍CNN

2024-02-02 23:32:02 915

原创 深度学习入门笔记(六)线性回归模型

顾名思义,就是用一种线性关系进行回归。回归与分类都属于有监督学习,分类预测的是一个类别,而回归预测的是一个数值,例如房价、天气的温度、股票的走势。线性关系 f(x)可以定义为向量的表示方式为其中 w 为权重,是一个列向量,b 是一个偏移项。这个 f(x)就是我们说的线性回归模型。我们对 f(x)的训练,就是获得 f(x)中的 w 与 b。我们可不可以把线性回归模型用于分类问题呢?答案是可以的,只需要把回归方程 f(x)输出加一个 sigmoid 函数就可以了。

2024-02-02 23:18:03 122

原创 深度学习入门笔记(五)模型是如何自我学习的:前馈网络与反向传播

接着上一节,本节讲解模型自我学习的数学计算过程究竟是怎么样的。

2024-02-02 23:14:21 160

原创 深度学习入门笔记(四)模型是如何自我学习的:函数与优化方法

深度学习有三大部分本节我们就来介绍模型是如何学习或更新的。

2024-02-02 23:05:09 148

原创 深度学习入门笔记(三)深度学习基本常识与术语

本节我们介绍一些深度学习领域常用的术语。

2024-02-02 22:51:50 118

原创 深度学习入门笔记(二)神经元的结构

神经网络的基本单元是神经元,本节我们介绍神经元的结构。

2024-02-02 22:40:08 444

原创 深度学习入门笔记(一)必备数学基础知识

本节中,我们先来介绍一些深度学习中必备的数学知识,有些是大学课堂讲过的,还有些可能没有,对于第一次见到的知识,可以先不用深究,了解概念即可,再后面应用的时候可以翻过头再看。

2024-02-02 22:24:32 315

原创 移动端跨平台开发(二)一个跨平台的helloworld

在上一篇文章移动端音视频跨平台开发技术概论中,我们分析了跨平台开发的总体架构。今天我们实际动手,写一个helloworld项目,这个项目很简单,就是做一个简单的日志库,最终我们希望能在Android和ios手机上打印出一行hello world日志。项目名字就叫simplest_crossplatfrom_helloworld,简称sch,对应下文代码中的变量、方法名称。编写打印日志的核心代码流程在Android平台上,我们利用jni的log.h进行日志的输出,在ios平台上,则直接利用printf函

2022-03-24 23:24:22 5674

原创 移动端音视频跨平台开发技术概论

严格来说,具体到移动端音视频这个细分领域,除非你不依赖任何平台硬件加速能力(比如硬件编解码),否则我们可以大胆的说:根本不存在彻底的跨平台。我们可以从更狭义的角度来说,移动端音视频领域的跨平台,其实是编译工具链和数据流程上的跨平台,基于这两个底座,接入依赖平台特性的功能模块,最终封装为多平台统一的native接口。这里所谓的数据流程,或者叫pipeline,我们可以说它还包含了线程管理、内存管理、数据统计、日志管理等附属模块。此外,如果要封装应用层面的API,则又要基于统一的native接口,依据各平

2022-03-06 20:14:54 4750

原创 2021年多媒体技术圈年终事件大回顾

今年的年终总结,虽迟但到,回看往年的总结:2018年多媒体技术圈年终事件大回顾2019年多媒体技术圈年终事件大回顾2020(我鸽了)以下内容均为个人见解,大佬轻拍~一月一月属于WebRTC,W3C和IETF终于宣布WebRTC成为正式标准。尽管此前WebRTC早已得到广泛的应用,但是毫无疑问,WebRTC的标准化将更好地促进各种浏览器和系统之间的兼容与协作。Chrome也在这个月发布新版本,添加对AV1编码的支持,这也是RTC大规模应用场景的重要feature。MPEG第

2022-01-05 17:57:40 906 3

原创 掌握真正科学的学习方法——学会如何学习(Learning How to Learn)课程笔记

Learning How to Learn是Coursera平台上最热门的在线课程之一。当年本来只是看这个课程标题很有意思,所以抱着猎奇的心态点进去随便看看,没想到还真有点东西。简单来说,这门课程是以大脑认知的底层科学原理为基础,介绍如何更有效地进行学习。如果说我们平时掌握的各种技能是“术”,那这门课程讲的是如何更有效地学习技能的“道”。下面把之前听课做的笔记简单总结一下:如何克服拖延症拖延症的成因是当我们去做一件特别不愿意做的事情时,会触发大脑的痛觉区域,因此大脑会让我们去做其他事情来避免疼痛。

2021-12-18 23:16:36 1145

原创 流媒体播放的数学原理

这是本系列的第六篇文章前五篇文章的链接如下:自适应流媒体传输(一)——DASH媒体内容的生成自适应流媒体传输(二)——为什么要使用fragmented MP4自适应流媒体传输(三)——和TS格式说再见自适应流媒体传输(四)——深入理解MPD自适应流媒体传输(五)——正确认识码率切换当我们抛开繁杂的业务代码,从纯数学的角度去理解流媒体传输\播放的过程,会有全新的体会。首先,无论是传统的渐进式下载(progressive download)还是现在流行的自适应传输(adaptive stream

2021-12-18 19:21:44 795

原创 深入理解Android MediaCodec(一)初始化流程

最近在学习Android多媒体技术,分享一下学习过程中的记录。 这篇文章中将介绍一下如何获取系统支持的编解码器,以及如何获取支持某一MediaFormat的编解码器,简单来说,就是MediaCodecList的内容。

2021-11-17 22:54:45 1326

原创 再探HEVC——理解不同类型的I帧

软编的265码流和Android MediaCodec硬编的265码流,I帧的nalu type有所不同翻看265标准文档,可以发现I帧的nalu type分以下几种NAL_UNIT_CODED_SLICE_BLA, // 16 // Current name in the spec: BLA_W_LP NAL_UNIT_CODED_SLICE_BLANT, // 17 // Current name in the spec: BLA_W_DLP NAL_UNIT.

2021-11-14 22:26:17 2435

原创 技术人看OTT市场:为何华为,oppo,一加纷纷入场

OTT行业是个很神奇的存在。我们姑且把OTT和智能电视划个等号。倘若你去大学校园里鼓动年轻学生们加入智能电视行业,他们大概率会说:现在谁还看电视啊?!但是过几年,等校园里的年轻人成家立业拥有自己的第一个小窝,他们还是会互相讨论给家里配一台什么电视。每吃一个鸡腿,世界上就会有一只橘猫失去生命。每卖出一套房子,也许就会有一台电视送到用户手中。就好比青春懵懂的少年总在某一刻才突然领悟爱情的真谛,我们都是在人生的某一阶段才突然发现对OTT产品的需求。我们姑且再把OTT和互联网硬件划个等号。然而即使挂上

2021-11-14 21:13:13 626

原创 浅谈OpenGOP与ClosedGOP

错误地设置OpenGOP与ClosedGOP,将导致某些Android手机上的解码错误作为GOP的两种结构,ClosedGOP是指帧间的预测都是在GOP中进行的,而对于OpenGOP来说,一个GOP里面的某一帧在解码时要依赖于相邻GOP中的某一些帧。下图展示的就是一个OpenGOP的例子,在这个例子中, 末尾的两个B帧需要依赖下一个GOP中的I帧进行解码。而下图展示的是两个CloseGOP的例子。我们也可以得出一个结论,如果一段视频内的所有I帧都同时是IDR帧,那么这段视频的所有GOP都是Clo.

2021-10-24 12:49:08 1439

原创 深入理解DRM(四)——直播流中的DRM

直播流中的DRM涉及到一个Key Rotation的概念,所谓key rotation就是加密内容的key可以随时间变化,一般用于直播流媒体,但是在点播中也是可能存在的(may be optional for VOD streams). 根据widevine文档,key rotation往往结合fragemented mp4格式使用,利用关键的moof和pssh(包含drm初始信息) box完成。具体来说,client不停的从流中读moof以及包含在moof中的pssh,当发现pssh发生变化的时候,就意

2021-08-17 22:54:37 3304

原创 深入理解Google Cast(三)探寻原理

如何开发一个receiver application先来简单说一下这个话题。Receiver本质就是一个网页,由html+CSS和jacascript开发,如果要自定义receiver application,需要在 Google Cast SDK Developer Console注册appID,这个appID将会包含在sender的SDK方法中,标识receiver app,注册收费5$.For more details, see below:https://developers.google.c

2021-08-15 22:42:29 2288

原创 深入理解Google Cast(二)开发一个支持Google Cast的sender APP

前言0.Activities需要继承自ActionBarActivity或FragmentAcitivy0. cast button需要在所有Actvity中存在,允许用户随时连接,随时断开.初始化CastContext首先实现OptionsProvider接口来获得CastOptions,再用CastOptions初始化CastContextreceiver application ID:用于过滤Cast Devices搜索结果并且在Cast会话开始时启动receiver application

2021-08-15 22:27:48 1463

原创 深入理解Google Cast(一)基本概念

什么是google castgoogle cast允许用户将手机上的内容投影到TV上,然后用户可以将手机作为遥控器来控制TV上的媒体播放。Google cast SDK用于扩展你的app,使其支持google cast功能。一个Cast App由两个部分组成Sender Application:支持Android,IOS,Chrome,runs on mobile device or laptopReceiver Application:runs on Google Cast devices,处

2021-08-15 22:17:39 3355

原创 深入理解Android Tunnel Mode

什么是Tunnel mode?通俗的说就是video的offload playback mode,把视频解码\音画同步\渲染的工作从由AP(Application Processor)完成转变为都由DSP来完成,甚至全程不需要Android Framework的参与,性能更强、功耗更低,尤其适合在TV设备上播放UHD\HDR\高码率\高帧率内容。Audio的Tunnel mode在kitkat中就已经存在了,可以在音乐播放中起到节省电量的作用。Google为本地和在线播放的Tunnel mode提供

2021-08-15 21:59:51 4621

原创 Android native crash解析

当某个进程发生crash时会出现下面的错误日志,它可能出现在logcat日志或者/data/tombstones目录下的tombstone文件中--------- beginning of crash10-24 00:29:11.558 8660 8934 F libc : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x1c in tid 8934 (MainThread)10-24 00:29:11.620 468 468 F DE

2021-08-15 14:46:42 4439

原创 Android常用调试命令记录

Android常用调试命令记录抓日志mount关闭selinuxdump native数据查看ffmpeg支持的codec和format列表新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入抓日志同时抓adb日志和kern

2021-08-15 14:44:06 366

原创 深入理解DRM(三)——MediaDRM和MediaCrypto

文章目录How MediaDRM Works?根据UUID创建MeidaDRM实例Open SessionAdd keys创建MediaCrypto对象,注册到MediaCodec中开始解密Widevine DRM TestingHow MediaDRM Works?下面以ExoPlayer代码为例介绍Widevine Modular中所用的MediaDRM。总结下来有以下几步Step1.根据UUID创建MeidaDRM实例Step2.Open SessionStep3. add keys:

2021-08-15 14:38:11 3969

原创 深入理解DRM(二)——了解Widevine与OEMCrypto

文章目录基本术语定义KeyBox是什么Widevine的级别Widevine DRM FrameworkWidevine Classic与Widevine ModularOEMCrypto是什么1.OEMCrypto中的Session2. OEMCrypto API2.1 Crypto Device Control2.2 Crypto Key Ladder2.3 Decryption API2.4 Keybox Provisioning2.5 Keybox Access关键解密流程基本术语定义Dev

2021-08-15 14:36:12 7498

原创 浅谈音视频自动化测试

理清音视频/多媒体/播放器自动化测试的思路,可以从以下几个角度来思考。1.测项设计1.1.功能测试对各类传输协议、封装格式、编码格式的支持,在编码格式测试方面,又涉及到各类编码参数的组合,测项数量会疯狂膨胀起来各类基础播放控制,包括播放、暂停、倍速、seek等和自身产品强相关的feature测试,如无缝切换、音频输出通路、DRM等1.2.性能测试启播(首屏)时间,更细粒度的考量因素可能有启播各个环节细分的耗时seek耗时丢帧(卡顿)率,更细粒度的考量因素可能有连续丢帧数、每秒丢帧数等

2021-07-20 10:05:07 2831 4

原创 视频主观质量评价方法总结

很多人在音视频行业从业多年的朋友都对主观质量评价不太了解,或者还停留在很浅显的理解层面上,甚至不知道有专门的标准和学科。因此在这里做一个简单的介绍。本文的内容基本参考自两大标准:ITU-R BT.500-13:电视图像质量的主观评价方法,以及ITU-R BT.1788建议书:对多媒体应用中视频质量的主观评估方法。总体而言,主观评价分为两大类。第一类评价是确定在最佳条件下系统表现的质量。这类评价通常称为质量评价。第二类评价是确定在与传输或信号发射有关的非最佳条件下系统维持一定质量的能力。这类评价通常称

2021-05-30 18:15:33 2715

原创 理解Android音频焦点

在Android系统中可能会有多个应用程序会播放音频,所以需要考虑他们之间该如何交互,为了避免多个应用程序同时播放音乐,Android 系统使用音频焦点来进行统一管理,即只有获得了音频焦点的应用程序才可以播放音乐。我们的应用在开始播放音频文件前,首先应该请求获得音频焦点,并且应该同时注册监听音频焦点的丢失通知,即如果音频焦点被系统或其他的应用程序抢占时,应该做出什么响应。“音频焦点”这个翻译可能有点难以理解。其实audio focus的本意是说用户在同一时刻只能聚焦(focus on)在一个音频流的播

2021-05-20 21:27:45 1309 3

原创 Android实现音频淡入淡出效果

淡入淡出原本是音响、功放上常有的功能,如今,在一些对音频体验要求比较高的场景下,也会有类似的需求。除此之外,音频淡入淡出效果也可以掩盖一些音频播放过程的瑕疵,优化体验。以淡入效果为例,在Android平台上最基础的实现方法就是以固定时间间隔调用mediaplayer的setVolume接口,将音量逐渐从0上升到1。调用时机方面,可以在seek时将音量置为0,收到seekComplete回调后开始上升到1。通过这种方式,你应该能在日志中看到如下的打印。当然,具体的调用时机可以依据你自己的场景来设计。11-

2021-05-12 22:31:27 1805

原创 快速理解AAC编码格式

本文包含两部分内容:介绍AAC编码格式,以及如何解决ffmpeg获取aac文件时长不准的问题

2020-02-27 10:26:07 3006 3

播放器竞品分析.pdf

对比常见视频app的界面设计

2021-11-14

根据GOP异常进行视频序列剪辑篡改的盲检测.pdf

根据GOP异常进行视频序列剪辑篡改的盲检测.pdf

2021-09-05

T-REC-P.910-多媒体应用的主观评价PDF-E.pdf

T-REC-P.910-多媒体应用的主观评价PDF-E.pdf

2021-09-05

R-REC-BT.500-电视图像质量的主观评价方法(中).pdf

R-REC-BT.500-电视图像质量的主观评价方法(中).pdf

2021-09-05

T-REC-J.144.pdf

T-REC-J.144.pdf

2021-09-05

MPEG-VR.pptx

北大出品MPEG VR标准介绍PPT

2021-05-18

ITU-T-REC-J.143-数字有线电视的客观评价

ITU-T-REC-J.143-数字有线电视的客观评价

2021-05-06

ITU-T-REC-P.800--传输质量的主观评价方法

ITU-T-REC-P.800--传输质量的主观评价方法

2021-05-06

软件工程课程知识小结文档

软件工程课程知识小结文档

2021-05-06

松下摄像机AG-HPX500说明书

松下摄像机说明书

2021-05-06

DTS音频格式标准文档

DTS音频格式标准文档

2021-05-06

draft-pantos-http-live-streaming-23.pdf

HLS规范

2021-05-06

dash_website_demo

a Website Demo supporting DASH media content upload, generate and watch.一个支持DASH内容上传、生成、观看的网站示例。 dont support live DASH currently Dependencies: DASHEncoder2 (https://github.com/zhanghuicuc/DASHEncoder2) and FFmpeg 张晖 Hui Zhang 中国传媒大学/数字电视技术 Communication University of China/Digital Video Technology [email protected] http://blog.csdn.net/nonmarking this website is based on Lei Xiaohua's simplest video website

2016-01-02

DASHEncoder2

Tool to generated DASH content using config file or command line, modified from itec's DASHEncoder which is not maintained by them any more. 一个可以生成DASH媒体内容和MPD的工具 Dependencies: MP4Box and FFmpeg 张晖 Hui Zhang 中国传媒大学/数字电视技术 Communication University of China/Digital Video Technology [email protected] http://blog.csdn.net/nonmarking

2016-01-02

ffmpeg_video_combine

本程序实现了对多路视频进行合并实现分屏效果,并且可以添加不同的视频滤镜。 张晖\中国传媒大学\[email protected]

2015-12-19

FFmpeg Android Camera Encoder

本程序实现了使用FFmpeg将安卓手机摄像头数据实时编码为H264编码格式的FLV视频的功能。 作者:张晖/中国传媒大学/数字电视技术/[email protected]

2015-09-20

ffmpeg_camera_streamer(with filter)

本程序实现了读取PC端摄像头并进行直播的功能,并且可以添加不同的视频滤镜

2015-09-02

基于ffmpeg的摄像头直播系统

本项目基于ffmpeg实现了PC端摄像头数据的读取、解码、编码和直播。 张晖/中国传媒大学/数字电视技术/[email protected]

2015-08-27

WebRTC VideoEngine使用示例程序

WebRTC VideoEngine示例程序 本程序可以实现环路视频通话,并且可以选择使用VP8,OPENH264或者X264作为视频编码器 张晖 中国传媒大学/数字电视技术 [email protected]

2015-08-09

HEVC码率控制文献总结与代码分析

HEVC码率控制文献总结与基于HM10的代码分析,中国传媒大学张晖制作

2015-08-08

H.264码率控制算法研究与JM相应代码分析

H.264码率控制算法研究与JM相应代码分析

2015-07-07

视频质量评价方法总结

个人编写的主客观评价方法介绍与总结,包含BT500 BT1788标准提到的所有方法

2015-03-04

基于iqa实现的可计算psnr\ssim\ms-ssim的类库

基于iqa实现的可计算psnr\ssim\ms-ssim的类库,iqa官方给出的源码无法直接使用,特此自行修正并改为类库,可用。包含全部源码。

2015-02-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除