媒体应用视频超分AI神器!360P视频一键转换HD
作为多媒体应用的开发者,你是否想为媒体播放器快速开发创新AI功能?例如:
- 在播放低画质视频过程中对其进行逐帧超分
- 让满屏飘飞的弹幕自动绕过画面的主体人物
HMS Core 6.0.0开放的多媒体管线服务(AV Pipeline Kit),帮助媒体应用开发者降低创新功能的开发难度。通过定义插件的标准接口和数据流在插件之间的流转方式,开发者只需要按照标准接口完成插件开发,就可以迅速构建出新型的媒体场景。
多媒体管线服务(AV Pipeline Kit)定义了一套插件标准接口,且已经内置了对插件的数据流管理、线程管理、内存管理、消息管理等,开发者只需要实现插件的核心处理逻辑即可,无需关注线程同异步、流控、音视频同步等逻辑。目前已预置了3个可应用在播放场景的Pipeline:视频播放、视频超分、声音事件检测,并提供Java接口供开发者使用,同时也支持开发者通过C++接口直接调用单个预置插件。若预置插件或预置Pipeline不满足使用要求,开发者可以自定义插件、自定义Pipeline。
技术方案
视频超分
下面我们详细描述内置的高性能视频超分插件,穿插在视频流的解码和显示流程之间,将低分辨率视频实时转换成高分辨率视频,改善视频清晰度,增加视频细节表现力,提升用户观看体验。
开发准备
1. 新建Android Studio工程,修改工程级build.gradle文件如下
在“allprojects > repositories”里面增加Maven仓地址。
allprojects {repositories {google()jcenter()maven {url 'https://developer.huawei.com/repo/'}}
}
2. 修改项目级build.gradle文件如下
targetSdkVersion设为28;并在dependencies中添加编译依赖。
dependencies {implementation 'com.huawei.hms:avpipelinesdk:6.0.0.302'implementation 'com.huawei.hms:avpipeline-aidl:6.0.0.302'implementation 'com.huawei.hms:avpipeline-fallback-base:6.0.0.302'implementation 'com.huawei.hms:avpipeline-fallback-cvfoundry:6.0.0.302'
}
3. 配置manifest
修改AndroidManifest.xml文件,添加读取外部存储的权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
4. 同步工程
点击工具栏中的gradle同步图标,完成“build.gradle”文件的同步,将相关依赖下载到本地。
开发步骤
详细示例代码请参见GitHub
1. 动态申请存储权限
String[] permissionLists = {Manifest.permission.READ_EXTERNAL_STORAGE
};
int requestPermissionCode = 1;
for (String permission : permissionLists) {if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, permissionLists, requestPermissionCode);}
}
2. 初始化AV Pipeline框架
Context context = getApplicationContext();
boolean ret = AVPLoader.initFwk(context);
if(!ret) return;
3. 创建MediaPlayer实例
播放过程的控制由该实例来完成。
MediaPlayer mPlayer = MediaPlayer.create(MediaPlayer.PLAYER_TYPE_AV);
if (mPlayer == null) return;
4. 设置graph配置文件
AV Pipeline框架依赖于该配置文件来编排各个插件。此外还需要将MEDIA_ENABLE_CV的值设置为1,使能视频超分插件。
MediaMeta meta = new MediaMeta();
meta.setString(MediaMeta.MEDIA_GRAPH_PATH, getExternalFilesDir(null).getPath() + "/PlayerGraphCV.xml");
meta.setInt32(MediaMeta.MEDIA_ENABLE_CV, 1);
mPlayer.setParameter(meta);
5. 设置以下参数后调用prepare接口,启动MediaPlayer准备工作。
若需要监听某些事件,通过setOnPreparedListener、setOnErrorListener等接口设置回调函数。(可选)
// 设置视频渲染的surface
SurfaceView mSurfaceVideo = findViewById(R.id.surfaceViewup);
SurfaceHolder mVideoHolder = mSurfaceVideo.getHolder();
mVideoHolder.addCallback(new SurfaceHolder.Callback() {// 用户自定义回调函数内容,可参考codelab_视频播放
});
mPlayer.setVideoDisplay(mVideoHolder.getSurface());
// 设置待播放媒体文件的路径
mPlayer.setDataSource(mFilePath);
// 若需要监听某些事件,则还需要通过setXXXListener接口设置回调函数
// 例如需要监听prepare完成的事件,需进行如下设置
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Override public void onPrepared(MediaPlayer mp, int param1, int param2, MediaParcel parcel) {// 用户自定义回调函数内容}
});
mPlayer.prepare();
6. 调用start开始播放
mPlayer.start();
7. 调用stop停止播放
mPlayer.stop();
8. 销毁播放器
mPlayer.reset();
mPlayer.release();
9. 其他注意事项
视频超分插件的约束详见文档
访问华为多媒体管线服务官网,了解更多相关内容
获取华为多媒体管线服务开发指导文档
华为多媒体管线服务开源仓库地址:GitHub、Gitee
华为HMS Core官方论坛
解决集成问题请到Stack Overflow
点击右上角头像右方的关注,第一时间了解HMS Core最新技术~
媒体应用视频超分AI神器!360P视频一键转换HD相关推荐
- AI视频超分工具,720P视频一键转8K!
"曾经沧海难为水,除却巫山不是云" ,一旦买了4K屏之后,就感觉已经无法忍受720P的"渣"画质和尺寸.但是就目前的情况来看,还有大量的视频都处在720P或者1 ...
- 揭开“视频超分”黑科技的神秘面纱
在看电影时,有一幕大家应该都非常熟悉,警察从证据图片中选取一块区域放大,再放大,直到一个很小的目标变得清晰可见,从而发现重要的线索.现实中是不是真的有这样的技术,可以把模糊的小图变得清晰?答案是,一定 ...
- 即插即用!视频超分中的涨点神器:iSeeBetter
CNN让超分结果更真实,GAN让超分结果更丰满,所以CNN+GAN=GOOD! 添加一个鉴别器组件就能使结果增加0.32dB,即插即用,涨点神器!是否在其他的CNN架构上也可行,还需实验验证. 题目: ...
- AI视频超分升级版,720P转4K效果更赞!
如何将图片放大又不损失画质,是很长一段时间内,很多人的追求.直到AI超分技术的出现,这种追求已经成为可能.更让人欣喜的是,现在连视频也可以做到.前不久介绍过Topazlabs推出的视频增强软件Topa ...
- AI视频增强 -- Topaz 视频超分 | Topaz Video Enhance AI | 【软件试用】
视频增强 – Topaz 视频超分 | 软件试用 视频超分重建 -->低分辨率 - 转换 高清分辨率 1920 x 1080.4k.8k 文章目录 ❤️ 视频增强 -- 软件试用
- 传统图像处理与深度学习又一结合:时空多尺度非局部自相似集成视频超分
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 本文将传统图像处理中的自相似性 ...
- 入选CVPR 2022!一举打败16个同类模型,视频超分比赛冠军算法!
来源:量子位 如何让模糊的老片变高清? AI的答案是超分辨率算法: 现在,在视频超分领域,有一个强大的算法拿下了超分比赛NTIRE 2021三冠一亚的优异成绩,登上了CVPR 2022. 它的名字叫做 ...
- 一举打败16个同类模型,视频超分比赛冠军算法入选CVPR 2022,来自商汤南洋理工大学...
丰色 发自 凹非寺 量子位 | 公众号 QbitAI 如何让模糊的老片变高清? AI的答案是超分辨率算法: 现在,在视频超分领域,有一个强大的算法拿下了超分比赛NTIRE 2021三冠一亚的优异成绩, ...
- 【论文解读】传统图像处理与深度学习又一结合:时空多尺度非局部自相似集成视频超分...
作者丨Happy 编辑丨极市平台 导读 本文将传统图像处理中的自相似性.金字塔等思路与深度学习相结合进行视频超分,得到了SOTA指标,并为传统图像处理思路与深度学习提供了一个新的结合点.>> ...
- 对于霸榜视频超分领域的VRT方法的深度解读
(如需转载等事宜请联系"我爱计算机视觉") 作者单位:苏黎世联邦理工大学.Meta.鲁汶大学 论文链接:https://arxiv.org/pdf/2201.12288.pdf 代 ...
最新文章
- 【组队学习】【27期】青少年编程(Turtle)
- c语言s开头的函数以及作用,C语言函数大全-s开头-完整版.doc
- 技术架构委员需要关注哪些问题
- CentOS 卸载OpenJdk和Tomcat开机启动
- Vue009_过渡动画
- Hadoop之Flume详解
- UE4在VS2013中各个编译配置代表意义
- openmeetings2.0安装和开发
- 【STL源码剖析】总结笔记(1):开篇
- 【数据结构 严蔚敏版】 链表基本操作
- VB6制作一个简单小程序(税收计算)
- Turbo码,接近完美的编码
- visio怎么画球_cad怎么画装配图
- Google趋势(Trends)有趣的关键词
- My Visual DataBase(数据库编程软件)v5.3免费版
- 长安大学转计算机专业,长安大学本科学生转换专业管理办法
- 6月30日,入职感悟、未来规划、本周工作总结,记录印象深刻的BUG。
- P1061 [NOIP2006 普及组] Jam 的计数法
- Flutter2.0重磅发布!带你一文打尽Flutter Engage
- java 获取当前时间的三种方法
热门文章
- Curious Cupid
- 单片机延时问题20问
- 这家机场扶梯安装“智能管家”,扶梯消毒仪现高招,绝了!
- linux邮件客户端配置文件,在Deepin V20下配置Evolution邮件客户端,添加新邮箱全过程...
- 基于DDD的微服务设计和开发实战
- 对闰年和平年计算均值
- ESLint和Prettier的配置
- Kubernetes 报错小结
- mysql数据库怎么该用户名和密码_如何修改MySql数据库的用户名和密码?
- DayDayUp:2019.12.31罗振宇2020年跨年演讲《时间的朋友》读后有感—思维决定一个人的上限,能力决定一个人的下限