作者:润和软件 张汉孟
一、背景
在当前全民直播时代,我们每天刷着五花八门的抖音短视频,看着各式各样电视剧、电影以及随时映入眼帘的各类视频广告等等,每天有无数的视频文件被生成、播放。我们的眼球被花里胡哨的视频疯狂的冲击,或无脑搞笑、或夸张讽刺、或鸡汤淋头、或无效科普等等,与此同时我们是否也可以想一想这些个撩人的视频是怎么在我们眼前设备播放出来的??播放一个视频文件对于OpenHarmony 3.1(以下简称OH)来说自然不在话下,这篇文章将告诉你一个视频文件(本文以MP4封装格式、H264压缩格式的的视频文件为例)是怎么在OH的设备上播放出来的。
二、OpenHarmony3.1媒体能力全景
OH技术架构如下图所示,完成视频文件播放功能的是多媒体子系统。
多媒体子系统框架如下图所示:
OH拉起了一个叫mediaserver的服务来处理媒体事务,并且封装了接口层包括JS接口、native接口提供给APP调用,mediaserver的核心则是引入了gstreamer(以下简称gst)框架来完成媒体功能。gstreamer是一套功能强大、兼容性好、结构清晰的开源媒体框架,这里不做赘述,后面有专文解析。OH也在gst的基础上开发了player engine来实现播放,同时也利用的gst丰富的插件资源实现几乎所有的媒体功能,当前已移植进来的开源插件包括file source、demuxer、video decoder