RTMP、RTSP、HTTP这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议。理论上这三种都可以用来做视频直播或点播。但通常来说,直播一般用 RTMP、RTSP。而点播用 HTTP。
播放软件推荐:VLC
要播放视频直播流,或者测试一个直播视频地址是否可以使用。这里推荐 VLC 媒体播放器。功能强大且跨平台。支持 Windows、Mac OS、Linux、Android、iOS。
官网地址
打开播放器,选择菜单中“媒体”->“打开网络串流…”。在弹出页面中填入视频地址即可。
可以通过WireShark抓包工具来学习rtmp,rtsp协议
1,RTMP协议
RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。
工作在 TCP 之上的明文协议,默认使用端口 1935。协议中的基本数据单元成为消息(Message),传输的过程中消息会被拆分为更小的消息块(Chunk)单元。最后将分割后的消息块通过 TCP 协议传输,接收端再反解接收的消息块恢复成流媒体数据
它有多种变种:
- RTMP工作在TCP之上,默认使用端口1935;
- RTMPE在RTMP的基础上增加了加密功能;
- RTMPT封装在HTTP请求之上,可穿透防火墙;
- RTMPS类似RTMPT,增加了TLS/SSL的安全功能。
RTMP 主要有以下几个优点:
- RTMP 是专为流媒体开发的协议,对底层的优化比其它协议更加优秀,同时它 Adobe Flash 支持好,基本上所有的编码器(摄像头之类)都支持 RTMP 输出。现在 PC 市场巨大,PC 主要是 Windows,Windows 的浏览器基本上都支持 Flash。
- 最后 RTMP 的延迟相对较低,一般延时在 1-3s 之间,一般的视频会议,互动式直播,完全是够用的。
当然 RTMP 并没有尽善尽美,它也有不足的地方。
- 一方面是它是基于 TCP 传输,非公共端口,可能会被防火墙阻拦;
- 另一方面,也是比较坑的一方面是 RTMP 为 Adobe 私有协议,很多设备无法播放,特别是在 iOS 端,需要使用第三方解码器才能播放。
- 是流媒体协议。
- RTMP协议是 Adobe 的私有协议,未完全公开。
- RTMP协议一般传输的是 flv,f4v 格式流。
- RTMP一般在 TCP 1个通道上传输命令和数据。
2,RTSP协议
RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议RTSP是基于文本的协议,采用ISO10646字符集,使用UTF-8编码方案。行以CRLF中断,包括消息类型、消息头、消息体和消息长.但接收者本身可将CR和LF解释成行终止符。基于文本的协议使其以自描述方式增加可选参数更容易,接口中采用SDP作为描述语言。
优缺点
RTSP拥有和RTMP相仿的视频实时性。遗憾的是目前RTSP不可以在Web端直接播放,必须用插件才可以实现web端播放。
- 是流媒体协议。
- RTSP协议是共有协议,并有专门机构做维护。.
- RTSP协议一般传输的是 ts、mp4 格式的流。
- RTSP传输一般需要 2-3 个通道,命令和数据通道分离。
3,HTTP协议
- 不是是流媒体协议。
- HTTP协议是共有协议,并有专门机构做维护。
- HTTP协议没有特定的传输流。
- HTTP传输一般需要 2-3 个通道,命令和数据通道分离。
二、可用的直播流地址
通常我们进行 RTMP/RTSP 开发时,除了可以自己搭建视频服务器来进行测试外。也可以直接使用一些电视台的直播地址,省时省力。
下面是我收集汇总的一些视频直播地址,亲测可用。
1,RTMP协议直播源
- 韩国GoodTV,rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp
- 韩国朝鲜日报,rtmp://live.chosun.gscdn.com/live/tvchosun1.stream
- 美国1,rtmp://ns8.indexforce.com/home/mystream
- 美国中文电视,rtmp://media3.sinovision.net:1935/live/livestream
- 湖南卫视 rtmp://58.200.131.2:1935/livetv/hunantv
2,RTSP协议直播源
- 大熊兔(点播):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov