目录
目录说明
要理解 frameworks/av 模块,你可以从 media 子目录开始,它包含了多媒体播放和编解码的核心代码。
cmds
包含用于处理音频视频数据的命令行工具。
- 录屏命令
frameworks\av\cmds\screenrecord
https://blog.csdn.net/H2008066215019910120/article/details/132864163
http://www.360doc.com/content/11/0321/22/475245_103342368.shtml
include
包含了客户端和服务端共同使用的头文件。
media
包含了媒体播放和录制的核心代码,例如 libmedia,libstagefright,libnbaio 等。
services
包含了在 media 服务中使用的代码,例如 mediad 和 playback 服务。
tools
包含了用于编码和转换媒体文件的工具。
stagefright框架概述
与opencore、omx的关系
多媒体框架stagefright是android2.3后替代opencore的,Stagefright并没有完全抛弃opencore,主要是做了一个OMX层,用来引用opencore的omx-component部分。而stagefright内部而言,与opencore是完全不同的设计。
https://www.pianshen.com/article/9624953762/
基本流程
https://www.cnblogs.com/cerberspace/archive/2012/10/12/2720010.html
- stagefright媒体数据流转
播放流程:
DataSource:从本地媒体文件或者流媒体读取数据,给分离器分析;
分离器:获取文件格式和分离多路track;
解码器:将压缩格式的音轨解码为PCM数据,视频经过解码为YUV数据;
渲染器:将解码出来的视频数据经过color转换为RGB输出到屏幕;
AudioPlayer:包含了audiotrack,将音频PCM数据输出到音频设备;
PCM数据和YUV数据输入:通过camera采集的YUV数据和mic采集的PCM数据送到编码器;
编码器:压缩音视频为各种编码格式的数据;
合成器:将压缩好的数据按照文件格式写入到媒体文件;
0 条评论