基于库进行开发
功能的实现若是一行一行完全由自己写,那么会非常的麻烦,若使用前人封装好的库,那对我们而言,要做的就是将库移植过来,基于库做一个快速开发。
- 好处是快速开发
- 缺点是对底层原理不够了解
视频网络传输的2种方式
基于下载: http or ftp
要播放视频,就需要将视频文件从服务器上下载下来
比如在网上看电影,如果下载的速度能赶上播放速度,那么播放就是实时的,否则就会卡住缓冲。
这种应用一般是用于保证视频质量的情况。例如:看电影
基于实时的:RTP/RTSP/RTCP
可以牺牲画面质量,但是要保证实时
这种应用一般是直播或者视频监控领域
- RTP(Real-time Transport Protocol)
不一定用来传输视频流,也可以传语音 - RTSP(Real Time Streaming Protocol)
专门用来传输视频流的,高于RTP的 - RTCP(RT Control Protocol)
RTP的补充(加了一些控制信息在里面),RTP只有传输没有控制
ORTP介绍
openRTP,使用C实现的一个RTP库(也有用C++、JAVA实现的)
实质是一个视频服务器,工作时客户端和服务器实时传输视频数据
一般认为RTP工作在传输层,但其实RTP比TCP/UDP搞一个层次
RTP(及RTCP)的实现有国际标准RFC3550规定,只要符合协议谁都可以自己写一个