视频--推流和拉流

在接触音视频这一块内容的时候, 首先需要先了解一些基本知识, 那么我们今天就从推流和拉流说起

推流

最简单理解: 我们用摄像头, 拍摄了一些内容, 然后我们要把这个视频信号传到外网, 把采集阶段封装好的内容传输到服务器上;
借用一个外网的图:

在这里插入图片描述

在推流中, 我们想要进行传输到服务端, 那么肯定要将数据使用传输协议进行封装, 变成流数据. 常用的流传输协议有哪几种呢?

  1. RTSP. 实时效果比较好, 比较适合视频聊天和视频监控; 可允许客户端向服务端发送请求; 可基于RTP数据;
  2. RTMP. Adobe公司, 低延迟, 稳定性高 浏览器支持的比较好, 来个flash插件就行了. 视频流可以任意时间向服务器发送请求进行播放;
  3. HLS 苹果公司提出实现的基于HTTP流媒体传输协议, 实现流媒体的直播点播, 点播是分段的HTTP点播; 与其他协议最大的不同就是: 直播客户端获取到的不是一个完整的数据流. HLS协议在服务端将直播数据流存储为连续的很短时长的媒体(MPEG-TS格式), 客户端不断的下载并播放这些小文件, 就实现了直播; 当然也可以通过ts文件生成m3u8格式的文件; 所以这个性质, 延迟就会比普通的要高了.

拉流

服务器上已经有内容了, 用指定地址来拉取;
比如现在我们摄像头的数据已经都推到我们服务器了, 然后我们家两个人, 都想用各自设备(一个安卓, 一个ios )去看一下监控视频. 那么各自设备去服务器上拉去视频流,就是拉流;
看一些文章, 有一个图, 我觉得特别好, 就要copy过来了
在这里插入图片描述
拉会相比于推, 要更稳定; 以国标设备为例: 如果是推比如网络断了, 上级告诉下级, 我不再需要了, 但是上级没有发我不需要的消息, 下级依然会给上级发数据, 没有办法杀掉, 除非重启下级, 不过厂家一般会做这个控制

猜你喜欢

转载自blog.csdn.net/kwy15732621629/article/details/119653724