RTMP是一种常见的流媒体传输协议,主要用于在互联网上传输音视频。其他常见的一些流媒体协议还有HLS和DASH.
RTMP优缺点
Pros
- 低延时
- 在服务端和客户端创建一个长连接
- 通过RTMPS提供安全的链接
Cons
- 不支持高分辨率,不支持VP9, AV1
- iOS和Android不支持,很多网络也不支持
- RTMP对丢包很敏感。
基本概念
RTMP是把音视频包进行MUX,然后分成小段,再通过虚拟网络进行传输。RTMP使用TCP进行数据传输。通过三次握手协议,发起者先发起,接受这回应,发起者确认,之后就建立连接。
有两种操作:
- Publish: 发布,就把本地视频通过RTMP发送到服务器中。
- Receive: 接受,把远端视频从服务器发送给本地设备,并通过播放器进行播放。因为现在很多video devices不支持rtmp,所以播放段很多用其他协议,如HLS or MPEG-DASH。但推流端还是用RTMP的多。
常见的推流工具或者开源库
- rtmp-java,适用于Android平台,支持rtmp和rtmps,支持带鉴权的rtmp,和多个云平台支持。
- OBS
网友评论