1、什么是RTMP
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。
2、方案选择
针对Android端的RTMP推流选择方案主要有两大类:
1、利用FFmpeg进行直播推流
利用FFmpeg,坑比较多,请自行百度。
2、利用开源的SDK
3、主要说明开源SDK的选择
百度云推流SDK: 官方文档
优点:官方文档说明十分详尽,30分钟可以完全了解,接口明了。
缺点:不支持对Camera的丰富操作,比如 Filter(滤镜)。只能进行简单的缩放、对焦等功能
七牛推流SDK:Github上的官方源码及说明
优点:提供丰富的接口,可以满足各种复杂的需求。需要权限验证,安全性有一定保障。提供CDN加速选择。
缺点:后端代码需要利用七牛的SDK,不过可以二次开发。
网易云推流SDK:官方文档
优点:官方文档说明比较好
缺点:直播推流地址由网易云信提供,所以限制比较大。并且还要收费。
网友评论
android推流/iOS推流
a)多分辨率选择;
b)支持横竖屏推送;
c)音视频推送、纯音频推送、纯视频推送;
d)支持边采集、边录像;
e)网络中断,本地录像继续,保证数据的完整性;
f)支持本地录像文件回放、处理;
g)采集过程中,前后摄像头切换;
h)支持第三方美颜、AR、VR接口对接;
i)完美支持文字水印、动态时间水印和图片水印;
j)支持各个厂家CDN完美对接。
android播放器/iOS播放器
a)超低延迟播放rtmp直播流;
b)完美支持多实例播放(同时播放多路);
c)支持自定义播放布局