0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony3.1媒体能力全景

电子发烧友开源社区 来源:HarmonyOS官方合作社区 作者:润和软件张汉孟 2022-04-25 09:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、背景

在当前全民直播时代,我们每天刷着五花八门的抖音短视频,看着各式各样电视剧、电影以及随时映入眼帘的各类视频广告等等,每天有无数的视频文件被生成、播放。我们的眼球被花里胡哨的视频疯狂的冲击,或无脑搞笑、或夸张讽刺、或鸡汤淋头、或无效科普等等,与此同时我们是否也可以想一想这些个撩人的视频是怎么在我们眼前设备播放出来的??播放一个视频文件对于OpenHarmony 3.1(以下简称OH)来说自然不在话下,这篇文章将告诉你一个视频文件(本文以MP4封装格式、H264压缩格式的的视频文件为例)是怎么在OH的设备上播放出来的。

二、OpenHarmony3.1媒体能力全景

OH技术架构如下图所示,完成视频文件播放功能的是多媒体子系统。

25e33bce-c430-11ec-bce3-dac502259ad0.png

多媒体子系统框架如下图所示:

25fe2984-c430-11ec-bce3-dac502259ad0.png

OH拉起了一个叫mediaserver的服务来处理媒体事务,并且封装了接口层包括JS接口、native接口提供给APP调用,mediaserver的核心则是引入了gstreamer(以下简称gst)框架来完成媒体功能。gstreamer是一套功能强大、兼容性好、结构清晰的开源媒体框架,这里不做赘述,后面有专文解析。OH也在gst的基础上开发了player engine来实现播放,同时也利用的gst丰富的插件资源实现几乎所有的媒体功能,当前已移植进来的开源插件包括file source、demuxer、video decoder、libav插件等等,当然也包括OH自研的video sink、memsink、Codec hdi插件等等。

三、H264视频播放道路

大象装进冰箱分几步,我们来看视频播放流程:

2632fe5c-c430-11ec-bce3-dac502259ad0.png

播放一个视频大致分为4步:
解协议->解封装->解压缩->送显
播放pipeline

根据视频播放的步骤,我们在OH上每一个环节都能找到对应的插件来完成:

1、对于一个本地视频文件(比如uri=file:///data/h264-640x480.mp4),对应的filesrc插件来完成文件的解析,拿到MP4文件流;

2、拿到MP4文件流后,对应的qtdemux插件来解封装,完成音视频分流,输出H264裸码流和音频流;

3、拿到H264码流后,h264parse插件开始切片,输出H264帧数据;

4、处理H264帧数据,就由avdec_h264插件来完成,一般情况会输出NV12的像素数据,当然这个解码器是基于ffmpeg的软解插件,相信不久各个芯片厂商的硬件加速解码器都会加进来;

5、至此解码的工作已经完成,后面就要根据显示的像素格式、size来对解码输出数据进行后处理(转换、缩放、裁剪等),会有Converter、Scaler、Clip插件来完成;

6、满足显示要求后就会使用suRFacesink插件完成送显。

再加上audio的插件解码出音频数据,OH的player会完成音视频同步,至此一个视频文件就会播放显示在屏幕上。

在OH为了更好的用户体验,同时也引入了一些解决性能问题的插件,比如multiqueue插件来实现buffer队列,也使用decodebin高级插件来完成解码element的选择。

最终我们可以梳理出来一条播放的pipeline:

265fbb72-c430-11ec-bce3-dac502259ad0.png

通过播放OH自带的图库播放本地H264视频,抓取log,搜索OnElementSetuPCB关键字也可以得到播放的pipeline,也进一步验证了本文的分析。

2687020e-c430-11ec-bce3-dac502259ad0.png

我们也可以使用gst-launch手动创建pipeline来验证:

gst-launch --gst-plugin-path=/system/lib/media/plugins filesrc location=/data/media/h264.mp4 ! qtdemux ! h264parse ! avdec_h264 ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! surfacememsink

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 视频
    +关注

    关注

    6

    文章

    1999

    浏览量

    74664
  • 开源
    +关注

    关注

    3

    文章

    4049

    浏览量

    45596
  • OpenHarmony
    +关注

    关注

    31

    文章

    3928

    浏览量

    20738
  • 润和软件
    +关注

    关注

    1

    文章

    379

    浏览量

    1978

原文标题:OpenHarmony 3.1 H264 视频播放之路

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TE Connectivity Raychem USB 3.1 电缆技术解析与应用指南

    TE Connectivity / Raychem USB 3.1电缆的数据速率高达10GB/s,完全支持传统的USB 2.0和全USB 3.1电源。这些USB 3.1电缆设计用于高速数据速率,带宽
    的头像 发表于 11-07 11:17 292次阅读
    TE Connectivity Raychem USB <b class='flag-5'>3.1</b> 电缆技术解析与应用指南

    五大电磁频谱管理系统:原理、架构与应用全景解析

    五大电磁频谱管理系统:原理、架构与应用全景解析
    的头像 发表于 09-26 10:21 349次阅读
    五大电磁频谱管理系统:原理、架构与应用<b class='flag-5'>全景</b>解析

    芯盾时代入选2025年中国网络安全市场全景

    近日,数说安全正式发布《2025年中国网络安全市场全景图》(以下简称“全景图”)。芯盾时代凭借领先的技术能力、优异的市场表现和良好的客户口碑,连续上榜全景图,被评选为零信任、身份认证与
    的头像 发表于 08-26 10:29 1276次阅读

    【润开鸿HH-SCDAYU800A开发板试用体验】开箱评测报告

    hdc连接和调试。 **** 开发板 简介:作为国产RISC-V+OpenHarmony+星闪技术的融合之作,支持DeepSeek,填补了高性能边缘计算开发板的市场空白。其4TOPs算力、4K多媒体能力
    发表于 07-23 09:21

    【润开鸿HH-SCDAYU800A开发板试用体验】开箱评测报告

    /存储 16GB LPDDR4X + 128GB eMMC(支持TF卡扩展) 无线模块 RTL8723DS Wi-Fi/BT4.2 + 星闪(DAYU800A新增,低延时<20μs) 多媒体能力 支持
    发表于 07-16 20:28

    媒体查询详解

    概述 媒体查询作为响应式设计的核心,在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景: 针对设备和应用的属性信息(比如显示区域、深浅
    发表于 06-25 08:26

    万里红发布服务能力全景

    北京万里红科技有限公司在第12届中国国际警用装备博览会上(5月14日-5月17日),向现场嘉宾和媒体发布了公司在公安信息化与公共安全领域的技术实力与服务能力,得到了诸多与会者的肯定。作为行业标杆企业,万里红构建了“一大体系、三大服务、四大
    的头像 发表于 05-26 10:34 773次阅读

    利尔达RedCap模组通过OpenHarmony 生态兼容性测评!

    。此次认证标志着该NR90模组在鸿蒙系统中的技术适配能力获得官方认可,为工业物联网、智能终端等设备快速融入鸿蒙生态提供了关键支持。本次认证由OpenHarmony兼容
    的头像 发表于 05-23 17:59 1408次阅读
    利尔达RedCap模组通过<b class='flag-5'>OpenHarmony</b> 生态兼容性测评!

    芯盾时代连续十一次入选安全牛《中国网络安全行业全景图》

    近日,国内知名网络安全媒体安全牛正式发布《中国网络安全行业全景图(第十二版)》(以下简称“全景图”)。芯盾时代连续十一次上榜全景图,成功入选零信任、终端安全防护、身份认证、IDaaS、
    的头像 发表于 05-07 10:53 3365次阅读

    DuxCam G2S全景相机,提供360°全景测绘解决方案

    DuxCam G2S是一款采用全局快门传感器的高分辨率高帧率全景相机,可用于全天候条件下在各类移动平台上采集全景影像。其采用全新计算平台,至高能够以7200万满分辨率、20FPS帧速率采集全景
    发表于 04-07 16:26

    Air8101工业引擎十大音频能力,你想怎么用?

    媒体工业引擎Air8101 ——主打AirUI(音频录制和播放、720P视频录制、720P LCD显示等)多媒体能力,同时也具备AirLink(Wi-Fi/以太网/蓝牙)联网能力
    的头像 发表于 02-23 15:21 694次阅读

    开工大吉,深圳触觉智能四款产品喜获开源鸿蒙XTS认证!

    深圳触觉智能继OpenHarmony3.1版本XTS认证后,再次通过4.1版本XTS认证!
    的头像 发表于 02-07 17:29 570次阅读
    开工大吉,深圳触觉智能四款产品喜获开源鸿蒙XTS认证!

    OpenHarmony程序分析框架论文入选ICSE 2025

      近日,ICSE 2025软件工程实践Track放榜,面向OpenAtom OpenHarmony(以下简称“OpenHarmony”)的ArkTS程序分析基础框架--方舟程序分析器(论文题目为
    的头像 发表于 01-02 13:41 1878次阅读
    <b class='flag-5'>OpenHarmony</b>程序分析框架论文入选ICSE 2025

    鸿蒙原生开源库ViewPool在OpenHarmony社区正式上线

    方面的实践经验。它为鸿蒙生态的开发者和应用厂商提供了一套灵活高效的跨端组件管理方案,有助于显著提升开发效率和应用性能。 作为一款专为OpenHarmony设计的原生开发库,ViewPool具备全面的功能支持,并采用了多项创新技术,例如跨端组件预创建能力、复用池自动补池子
    的头像 发表于 12-20 14:44 856次阅读

    芯海科技系列OpenHarmony3.1芯片支持智慧生态构建

    随着OpenHarmony3.1的正式发布,芯海科技作为OpenHarmony生态的重要参与者,及时推出了两款与系统适配的新品:健康测量CS1262芯片和无线连接CST85F01模组,为智慧生态的构建贡献了芯海力量。
    的头像 发表于 12-17 17:25 914次阅读
    芯海科技系列<b class='flag-5'>OpenHarmony3.1</b>芯片支持智慧生态构建