主要包含的内容:
- 音视频编解码
- 推流 通过RTMP协议,有用到NDK
RTMP协议:基于TCP,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5(流媒体服务器)等。
针对Android端的RTMP推流的选择方案有两大类
1、利用FFmpeg进行直播推流
2、利用开源的SDK
直播的过程
这一块的音视频数据就好比是一个嫩模在直播,将数据通过rtmp协议推送到流媒体服务器,流媒体服务器通过分发的方式发送给各个客户端进行观看。当然,音视频数据这一块是有编解码的一个过程,这一块暂时不说,放在下一篇来讲解。
下面我们使用的是**ffmpeg(C库)**框架来实现RTMP推流到流媒体
那么什么是ffmpeg呢?
首先,ffmpeg是专门来处理音视频的库。它的功能有:视频转换,格式转换,视频采集,视频截图,水印等等
其次,ffmeg分为8大模块
- libavcodec-56.so 编解码使用
- libavdevice-56.so 视频采集,调用摄像头使用
- libav