AV多媒体组件(libav.md)

简介

libav是一个轻量级的多媒体组件,主要包含AV基础框架播放器音频服务三部分。其中AV框架采用典型的4层多媒体模型设计及面向对象的思想开发,使得用户在此基础上易于复用与扩展。

av组件中内置了一个播放器的实现,可以播放wav、mp3、m4a、amrnb、amrwb、flac、adts、opus、speex、adpcm_ms、alaw、mulaw等多种常见音频格式。同时基于播放器和YoC微服务(uService)架构实现了音频服务,支持提示音、语音合成(TTS)、音乐播放的状态切换与维护等功能,方便上层应用开发。

用户可以分别基于音频服务、播放器和AV基础框架三个不同层次开发和扩展多媒体相关功能。若需要扩展媒体格式或仅使用组件中的某一个模块,请参考AV组件适配对接文档。这三个层次之间的关系如下图所示:

主要代码层次结构

.
├── aef
├── avcodec
├── avfilter
├── avformat
├── avutil
├── icore
├── include
├── mca
├── media
├── output
├── player
├── stream
├── swresample
└── tfft

各文件夹的具体说明如下表所示:

状态 描述
aef 音效相关,当前包含sona音效算法(需商务合作)和核间音效(算法与播放器不在同一核上)
avcodec AV框架中编解码相关,主要用于mp3、aac、amr、flac等格式的解码
avfilter AV框架中定义一套过滤器机制。各filter串联,用于重采样、单双通道等处理
avformat AV框架中封装格式相关,主要用于mp3、m4a、wma等封装格式的demux处理
avutil AV相关的通用函数实现等,如fifo、url解析、http client等
icore 相关核间算法的对接实现,包含核间解码、音效、重采样、fft实现等(针对多核运算场景)
include av组件对外提供的头文件
mca mca加速器实现,包含IIR滤波器等功能(硬件相关)
media 基于YoC微服务和播放器的音频服务的实现,支持语音合成、提示音等播放和状态切换
output 音视频输出实现,当前包含类似alsa接口的音频输出实现。用户可安装ao定义进行扩展
player 播放器的实现,其依赖于AV框架中的各个层次的模块
stream AV框架中媒体接入层实现,当前包含http、file、mem、fifo取流实现等
swresample 包含单双通道转换、多种音频重采样(含本地/核间重采样)等功能实现
tfft 傅里叶变换接口封装及实现等。用户可基于此切换使用本地/核间fft功能

results matching ""

    No results matching ""