具体代码请看:NDKPractice项目的ffmpeg88livepush
ffmpeg测试流媒体服务器播放地址
windows ffmpeg下载地址
mac 和 linux 类似,进入官网下载 。
下面以windows为例测试步骤:
- 进入下载好的ffmpeg解压目录的/bin目录文件夹下
- 使用命令拉流:
ffplay.exe rtmp://192.168.1.20/myapp/mystream
1.录制声音获取 PCM 数据
使用AudioRecord
1 | /** |
2.推送视频画面到媒体房间
为什么要封装成flv
:为了不定死 h264
协议
flv 封装格式:
1 | // FLV 的封装格式 |
1 | BaseVideoPush:VideoEncoderThread |
1 | void LivePush::pushSpsPps(jbyte *spsData, jint spsLen, jbyte *ppsData, jint ppsLen) { |
1 | void LivePush::pushVideoData(jbyte *videoData, jint dataLen, jboolean keyFrame) { |
3.推送声音到媒体房间
1 | /** |
1 | void LivePush::pushAudioData(jbyte *audioData, jint dataLen) { |
4.滤镜效果处理
// 设置纹理渲染
1 | /** |