# pusher **Repository Path**: mapleSeriesX/pusher ## Basic Information - **Project Name**: pusher - **Description**: APP 直播推流 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-11-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pusher #### 介绍 APP 直播推流 (x264、faac、rtmpdump、nginx推流服务器) #### 软件架构 观察者模式 中控作为音频跟视频的调度者。 音频:在终端录音,把录音数据传给jni,jni调用faac编码,然后把编码后的数据加入到rtmp数据包 ,再在rtmp数据包加入其他必要的数据(参考aac tags 结构,推送报文),把rtmp数据包回调到中控,中控把rtmp数据包加入队列。 视频:在终端开启视频NV21格式预览,把预览数据旋转后传到jni,jni调用x264编码,然后把编码后的数据加入到rtmp数据包,再在rtmp数据包加入其他必要的数据(参考flv tags 结构,推送报文),把rtmp数据包回调到中控,中控把rtmp数据包加入队列。 中控:开启一条线程,在队列中获取需要推送的rtmp数据包,然后推给服务器。