低分辨率刷视频看了个寂寞?华为HMS Core超分辨率功能助您一招提升用户体验(1)

本文介绍了华为HMSCore6.0的AVPipeline服务如何简化视频超分辨率技术的集成,通过提供预构建的插件和SDK,使得开发者无需深入了解复杂的DL框架,轻松实现视频超分功能在Android应用中的集成。
摘要由CSDN通过智能技术生成

超分辨率,过去很复杂,现在很简单


在GitHub上随手一搜,我们就能看到数千个与超分辨率相关的项目,其中还有不少经常维护的技术合集,可以说是百花齐放。不过真到了实践阶段,你就会发现,这些开源项目不仅需要很多DL方面的框架知识,集成到项目中也是非常麻烦的事情。缺少相关技术大牛的小团队想要搞定视频超分,别说赶眼前的内容风口了,能赶下半年的内容风口就不错了。

不过最近,华为HMS Core 6.0全球上线,其新推出的多媒体管线服务(AV Pipeline Kit,简称AV Pipeline)中,提供了视频超分插件。开发者只需将AV Pipeline的SDK集成到自己的视频播放器应用中并完成UI的适配便可实现视频超分功能。

AV Pipeline框架支持在播放过程中进行视频的逐帧超分。而除视频播放Pipeline的插件外,还包含视频超分插件CVFilter。编排关系如上图所示。

话不多说,我们来实战:


1 开发准备

1.1 新建Android Studio工程,修改工程级build.gradle文件,在“allprojects > repositories”里面增加华为的Maven仓地址。

allprojects {

repositories {

google()

jcenter()

maven {url ‘https://developer.huawei.com/repo/’}

}

}

1.2 打开项目中应用级的“build.gradle”文件。在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’

}

1.3 在完成以上的配置后,点击工具栏中的gradle同步图标,完成“build.gradle”文件的

同步,将相关依赖下载到本地。


2 开发步骤

2.1 动态申请存储权限

private void handlePermission() {

String[] permissionLists = {

Manifest.permission.READ_EXTERNAL_STORAGE,

Manifest.permission.ACCESS_NETWORK_STATE

};

int requestPermissionCode = 1;

for (String permission : permissionLists) {

if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {

ActivityCompat.requestPermissions(this, permissionLists, requestPermissionCode);

}

}

}

2.2 初始化AV Pipeline框架。

private void initFwk() {

if (AVPLoader.isInit()) {

Log.d(TAG, “avp framework already inited”);

return;

}

boolean ret = AVPLoader.initFwk(getApplicationContext());

if (ret) {

makeToastAndRecordLog(Log.INFO, “avp framework load succ”);

} else {

makeToastAndRecordLog(Log.ERROR, “avp framework load failed”);

}

}

2.3 创建MediaPlayer实例。播放过程的控制由该实例来完成。

//创建MediaPlayer实例

mPlayer = MediaPlayer.create(MediaPlayer.PLAYER_TYPE_AV);

2.4 设置graph配置文件。AV Pipeline框架依赖于该配置文件来编排各个插件。此外还需要将MEDIA_ENABLE_CV的值设置为1,激活视频超分插件。

protected void setGraph() {

String path = getExternalFilesDir(null).getPath() + “/PlayerGraphCV.xml”;

MediaMeta meta = new MediaMeta();

meta.setString(MediaMeta.MEDIA_GRAPH_PATH, path);

meta.setInt32(MediaMeta.MEDIA_ENABLE_CV, 1);

mPlayer.setParameter(meta);

}

2.5 以下为视频超分Pipeline的graph配置文件PlayerGraphCV.xml。

<?xml version="1.0"?>

2.6 设置以下参数后调用prepare接口,启动MediaPlayer准备工作。

//创建MediaPlayer实例

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

!(备注:Android)**

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值