鸿蒙(API 12 Beta3版)【AVCodec Kit简介】 音视频编码服务

AVCodec kit(Audio & Video Codec Kit,音视频编解码,封装解封装原子能力)是媒体系统中的音视频的编解码、媒体文件的解析、封装、媒体数据输入等原子能力。

能力范围

  • 媒体数据输入:媒体应用可以传入文件fd、或者流媒体url,进行后续的媒体信息解析等处理。
  • 媒体基础能力(Media Foundation):提供媒体数据处理的公共基础类型,包括[AVBuffer]、[AVFormat]等。
  • 音频编码:音频类应用(比如音频通话、音频录制等)可以将未压缩的音频数据送到音频编码器进行编码,应用可以设置编码要用到的编码格式、码率、采样率等参数,控制编码的输出,达到压缩音频文件的目的。
  • 视频编码:视频类应用(比如视频通话、视频录制等)可以将未压缩的视频数据送到视频编码器进行编码,应用可以设置编码要用到的编码格式、码率、帧率等参数,控制编码的输出,达到压缩视频文件的目的。
  • 音频解码:音频类应用(比如音频通话、音频播放器等)将音频码流通过音频解码器解码,解码后的数据可以送到音频设备播放。
  • 视频解码:视频类应用(比如视频通话、视频播放器等)将视频码流通过视频解码器解码,解码后的图像数据可以送到视频显示设备显示。
  • 媒体文件解析:在媒体应用(音视频播放器等),将本地或者网络接收到的媒体文件解析,获得音视频的码流、音视频的呈现时间、编码格式、文件的一些基本属性信息等。
  • 媒体文件封装:在媒体应用(音视频录制、音频录制等),将音视频编码器编码后的码流数据封装成媒体文件(mp4、m4a),将音视频的码流、音视频的呈现时间、编码格式、文件的一些基本属性信息等按照文件格式写入应用指定的文件中。

亮点/特征

  • 系统内部数据零拷贝:在视频解码过程,AVCodec通过回调函数提供AVBuffer给应用,由应用将要解码的sample数据写入AVBuffer,在AVCodec中数据不再需要从内存拷入硬件解码器,而是直接送入解码器解码,实现系统内数据零拷贝。
  • 视频编码、解码支持硬件加速:支持H264、H265、H265 10bit的硬件编解码。

基础概念

  • 媒体文件:携带有音视频、字幕等媒体数据的文件,如.mp4、.m4a。
  • 流媒体:可以边下载,边播放的媒体传输形式,下载协议如HTTP/HTTPS、HLS协议。
  • 音视频编码:将未压缩原序列音视频数据转换为另一种格式数据,如H264、AAC。
  • 音视频解码:将一种数据格式转换为未压缩状态的原序列音视频数据,如YUV、PCM。
  • 媒体文件封装:将音频、视频、字幕等数据以及描述信息,按照某种格式要求,写入到同一个文件中,如.mp4。
  • 媒体文件解封装:将文件中的音频、视频、字幕等媒体数据读出,解析出媒体的描述信息。

使用方式

  • 视频编解码

    视频编码的输入和视频解码的输出支持Surface模式。

    在编码和解码过程中,通过回调函数通知应用数据处理的情况;如编码过程通过回调通知应用,完成一帧编码,输出编码结果AVBuffer;在解码过程通过回调通知应用输入一帧码流到解码器解码,当解码完成也会通过回调通知应用解码完成,应用可以对数据做后续处理。

    视频编解码的逻辑如图所示。

  • 音频编解码

    音频编码的输入和音频解码的输出为PCM格式。

    在编码和解码过程中,通过回调函数通知应用数据处理的情况;如编码过程通过回调通知应用,完成一帧编码,输出编码结果AVBuffer;在解码过程通过回调通知应用输入一帧码流到解码器解码,当解码完成也会通过回调通知应用解码完成,应用可以对数据做后续处理。

    音频编解码逻辑如图所示。

  • 文件解析封装

    在文件封装环节,应用将AVBuffer送入Codec对应的接口,执行数据封装,AVBuffer可以是由上述编码输出的AVBuffer,也可以是应用创建的AVBuffer,AVBuffer中要携带有效的码流数据和相关的时间描述等信息;

    在文件解析环节,应用从Codec对应的接口获得携带有码流数据的AVBuffer,该AVBuffer可以送入上述视频和音频编解码对应接口。

    文件封装解封装逻辑如图所示。

相关推荐
Bigger6 小时前
Flutter 开发实战:解决华为 HarmonyOS 任务列表不显示 App 名称的终极指南
android·flutter·华为
KOYUELEC光与电子请努力拼搏~6 小时前
ESS艾西斯音频解码芯片ESS9039PRO特点
音视频
梧桐ty10 小时前
鸿蒙应用冷启动优化:Flutter首屏秒开与白屏治理实战
flutter·华为·harmonyos
梧桐ty11 小时前
驾驭未来:基于鸿蒙的Flutter车载应用与手机端协同实战
flutter·华为·harmonyos
音视频牛哥11 小时前
【深度选型】RTSP超低延迟播放器:自研陷阱与成熟模块的效益分析
音视频·rtsp播放器·低延迟rtsp播放器·linux rtsp播放器·windows rtsp播放器·安卓rtsp播放器·ios rtsp播放器
FrameNotWork12 小时前
HarmonyOS 教学实战(五):路由、页面生命周期与多页面架构
华为·架构·harmonyos
云和数据.ChenGuang13 小时前
鸿蒙电视的核心技术
华为·harmonyos·数据库运维工程师·运维教程
车载测试工程师13 小时前
CAPL学习-AVB交互层-媒体函数2-其他类函数待分类
学习·tcp/ip·媒体·capl·canoe
AirDroid_cn14 小时前
鸿蒙NEXT:升级系统时提示 “存储空间不足” 如何解决?
华为·harmonyos
ACP广源盛1392462567314 小时前
GSV2231G@ACP#2231G产品规格详解及产品应用分享
嵌入式硬件·计算机外设·音视频