1 简介
Yasea是一个Android流媒体客户端。 它将来自摄像机和麦克风的YUV和PCM数据编码为H.264 / AAC,封装在FLV中并通过RTMP传输。
这篇文章的目的是初步了解yasea的流程,为后续优化做铺垫。
分支:
master:主分支,被我修改后,支持min SDK 18.
non-gpuimage:
android-16: Android API 16+.
aac-hev2: for Youtube live broadcast that is not compatible with conventional flash media players.
特性:
[x] Android mini API 21。
[x] H.264 / AAC硬编码。
[x] H.264软编码。
[x] 带状态回调处理程序的RTMP流。
[x] 纵向和横向屏幕方向自动旋转。
[x] 前后摄像头热切换。
[x] 直播时录制到MP4。
[x] GPUImage的美颜滤镜。
[x] 支持回声消除和自动增益控制。
2 工程结构
app模块:
MainActivity:主页
AndroidManifest.xml:声明权限
library模块:
cpp:用Android.mk方式编译C/C++
libenc:jni中间层代码
libx264:用于H264软编码
libyuv:包