前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >四、小程序如何抽帧

四、小程序如何抽帧

原创
作者头像
alphaair
修改2024-04-30 10:20:18
1320
修改2024-04-30 10:20:18
举报

随着深度学习推理技术的不断发展,让小型设备运行深度学习成为可能,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让云上运动会、线上运动会、健身打卡、AI体育指导等概念空前火热。那么,能否将这些在APP成功应用的场景搬上微信小程序,分享这些概念的红利呢?本系列文章就带您一步一步从零开始开发一个AI运动小程序,本系列文章将使用“AI运动识别”小程序插件,插件详情可以前往微信服务市场搜索相应插件。

一、微信小程序抽帧相关API

微信小程序抽帧需要用到Camera组件和CameraContext组件,可以参考官网文档:

1.1、Camera组件

https://developers.weixin.qq.com/miniprogram/dev/component/camera.html

1.2、CameraContext API

https://developers.weixin.qq.com/miniprogram/dev/api/media/camera/wx.createCameraContext.html

二、Camera组件设置

相机组件的frame-size属性直接影响到抽帧后的图像数组大小,所以建议设为medium以下,以便兼顾中低机型。

代码语言:html
复制
<camera id="preview" class="preview" style="width:100vw;height:80vh;" flash="off" device-position="back"
	resolution="high" frame-size="low" @initdone="onCameraReady">
</camera>

三、调用API抽帧

代码语言:javascript
复制
...
onCameraReady(e) {
	const context = wx.createCameraContext();
	const listener = context.onCameraFrame((frame) => {
	//frame.data图像数组将用于后续的人体识别
		console.log(frame.data instanceof ArrayBuffer, frame.width, frame.height);
	});
	listener.start();
}
...

以上便是微信小程序抽帧的代码,实际应用中还需要对抽帧进行流控,以便达到最佳的性能,可以直接使用Demo项目中的camera-device.js封装好的代码。

四、抽帧的注意事项

4.1 抽取的帧图像大小与camera组件大小是不一致的!!!

这是微信小程序的官方提示,并未说明具体的原因。即:假设给camera组件设定为宽480px640px,但抽取的帧就不一定是同camera大小宽480px640px了,具体为frame-size大小决定的,实际要上抽取帧后才能确定。

至于导致这个问题的原因,我们认为是抽帧相接口,需要根据相机支持的分辨率,匹配相应的视频格式,进行视频流编码后返回给抽帧接口。

4.2 全屏适配的问题。

我们建议在实际场景应用中,特别是要开启视频骨骼图的场景,camera骨骼图canvas保持与帧大小的同比绽放。所以如果要使用全屏,需要自己做适配。

4.3 抽帧参数选择

建议将frame-size设为smallresolution设为high,抽帧FPS设为12即可满足大部分场景应用。

下篇我们将为您介绍如何进行人体识别,敬请期待...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、微信小程序抽帧相关API
    • 1.1、Camera组件
      • 1.2、CameraContext API
      • 二、Camera组件设置
      • 三、调用API抽帧
      • 四、抽帧的注意事项
        • 4.1 抽取的帧图像大小与camera组件大小是不一致的!!!
          • 4.2 全屏适配的问题。
          • 4.3 抽帧参数选择
          相关产品与服务
          智能识别
          腾讯云智能识别(Intelligent Identification,II)基于腾讯各实验室最新研究成果,为您提供视频内容的全方位识别,支持识别视频内的人物、语音、文字以及帧标签,对视频进行多维度结构化分析。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com