OpenHarmony媒体子系统

Gstreamer 应用开发:1-基础介绍 介绍开始围绕如何用命令实现一个音视频混合,或者单独的音频,和单独的视频文件如何实现播放,并逐步开始使用C语言程序来实现之前我们用命令行来实现的功能 阅读详情

OpenHarmony媒体子系统

简介

媒体子系统为开发者提供一套简单且易于理解的接口,使得开发者能够方便接入系统并使用系统的媒体资源。

媒体子系统包含了音视频、相机相关媒体业务,提供以下常用功能:

  • 音频播放和录制。
  • 视频播放和录制。
  • 相机拍照和录制。

系统架构

图 1 OpenHarmony媒体子系统架构图

  • Media: 为应用提供播放、录制等接口,通过跨进程调用或直接调用方式,调用媒体引擎Gstreamer、Histreamer或其它引擎。
    • mini设备上,Media部件调用Histreamer支持音频播放等功能。
    • small设备上,Media部件调用recorder_lite支持音视频录制,默认调用player_lite支持音视频播放,通过设置系统属性变量debug.media_service.histreamer为1使用histreamer。详细设置方法参见syspara系统属性组件使用说明或者参见syspara模块代码。
    • standard设备上,Media部件调用Gstreamer支持音视频播放、音视频录制。
  • Audio: Audio部件支持音频输入输出、策略管理、音频焦点管理等功能。
  • Camera: Camera部件提供相机操作接口,支持预览、拍照、录像。
  • Image: Image部件支持常见图片格式的编解码。
  • MediaLibrary: MediaLibrary支持本地和分布式媒体数据访问管理。
  • Histreamer: 轻量级媒体引擎,支持文件/网络流媒体输入,支持音视频解码播放,支持音视频编码录制,支持插件扩展。
  • Gstreamer: 开源GStreamer引擎,支持流媒体、音视频播放、录制等功能。

目录

仓目录结构如下:

/foundation/multimedia                                 # 媒体子系统业务代码
├── audio_lite                                         # 小型系统音频模块
│   ├── figures                                        # 小型系统音频架构和流程图
│   ├── frameworks                                     # 小型系统音频框架实现
│   └── interfaces                                     # 小型系统音频模块接口
├── audio_standard                                     # 标准系统音频模块
│   ├── figures                                        # 标准系统音频架构和流程图
│   ├── frameworks                                     # 标准系统音频框架实现
│   ├── interfaces                                     # 标准系统音频模块接口
│   ├── sa_profile                                     # 标准系统音频服务配置
│   └── services                                       # 标准系统音频服务实现
├── camera_lite                                        # 小型系统相机模块
│   ├── figures                                        # 小型系统相机架构和流程图
│   ├── frameworks                                     # 小型系统相机框架实现
│   └── interfaces                                     # 小型系统相机模块接口
├── camera_standard                                    # 标准系统相机模块
│   ├── figures                                        # 标准系统相机架构和流程图
│   ├── frameworks                                     # 标准系统相机框架实现
│   └── interfaces                                     # 标准系统相机模块接口
├── media_lite                                         # 小型系统播放录制模块
│   ├── figures                                        # 小型系统播放录制架构和流程图
│   ├── frameworks                                     # 小型系统播放录制框架实现
│   ├── interfaces                                     # 小型系统播放录制模块接口
│   └── services                                       # 小型系统播放录制模块服务
├── media_standard                                     # 标准系统播放录制模块
│   ├── figures                                        # 标准系统播放录制架构和流程图
│   ├── frameworks                                     # 标准系统播放录制框架实现
│   └── interfaces                                     # 标准系统播放录制模块接口
├── histreamer                                         # HiStreamer媒体引擎
│   └── engine                                         # 媒体引擎
│       ├── player                                     # 播放器封装
│       ├── foundation                                 # 基础工具
│       ├── pipeline                                   # Pipeline框架
│       └── plugin                                     # 插件框架
│           └── plugins                                # 平台软件插件
└── utils                                              # 媒体公共模块
    └── lite                                           # 小型系统媒体公共模块
        ├── figures                                    # 小型系统媒体公共模块架构和流程图
        ├── hals                                       # 小型系统媒体公共硬件抽象接口
        ├── interfaces                                 # 小型系统媒体公共模块接口
        └── src                                        # 小型系统媒体公共模块框架实现

约束

部分音视频格式的硬件编码、解码功能依赖设备的支持。

使用说明

如架构图示意,媒体提供了三大类功能接口,开发者可以根据使用诉求,综合使用一类或多类接口:

  • 应用开发者使用媒体接口实现录像、预览和播放音视频,使用可以参考多媒体开发指南。
  • 当使用简单播放录制功能时,可以使用Player和Recorder快速完成播放和录制功能。
  • 提供了一组控制相机的有效接口,可以让用户方便开发使用相机。
  • 开发者先创建camerakit组件对象,注册各种事件回调,这些事件回调是用来响应多媒体模块中事件响应的,之后调用创建camera就可以创建一个操作camera资源的对象,使用这个对象可以启动预览、录像或抓拍取流,及设置取流的相关参数。

安装

请提前加载内核及相关驱动,参考内核及驱动子系统readme。

相关仓

multimedia_camera_lite

multimedia_audio_lite

multimedia_media_lite

multimedia_utils_lite

multimedia_histreamer

multimedia_camera_standard

multimedia_audio_standard

multimedia_media_standard

【gstreamer】入门介绍 gstreamer 概念介绍 阅读详情

相关推荐

从零开始成为GStreamer专家——基于Windows的GStreamer从源码下载、编译到开发

写一个自己的Hello,Word! 代码下载 一、GStreamer下载 到Sign up · GitLabfreedesktop.org GitLab loginhttps://gitlab.freedesktop.org/users/sign_up上注册一个用户。 在PC机上用ssh-keygen -t rsa -C "yourname@yourhost.com"生成id_rsa.pub值,把这个值贴到下面Key框里,如果这一步不会,请搜索参考ssh-keygen的用法。 git clo...

intel1985的专栏 1万+

Gstreamer基础讲解

gstreamer介绍

qq_37117214的博客 1万+

鸿蒙OpenHarmony【媒体之拍照开发】子系统

使用Camera产生图片帧(拍照)。

asd95279527p的博客 990

Gstreamer概述

Gstreamer概述

jinking01的专栏 4254

鸿蒙OpenHarmony【媒体之相机开发】子系统

相机是OpenHarmony多媒体进程提供的服务之一,提供了相机的录像、预览、拍照功能,支持多用户并发取流。

asd95279527p的博客 935

【鸿蒙南向开发】OpenHarmony 源码解析之多媒体子系统(camera)

有很多小伙伴不知道该从哪里开始学习鸿蒙开发技术?也不知道鸿蒙开发的知识点重点掌握的又有哪些?自学时频繁踩坑,导致浪费大量时间。结果还是一知半解。所以有一份实用的鸿蒙(HarmonyOS NEXT)全栈开发资料用来跟着学习是非常有必要的。

HarmonyOS_001的博客 1400

OpenHarmony媒体子系统详解

图1 OpenHarmony媒体子系统架构图。OpenHarmony媒体子系统为开发者提供一套简单且易于理解的接口,使得开发者能够方便接入系统并使用系统的媒体资源。2、OpenHarmony媒体子系统常用功能。5、OpenHarmony媒体子系统构成简介。├── frameworks # 框架代码。└── test # 测试代码。3、OpenHarmony媒体子系统架构。│ └── kits # 对外接。├── interfaces # 接口。1、OpenHarmony媒体子系统。

程序猿老樊的博客 1327

关于使用vcpkg下载osgearth遇到的问题

注意--x-manifest-root=后面跟着的E:\gitproject\osgearth-osgearth-3.5\vcpkg是你下载的源码解压缩后vcpkg.json的文件地址,然后等待编译完成。安装vcpkg后使用vcpkg install osgearth:x64-windows安装好osgearth并且导入项目使用时,发现无法运行官方文档中示例的main.cpp。这里写一种自己用过的使用vcpkg安装osgearth3.5的方法,源码,打开vcpkg所在的命令行,执行。示例main.cpp。

m0_61776040的博客 1519

OpenHarmony子系统开发 - 媒体音视频

OpenHarmony音视频包括音视频播放和录制。OpenHarmony音视频播放模块支持音视频播放业务的开发,主要包括音视频文件和音视频流播放、音量和播放进度控制等。OpenHarmony录制模块支持音视频录制业务的开发,提供音视频录制相关的功能,包括设置录制视频画面尺寸、音视频编码码率、编码器类型、视频帧率、音频采样率、录制文件输出格式等。

__Benco的博客 1051

课题申报新手入门必备指南!利用AI辅助搞定 6大关键部分,高效提升申报成功率(附AI提示词)

以下是我(或团队)与本课题相关的已有基础:【如:承担过的公开课、校本教研活动、教学改革实践、课程建设、区级/校级课题、教学反思积累等】请你完成以下任务:1)判断哪些内容与本课题的研究目标和内容具有直接或间接关联;以下是我当前的研究设想(可能比较笼统):【填写你的研究想法 / 教学困惑 / 初步设想】,请你帮我完成以下任务:1)先判断该设想中隐含的核心研究问题是什么;以下是我目前拟定的研究目标,请你从课题评审视角进行校正:【逐条粘贴你已有的研究目标】,请你帮我:1)判断每个目标是否具体、清晰、可评估;

智能AI让学术科研更容易 911

CodeX 登录报错 os error 10013?一键修复 CodeX 无法登录问题(亲测有效)

CodeX 登录时报 os error 10013?本文提供快速修复方案,实测有效,彻底解决登录报错:登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013)的问题💡

XiaoqiangClub的博客 2873

OpenHarmony子系统开发 - 媒体相机

相机是OpenHarmony多媒体进程提供的服务之一,提供了相机的录像、预览、拍照功能,支持多用户并发取流。在进行应用的开发前,开发者应了解以下基本概念:视频帧视频流指的是将一系列图片数据按照固定时间间隔排列形成的数据流,每一张图片数据成为一帧,这样的一帧称为视频帧。帧速率(FPS,Frames Per Second)视频播放每秒钟刷新图片的速度,或是视频每秒的帧数,帧速率越高,视频的观感越流畅。分辨率每一帧的图片信息都是由像素点组成的,分辨率描述了一张图片中像素点的个数。

__Benco的博客 1152

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1020

直播预告丨OpenHarmony标准系统多媒体子系统之视频解读

5月19日(周四)晚上19点,OpenHarmony开源开发者成长计划知识赋能第五期“掌握OpenHarmony多媒体的框架原理”的第五节直播课,即将开播! 深开鸿资深技术专家胡浩老师,将在OpenHarmony官方社群直播间带来干货分享《OpenHarmony标准系统多媒体子系统之视频解读》,他将为大家介绍OpenHarmony多媒体视频子系统整体框架,以及代码结构、视频播放功能代码等内容。 长按下方海报扫码,即可预约直播哦~ ...

OpenHarmony_dev的博客 361

AI测试:手把手教你用AI创建流程图「喂饭教程」

本文介绍了如何利用next-ai-draw-io开源项目,通过AI快速生成专业流程图,提升测试工作效率。该工具支持自然语言交互,兼容多种AI模型(如OpenAI、Claude等),并集成draw.io图表引擎,实现实时编辑。

blues_C的博客 751

【华为机试真题 Python实现】分苹果

《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优)。A,B两个人把苹果分为两堆,A希望按照它的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算走位,12+5=9(1100+0101=9), B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多,输入苹果的数量和每个苹果重量,输出满足A的情况下获取的苹果总重量, 如果无法满足A的要

3402

直播预告|OpenHarmony标准系统多媒体子系统之相机解读

5月26日(周四)晚上19点,OpenHarmony开源开发者成长计划知识赋能第五期“掌握OpenHarmony多媒体的框架原理”的第六节直播课,即将开播! 深开鸿资深技术专家郭岳峰老师,将在OpenHarmony官方社群直播间带来干货分享《OpenHarmony标准系统多媒体子系统之相机解读》,他将为大家介绍 OpenHarmony 相机的框架层源码,包括预览、拍照和录像三大核心功能等内容。 长按下方海报扫码,即可预约直播哦~ ...

OpenHarmony_dev的博客 278

Yolov5自定义图片训练测试及模型调优(详细过程)

Yolov5自定义数据训练及测试1. 图像数据获取、标注2. 数据集划分及准备3. 配置训练参数,准备训练:3.1 修改data/训练配置xxx.yaml文件:3.2 修改models模型配置xxx.yaml文件4. 开始训练5. 测试训练后的模型: 1. 图像数据获取、标注 如果自定义训练自己的数据集,首先需要数据标注,至于数据来源可以是下载现有的开发数据集、拍照、爬虫等等。 如果是拍照、爬虫等获取的数据图片,需要进行数据标注,这个过程可以使用工具来做,但也需要一些手动操作 。。并且图片越多越好,如果

HowieXue 薛永浩的博客 10万+

直播预告丨OpenHarmony标准系统多媒体子系统之音频解读

今晚19点,OpenHarmony开源开发者成长计划知识赋能第五期“掌握OpenHarmony多媒体的框架原理”的第四节直播课,即将开播! 深开鸿资深技术专家苑春鸽老师,将在OpenHarmony官方社群直播间带来干货分享《OpenHarmony标准系统多媒体子系统之音频解读》,他将详细介绍OpenHarmony音频框架,和大家一起熟悉音频开发接口。 长按下方海报扫码,即可预约直播哦~ ...

OpenHarmony_dev的博客 313

robosuite 入门教程(一)安装与基本用法

摘要:Robosuite是基于MuJoCo的模块化机器人仿真框架,提供标准化基准测试环境和多样化机器人控制功能。作为ARISE计划的一部分,该框架支持强化学习、模仿学习等算法研究,包含程序化环境生成、多模态传感器、多种控制器及遥操作设备。支持macOS/Linux系统,提供详细安装指南和功能演示脚本,包括随机动作测试、控制器验证、域随机化等。最新版本v1.5新增人形机器人支持、全身控制器和照片级渲染功能,旨在降低机器人学习研究门槛,促进算法开发与评估。

2506_90492529的博客 1263

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OpenHarmony媒体子系统媒体引擎组件

HiStreamer作为媒体引擎,向上对接player_framework(standard设备上)或者media_lite(mini/small设备上),再对外提供应用API。这些节点的具体功能,主要在插件中实现。可以插件的形式扩展支持新的数据源、封装格式、编解码格式、输出方式。HiStreamer是一个轻量级的媒体引擎组件,提供播放、录制等场景的媒体数据流水线处理。需要C++11版本或以上。4、媒体引擎组件代码目录。

程序猿老樊的博客 604

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

OpenHarmony媒体子系统audio_lite组件

图1 媒体子系统系统架构图。audio_lite组件提供音频能力的支持。音频组件单仓的编译构建,在根目录下进行单仓的构建和编译。需要C++11版本或以上。2、音频组件代码目录。3、音频组件使用说明。

程序猿老樊的博客 321

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OpenHarmony媒体子系统media_lite组件

media_lite组件提供播放、录制、解析、解码等接口能力,并提供媒体播放录制引擎服务化能力。图1 媒体子系统系统架构图。media_lite组件单仓的编译构建,在根目录下进行单仓的构建和编译。需要C++11版本或以上。2、media_lite组件代码目录。3、media_lite组件使用说明。

程序猿老樊的博客 322

OpenHarmony媒体子系统音频组件

常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频。PCM(Pulse Code Modulation),即脉冲编码调制,是一种将模拟信号数字化的方法,是将时间连续、取值连续的模拟信号转换成时间离散、抽样值离散的数字信号的过程。以下步骤描述了如何使用。

程序猿老樊的博客 673

【直播回顾】OpenHarmony知识赋能五期第六课——子系统相机解

5月26日晚上19点,知识赋能第五期第六节课 《OpenHarmony标准系统多媒体子系统之相机解读》 ,在OpenHarmony开发者成长计划社群内成功举行。 本期课程,由深开鸿资深技术专家郭岳峰主讲,是“OpenHarmony开源开发者成长计划项目”举办的知识赋能系列直播之一。OpenHarmony开源开发者成长计划项目自2021年10月24日上线以来,在开发者中引发高度关注。短暂的6个月时间,OpenHarmony知识赋能直播课已经走过了5期,共28节课、23名技术大咖倾囊相授、2000+学生开发者

OpenHarmony_dev的博客 299

OpenHarmony媒体子系统相机组件

预览的宽和高可以配置为所支持的 640x480 或 832x480 分辨率,如果想保存到文件,可以按照拍照流程提到步骤,创建 Surface,注册监听器以监听缓冲区更新。如果用户想要切换其他 照相机,现存的相机输入和输出需要先移除并加入新的相机输入和输出(示例中使用的是photo output)15)、创建拍照输出,成功创建后将拍照输出添加到采集会话。相机组件支持相机业务的开发,开发者可以通过已开放的接口实现相机硬件的访问、操作和新功能开发,最常见的操作如:预览、拍照和录像等。

程序猿老樊的博客 756
上一篇: OpenHarmony泛Sensor子系统
下一篇: OpenHarmony分布式数据管理子系统
__Benco
博客等级 码龄12年 1772粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__Benco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值