由于项目需要 RTMP 推送 H264 数据,在网上查找了下相关的方案,总结一下。
RTMP协议简介
在总结之前,我们先简单介绍一下 RTMP 协议。 RTMP(Real Time Messaging Protocol) 实时消息传送协议是 Adobe Systems 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的私有协议。
它有三种变种:
1)工作在 TCP 之上的明文协议,使用端口 1935;
2)RTMPT 封装在 HTTP 请求之中,可穿越防火墙;
3)RTMPS 类似 RTMPT,但使用的是 HTTPS 连接;
RTMP 协议就像一个用来装数据包的容器,这些数据可以是 AMF 格式的数据,也可以是 FLV 中的视/音频数据。一个单一的连接可以通过不同的通道传输多路网络流。这些通道中的包都是按照固定大小的包传输的。
更多协议的细节可以参见《rtmp specification 1.0》。
RTMP服务器
★文末名片可以免费领取音视频开发学习资料,内容包括(C/C++,Linux 服务器开发,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。
见下方↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
RTMP 服务器,现成的开源方案有以下几种推荐:
1. nignx
Nginx("engine x") 是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web 和反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx 是 Apache 服务器不错的替代品。
我们这里使用的是 Nginx 的