为什么要选RTMP
直播使用RTMP(Real-Time Messaging Protocol)协议的原因主要有以下几点:
1. 低延迟特性
RTMP被设计为实时消息传递协议,通过优化传输机制,可以实现较低的传输延迟。这对于直播来说至关重要,因为观众希望能够尽快看到主播的实时动作,并与主播进行实时互动。低延迟的特性使得RTMP成为直播行业的首选协议之一。
2. 高质量音视频传输
RTMP协议支持传输高质量的音视频数据,能够提供清晰、流畅的直播体验。这对于提升观众的观看体验、增强直播的吸引力具有重要意义。
3. 广泛的支持和兼容性
RTMP得到了广泛的支持,许多直播平台和流媒体服务都采用了RTMP作为其主要的传输协议。这种广泛的支持使得使用RTMP的直播系统能够与各种不同的设备和平台兼容,方便观众在不同设备上观看直播内容。
4. 易于集成和扩展
RTMP协议相对来说较为简单,易于实现和集成。这使得开发者能够相对容易地将RTMP集成到他们的直播应用中,并实现高效的实时传输。同时,RTMP协议也支持多种功能,如实时互动、弹幕、录制等,可以满足不同直播场景的需求。
5. 与CDN架构兼容
RTMP协议与CDN(内容分发网络)架构兼容,能够利用CDN的分布式节点加速直播内容的传输。这有助于减轻服务器的负载压力,提高直播的流畅度和稳定性。
6. 适用于多种直播场景
RTMP协议在各类直播场景中都有广泛的应用,包括体育赛事直播、无纸化场景、应急指挥调度、在线教育等。这些场景对实时性、稳定性和高质量音视频传输都有较高的要求,而RTMP协议正好能够满足这些需求。
如何选择合适的RTMP推拉流模块
选择RTMP推拉流方案,主要是考虑到功能齐全、性能稳定、低延迟、可扩展性强。
大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前、编码后数据对接,功能强大,性能优异,配合大牛直播SDK的SmartPlayer播放器,轻松实现毫秒级的延迟体验,满足大多数行业的使用场景。
平台覆盖和架构支持
支持平台 | 支持架构 |
---|---|
Windows平台 | x86 debug/release, x64 debug/release |
Linux(含麒麟操作系统) | x86_64、aarch64 |
Android平台 | armeabi-v7a, arm64-v8a, x86, x86_64 |
iOS平台 | arm64 |
功能支持
Windows平台RTMP直播推送SDK
- 音频编码:AAC/SPEEX;
- 视频编码:H.264、H.265;
- 推流协议:RTMP;
- [音视频]支持纯音频/纯视频/音视频推送;
- [屏幕/摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
- [屏幕]支持屏幕裁剪,根据帧率和推送分辨率,自动推荐码流;
- [摄像头]支持摄像头选择、分辨率设置、帧率设置;
- [摄像头]摄像头支持水平反转、垂直反转、0° 90° 180° 270°旋转;
- [屏幕]支持DXGI采集设置、启/停用Aero;
- [音频]采集麦克风;
- [音频]采集扬声器;
- [预览]支持推送端实时预览;
- 支持实时静音、取消静音;
- [对接服务器]支持自建标准RTMP服务器或CDN;
- 支持断网自动重连、网络状态回调;
- 屏幕和摄像头合成/多层合成;
- 支持窗口采集(一般不建议使用);
- 支持实时动态水印;
- 支持实时快照;
- 支持降噪处理、自动增益控制、VAD端点检测;
- 支持扬声器和麦克风混音;
- 支持外部编码前音视频数据对接;
- 支持外部编码后音视频数据对接;
- 支持RTMP扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;
- 支持特定机型硬编码;
- 支持实时音量调节;
- 支持扩展录像模块;
- 支持Unity接口;
- 支持H.264扩展SEI发送模块;
- 支持Windows7及以上版本。
—————————————————————————————————————————————-
Linux平台x64_64架构|aarch64架构RTMP直播推送SDK
- 音频编码:AAC/SPEEX;
- 视频编码:H.264;
- 推流协议:RTMP;
- [音视频]支持纯音频/纯视频/音视频推送;
- 支持X11屏幕采集;
- 支持部分V4L2摄像头设备采集;
- [屏幕/V4L2摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
- [V4L2摄像头]支持V4L2摄像头设备选择(设备文件名范围:[/dev/video0, /dev/video63])、分辨率设置、帧率设置;
- [V4L2摄像头]支持水平反转、垂直反转、0° 90° 180° 270°旋转;
- [音频]支持基于alsa-lib接口的音频采集;
- [音频]支持基于libpulse接口采集本机PulseAudio服务音频;
- [预览]支持推送端实时预览;
- [对接服务器]支持自建标准RTMP服务器或CDN;
- 支持断网自动重连、网络状态回调;
- 屏幕和摄像头合成/多层合成;
- 支持窗口采集(一般不建议使用);
- 支持实时快照;
- 支持降噪处理、自动增益控制、VAD端点检测;
- 支持扬声器和麦克风混音;
- 支持外部编码前音视频数据对接;
- 支持外部编码后音视频数据对接;
- 支持实时音量调节;
- 支持扩展录像模块;
- 支持Unity接口;
- 支持H.264扩展SEI发送模块;
- 支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9);
—————————————————————————————————————————————-
Android平台RTMP直播推送SDK
- 音频编码:AAC/SPEEX;
- 视频编码:H.264、H.265;
- 推流协议:RTMP;
- [音视频]支持纯音频/纯视频/音视频推送;
- [摄像头]支持采集过程中,前后摄像头实时切换;
- 支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
- 支持RTMP推送 live|record模式设置;
- 支持前置摄像头镜像设置;
- 支持软编码、特定机型硬编码;
- 支持横屏、竖屏推送;
- 支持Android屏幕采集推送;
- 支持自建标准RTMP服务器或CDN;
- 支持断网自动重连、网络状态回调;
- 支持实时动态水印;
- 支持实时快照;
- 支持降噪处理、自动增益控制;
- 支持外部编码前音视频数据对接;
- 支持外部编码后音视频数据对接;
- 支持RTMP扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;
- 支持实时音量调节;
- 支持扩展录像模块;
- 支持Unity接口;
- 支持H.264扩展SEI发送模块;
- 支持Android 5.1及以上版本。
—————————————————————————————————————————————-
iOS平台RTMP直播推送SDK
- 音频编码:AAC;
- 视频编码:H.264、H.265;
- 推流协议:RTMP;
- [音视频]支持纯音频/纯视频/音视频推送;
- [摄像头]支持采集过程中,前后摄像头实时切换;
- 支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
- [RTMP协议]支持RTMP推送 live|record模式设置;
- 支持前置摄像头镜像设置;
- 支持软编码、特定机型硬编码;
- 支持实时静音、取消静音;
- 支持横屏、竖屏推送;
- [对接服务器]支持自建标准RTMP服务器或CDN;
- 支持断网自动重连、网络状态回调;
- 实时快照;
- 外部编码前音视频数据对接;
- 外部编码后音视频数据对接;
- 特定设备H.265硬编码;
- RTMP扩展H.265(需设备支持H.265特定机型硬编码);
- 扩展录像模块;
- H.264扩展SEI发送模块;
- 支持iOS 9.0及以上版本。
RTMP直播播放SDK:
如不单独说明,系Windows、Linux(含x86_64|aarch64)、Android、iOS全平台支持。
- [支持播放协议]高稳定、超低延迟(毫秒级,行业内几无效果接近的播放端)、业内领先的RTMP直播播放器SDK;
- [多实例播放]支持多实例播放;
- [事件回调]支持网络状态、buffer状态等回调;
- [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264;
- [音频格式]支持AAC/PCMA/PCMU/Speex;
- [H.264/H.265软解码]支持H.264/H.265软解;
- [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解;
- [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解;
- [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码;
- [缓冲时间设置]支持buffer time设置;
- [首屏秒开]支持首屏秒开模式;
- [低延迟模式]支持低延迟模式设置(公网200~400ms);
- [复杂网络处理]支持断网重连等各种网络环境自动适配;
- [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
- [音视频多种render机制]Android平台,视频:SurfaceView/GLSurfaceView,音频:AudioTrack/OpenSL ES;
- [实时静音]支持播放过程中,实时静音/取消静音;
- [实时音量调节]支持播放过程中实时调节音量;
- [实时快照]支持播放过程中截取当前播放画面;
- [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
- [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
- [渲染镜像]支持水平反转、垂直反转模式设置;
- [等比例缩放]支持图像等比例缩放绘制(Android设置surface模式硬解模式不支持);
- [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
- [ARGB叠加]Windows平台支持ARGB图像叠加到显示视频(参看C++的DEMO);
- [解码前视频数据回调]支持H.264/H.265数据回调;
- [解码后视频数据回调]支持解码后YUV/RGB数据回调;
- [解码后视频数据缩放回调]Windows平台支持指定回调图像大小的接口(可以对原视图像缩放后再回调到上层);
- [解码前音频数据回调]支持AAC/PCMA/PCMU/SPEEX数据回调;
- [音视频自适应]支持播放过程中,音视频信息改变后自适应;
- [扩展录像功能]完美支持和录像SDK组合使用。
总结
直播使用RTMP协议的原因主要在于其低延迟、高质量音视频传输、广泛的支持和兼容性、易于集成和扩展以及与CDN架构的兼容性等方面。这些优势使得RTMP成为直播行业中不可或缺的传输协议之一。