当前位置: 首页 > article >正文

鸿蒙 Media Kit(媒体服务):音视频播放、录制

本文同步发表于微信公众号微信搜索 程语新视界 即可关注每个工作日都有文章更新Media Kit媒体服务是鸿蒙系统中用于开发音视频播放或录制功能的核心模块。无论是开发音乐播放器、视频播放器还是实现音视频录制、屏幕录制都离不开Media Kit。一、Media KitMedia Kit媒体服务用于开发音视频播放或录制的各类功能。例如使用SoundPool实现简单的提示音当设备接收到新消息时发出短促的滴滴声使用AVPlayer实现音乐播放器循环播放一首音乐Media Kit 七大模块模块功能AVPlayer播放音视频SoundPool播放短音频AVRecorder录制音视频AVScreenCapture录制屏幕AVMetadataExtractor获取音视频元数据AVImageGenerator获取视频缩略图AVTranscoder视频转码亮点/特征特征说明轻量媒体引擎使用较少的系统资源线程、内存支持pipeline灵活拼装支持HDR视频支持HDR Vivid的采集与播放带来更炫彩的体验支持音频池一次加载多次低时延播放相机快门、系统通知等说明本文仅针对音视频播放或录制本身由media模块提供相关能力不涉及UI界面、图形处理、媒体存储或其他相关领域功能。流媒体播放相关概念概念说明网络协议HLS、HTTP-FLV、HTTP/HTTPS容器格式mp4、mkv、mpeg-ts编码格式h264、h265播放过程网络协议 → 容器格式 → 音视频编解码 → 图形/音频渲染二、AVPlayer音视频播放AVPlayer主要工作是将Audio/Video媒体资源如mp4、mp3、mkv、mpeg-ts等转码为可供渲染的图像和可听见的音频模拟信号并通过输出设备进行播放。应用只需要提供流媒体来源不负责数据解析和解码就可达成播放效果。音频播放交互流程音乐应用 → AVPlayer接口 → Player Framework → Audio Framework → 音频HDI ↓ 音频PCM数据流说明应用将媒体资源传递给AVPlayer接口Player Framework将音频PCM数据流输出给Audio FrameworkAudio Framework输出给音频HDI实现音频播放视频播放交互流程应用 → XComponent → AVPlayer接口 → Player Framework ↓ 音频PCM → Audio Framework → 音频HDI 视频ES → 解码HDI → Graphic Framework → 显示HDI参与模块应用、XComponent、Player Framework、Graphic Framework、Audio Framework、显示HDI、音频HDI支持的协议协议类型协议描述本地点播支持file descriptor禁止file path网络点播支持http/https/hls/dash网络直播支持hls/http-flv支持的音频播放格式音频容器规格描述m4aAACaacAACmp3MP3oggVORBISwavPCMflacFLACamrAMRapeAPE支持的视频播放格式视频容器规格描述分辨率mp4视频H265/H264音频AAC/MP34K/1080P/720P/480P/270Pmkv视频H265/H264音频AAC/MP34K/1080P/720P/480P/270Pts视频H265/H264音频AAC/MP34K/1080P/720P/480P/270P支持的字幕格式字幕容器支持的协议加载方式srt本地点播(fd)/网络点播外挂字幕vtt本地点播(fd)/网络点播外挂字幕webvtt网络点播(dash协议)内置字幕注意当dash协议存在内置字幕时不支持添加外挂字幕。三、SoundPool短音频播放SoundPool提供短音频的播放能力应用只需要提供音频资源来源不负责数据解析和解码就可达成播放效果。适用于相机快门音效、系统通知音效等场景。交互流程音乐应用 → SoundPool接口 → Player Framework → Audio Framework → 音频HDI ↓ 音频PCM数据流支持的协议协议类型协议描述本地点播支持file descriptor禁止file path支持的音频播放格式音频容器规格描述m4aAACaacAACmp3MP3oggVORBISwavPCM四、AVRecorder音视频录制AVRecorder主要工作是捕获音频信号、接收视频信号完成音视频编码并保存到文件中。支持开始录制、暂停录制、恢复录制、停止录制、释放资源等功能。交互流程音频录制应用 → AVRecorder接口 → 录制服务 → Audio Framework → 音频HDI → 编码封装 → 文件 **视频录制** 应用 → AVRecorder接口 → 录制服务 ← 相机服务(Camera Framework) → 视频HDI ↓ 视频编码HDI → 封装 → 文件支持的音频源音频源类型说明mic系统麦克风作为音频源输入支持的视频源视频源类型说明surface_yuv输入surface中携带的是raw datasurface_es输入surface中携带的是ES data支持的音视频编码格式编码格式说明audio/mp4a-latm音频/mp4a-latm类型video/hevc视频/hevc类型H.265video/avc视频/avc类型H.264audio/mpeg音频/mpeg类型audio/g711mu音频/g711-mulaw类型audio/3gpp音频/amr-nb类型audio/amr-wb音频/amr-wb类型支持的输出文件格式输出文件格式说明mp4视频容器格式m4a音频容器格式mp3音频容器格式wav音频容器格式amr音频容器格式五、AVScreenCapture屏幕录制AVScreenCapture主要工作是捕获音频信号、视频信号并通过音视频编码将屏幕信息保存到文件中支持录屏存文件和录屏取码流两套接口。交互流程应用 → AVScreenCapture接口 → 录屏框架 ↓ 音频 → Audio Framework → 音频捕获 视频 → 图形图像服务 → 视频捕获 ↓ 编码封装 → 文件支持的音频源音频源类型说明MIC系统麦克风作为音频源输入ALL_PLAYBACK系统内录作为音频源输入支持的视频源视频源类型说明SURFACE_RGBA输出Buffer是rgba data支持的音频编码格式音频编码格式说明AAC_LCAAC_LC类型支持的视频编码格式视频编码格式说明H264H264类型支持的输出文件格式输出文件格式说明mp4视频容器格式m4a纯音频容器格式六、AVMetadataExtractor元数据提取AVMetadataExtractor主要用于获取音视频元数据包括音频标题、艺术家、专辑名称、时长等详细信息视频元数据获取流程与音频类似但无法获取专辑封面使用流程创建AVMetadataExtractor ↓ 设置资源 ↓ 获取元数据 ↓ 获取专辑封面可选仅音频 ↓ 销毁资源支持的音视频源参考媒体数据解析。七、AVImageGenerator视频缩略图AVImageGenerator主要用于获取视频缩略图可以从原始媒体资源中获取视频指定时间的视频帧。支持的视频源参考视频解码。八、AVTranscoder视频转码AVTranscoder主要用于将已压缩编码的视频文件按照指定参数转换为另一种格式的视频。转码能力能力说明编码参数转换修改源视频文件的编码参数格式、码率和封装格式HDR转SDR支持将HDR VIVID视频转换为SDR视频分辨率调整支持转码时降低视频分辨率分辨率限制限制说明原视频分辨率不高于4K目标视频分辨率不低于240p宽高关系目标视频宽、高不能大于源视频宽、高且不能设置为奇数支持的源视频格式依赖于系统解码器和解封装支持的格式参考AVCodec支持的格式。支持的目标视频格式封装格式视频编码类型音频编码类型mp4AVCH.264、HEVCH.265AAC轨道数限制限制说明字幕轨不支持转码后丢弃视频轨仅输出一条默认选择第一条音频轨仅输出一条默认选择第一条九、汇总对比模块功能输入输出AVPlayer音视频播放本地/网络媒体资源音频/视频输出SoundPool短音频播放本地音频文件音频输出AVRecorder音视频录制麦克风/相机mp4/m4a/mp3/wav/amrAVScreenCapture屏幕录制屏幕麦克风/内录mp4/m4aAVMetadataExtractor元数据提取音视频文件标题/艺术家/时长等AVImageGenerator视频缩略图视频文件视频帧图片AVTranscoder视频转码视频文件转码后视频文件

相关文章:

鸿蒙 Media Kit(媒体服务):音视频播放、录制

本文同步发表于微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新 Media Kit(媒体服务)是鸿蒙系统中用于开发音视频播放或录制功能的核心模块。无论是开发音乐播放器、视频播放器,还是实现音视频录制、…...

AzurLaneAutoScript:从人工操作到智能决策的游戏自动化革命

AzurLaneAutoScript:从人工操作到智能决策的游戏自动化革命 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 深夜…...

Bili2text:一键将B站视频转为文字稿的终极免费工具

Bili2text:一键将B站视频转为文字稿的终极免费工具 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 在信息爆炸的时代,Bilibili&#x…...

M5146-C2234E-250BG压力传感器测量误差如何补偿

M5146-C2234E-250BG压力传感器主要有偏移误差、灵敏度误差、线性误差和延迟误差,合理地进行压力传感器的误差补偿是应用的核心。由于这种差异,必须能够最大限度地补偿M5146-C2234E-250BG压力传感器的测量误差。这是确保传感器满足设计和应用要求的重要一…...

终极Tree of Thoughts实战指南:10个复杂问题解决案例详解

终极Tree of Thoughts实战指南:10个复杂问题解决案例详解 【免费下载链接】tree-of-thoughts Plug in and Play Implementation of Tree of Thoughts: Deliberate Problem Solving with Large Language Models that Elevates Model Reasoning by atleast 70% 项目…...

如何用Remax快速构建跨平台小程序:React开发者的终极指南

如何用Remax快速构建跨平台小程序:React开发者的终极指南 【免费下载链接】remax 使用真正的 React 构建跨平台小程序 项目地址: https://gitcode.com/gh_mirrors/re/remax Remax是一个让开发者能够使用真正的React构建跨平台小程序的强大框架。通过Remax&am…...

ATCODER ABC C题解蚁

这&#xff0c;是一个采用C精灵库编写的程序&#xff0c;它画了一幅漂亮的图形&#xff1a; 复制代码 #include "sprites.h" //包含C精灵库 Sprite turtle; //建立角色叫turtle void draw(int d){for(int i0;i<5;i)turtle.fd(d).left(72); } int main(){ …...

终极Resemble.js图像分析指南:从基础API到高级功能详解

终极Resemble.js图像分析指南&#xff1a;从基础API到高级功能详解 【免费下载链接】Resemble.js Image analysis and comparison 项目地址: https://gitcode.com/gh_mirrors/re/Resemble.js Resemble.js是一款强大的图像分析与比较工具&#xff0c;能够帮助开发者轻松实…...

世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf贡

1. 智能软件工程的范式转移&#xff1a;从库集成到原生框架演进 在生成式人工智能&#xff08;Generative AI&#xff09;从单纯的文本生成向具备自主规划与执行能力的“代理化&#xff08;Agentic&#xff09;”系统跨越的过程中&#xff0c;.NET 生态系统正在经历一场自该平台…...

Gemma-3-12b-it部署成本优化:INT4量化后显存降低60%且精度损失<2%实测

Gemma-3-12b-it部署成本优化&#xff1a;INT4量化后显存降低60%且精度损失<2%实测 1. 引言&#xff1a;当大模型遇见成本挑战 最近在折腾Gemma-3-12b-it这个多模态模型&#xff0c;功能确实强大&#xff0c;既能理解文字又能看懂图片&#xff0c;128K的超长上下文用起来也…...

Klib入门指南:5分钟掌握C语言高性能通用库

Klib入门指南&#xff1a;5分钟掌握C语言高性能通用库 【免费下载链接】klib A standalone and lightweight C library 项目地址: https://gitcode.com/gh_mirrors/kl/klib Klib是一款轻量级且独立的C语言通用库&#xff0c;以其高效的性能和简洁的设计深受开发者喜爱。…...

SmolVLA企业级应用:基于.NET框架的智能业务系统集成

SmolVLA企业级应用&#xff1a;基于.NET框架的智能业务系统集成 最近和几个做企业级开发的朋友聊天&#xff0c;他们都在头疼一件事&#xff1a;公司业务系统越来越复杂&#xff0c;每天要处理大量审批、报表和客户沟通&#xff0c;人工操作效率低还容易出错。他们问我&#x…...

Ant Media Server性能优化:10个提升流媒体质量的关键技巧

Ant Media Server性能优化&#xff1a;10个提升流媒体质量的关键技巧 【免费下载链接】Ant-Media-Server Ant Media Server — Ultra-low latency streaming engine with WebRTC (~0.5s), SRT, RTMP, HLS, CMAF, adaptive bitrate, transcoding & scaling 项目地址: http…...

Ollama部署granite-4.0-h-350m:轻量模型本地运行完整教程

Ollama部署granite-4.0-h-350m&#xff1a;轻量模型本地运行完整教程 1. 为什么选择granite-4.0-h-350m 1.1 轻量级模型的优势 granite-4.0-h-350m是一个仅有350M参数的轻量级指令模型&#xff0c;专为本地部署和资源受限环境设计。相比动辄数十GB的大型模型&#xff0c;它具…...

如何用手机NFC功能控制LED灯?FSV8023芯片实战教程(含天线设计避坑指南)

手机NFC控制LED灯全攻略&#xff1a;FSV8023芯片实战与天线设计避坑 在智能家居DIY领域&#xff0c;用手机NFC功能控制LED灯具正成为创客们的新宠。这种非接触式控制方案不仅操作优雅&#xff0c;还能避免传统物理开关的磨损问题。本文将带你深入FSV8023芯片的应用实战&#xf…...

SmolVLA入门指南:理解config.json中动作维度、图像尺寸等关键参数

SmolVLA入门指南&#xff1a;理解config.json中动作维度、图像尺寸等关键参数 1. 什么是SmolVLA&#xff1f; SmolVLA是一个专门为经济实惠的机器人技术设计的紧凑高效视觉-语言-动作模型。这个模型最大的特点就是在保持高性能的同时&#xff0c;大幅降低了计算资源需求&…...

napari六种图层类型完全解析:从Image到Surface的完整教程

napari六种图层类型完全解析&#xff1a;从Image到Surface的完整教程 【免费下载链接】napari napari: a fast, interactive, multi-dimensional image viewer for python 项目地址: https://gitcode.com/gh_mirrors/na/napari napari是一款快速、交互式的多维图像查看器…...

国产化替代实战:HC32F460平台FreeModbus RTU从站移植与调试全记录

1. 为什么选择HC32F460进行国产化替代 最近几年&#xff0c;国产芯片的崛起给工程师们带来了新的选择。我在实际项目中接触到小华半导体的HC32F460系列芯片时&#xff0c;第一感觉就是它的性能参数相当亮眼。这款芯片采用ARM Cortex-M4内核&#xff0c;主频高达168MHz&#xff…...

StructBERT-中文-large部署案例:5个开源数据集训练的语义匹配服务

StructBERT-中文-large部署案例&#xff1a;5个开源数据集训练的语义匹配服务 1. 项目概述与核心价值 StructBERT中文文本相似度模型是一个专门针对中文语义匹配任务优化的深度学习模型。这个模型基于structbert-large-chinese预训练模型&#xff0c;使用五个高质量开源数据集…...

nanobot快速入门:超轻量级AI助手部署,支持QQ机器人智能回复

nanobot快速入门&#xff1a;超轻量级AI助手部署&#xff0c;支持QQ机器人智能回复 1. nanobot简介与核心优势 nanobot是一款受OpenClaw启发的超轻量级个人人工智能助手&#xff0c;其核心设计理念是用最精简的代码实现最实用的AI助手功能。与传统AI助手动辄数十万行代码的庞…...

【Blazor 2026技术前瞻白皮书】:一线架构师亲授3步极速接入现代Web开发栈

第一章&#xff1a;Blazor 2026技术演进全景图与战略定位Blazor 在 2026 年已全面完成从客户端渲染&#xff08;WebAssembly&#xff09;到混合执行模型的范式跃迁&#xff0c;其核心定位演变为“统一全栈组件化平台”——既可原生驱动边缘 IoT 设备上的轻量 UI&#xff0c;亦能…...

RVC效果展示:AI翻唱作品集,听听我的声音有多像

RVC效果展示&#xff1a;AI翻唱作品集&#xff0c;听听我的声音有多像 1. RVC技术简介 RVC&#xff08;Retrieval-based Voice Conversion&#xff09;是一种基于检索的语音转换技术&#xff0c;它能够通过学习目标声音的短音频样本&#xff08;通常只需10分钟左右&#xff0…...

Claude参数曝光,AI模型竞争格局再掀波澜

马斯克“手滑”&#xff0c;Claude参数浮出水面 马斯克在分享xAI的Colossus 2超算训练计划时&#xff0c;意外透露了Claude系列模型的参数规模。他表示Grok 4.2参数量为5000亿&#xff0c;是xAI目前在训最大10万亿参数模型的5%&#xff0c;同时指出Grok参数量是Sonnet的一半、O…...

SDMatte在嵌入式设备上的轻量化部署探索:基于STM32的启发

SDMatte在嵌入式设备上的轻量化部署探索&#xff1a;基于STM32的启发 1. 边缘计算时代的图像处理新挑战 在智能摄像头、无人机和工业检测设备快速普及的今天&#xff0c;边缘端图像处理需求呈现爆发式增长。传统方案依赖云端服务器处理图像数据&#xff0c;但面临延迟高、带宽…...

HUNYUAN-MT 7B翻译终端Transformer架构解析:从原理到高效部署实践

HUNYUAN-MT 7B翻译终端Transformer架构解析&#xff1a;从原理到高效部署实践 最近在折腾一个多语言翻译项目&#xff0c;需要找一个既准又快、还能在本地部署的模型。兜兜转转&#xff0c;最后把目光锁定在了HUNYUAN-MT 7B上。这不仅仅是因为它70亿的参数量听起来很唬人&…...

景观格局分析利器:GuidosToolbox 3.0 从下载到启动的完整指南(含资源)

1. 认识景观格局分析利器&#xff1a;GuidosToolbox 3.0 第一次接触景观生态分析的朋友可能会被各种专业术语吓到&#xff0c;但别担心&#xff0c;GuidosToolbox 3.0就像你的专属翻译官&#xff0c;把复杂的数学形态学变成了可视化的操作界面。这个由欧洲委员会联合研究中心开…...

R 4.5深度学习性能断崖式提升?:实测对比R 4.4 vs 4.5在ResNet50训练中GPU利用率提升47.3%的关键配置

第一章&#xff1a;R 4.5深度学习性能断崖式提升的实证发现在 R 4.5 发布后&#xff0c;多个独立研究团队通过标准化基准测试&#xff08;如 MNIST 分类、LSTM 时间序列预测及 ResNet-18 微调&#xff09;观察到训练吞吐量平均提升 3.2–5.7 倍&#xff0c;GPU 内存分配延迟下降…...

Axure疑难杂症:利用中继器制作三级下拉菜单(逻辑判断进阶)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:三级下拉菜单 主要内容:条件筛选时的逻辑判断思维,中继器使用 应用场景:复合条件下的下拉列表制作 案例展…...

Axure疑难杂症:全局变量典型应用及思考逻辑(玩转全局变量)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:全局变量典型应用 主要内容:全局变量赋值、自定义,全局变量与中继器、文本框等其他元件赋值交互 应用场景:…...

Jupyter Notebook集成GLM-4.7-Flash:交互式AI开发指南

Jupyter Notebook集成GLM-4.7-Flash&#xff1a;交互式AI开发指南 1. 引言 你是不是经常在数据分析和AI开发中遇到这样的困扰&#xff1a;写代码、调试、查看结果需要在不同工具间来回切换&#xff0c;效率低下&#xff1f;或者想要一个强大的AI助手帮你写代码、分析数据&…...