应用层(OSI 模型的第七层, TCP 模型的第四层, 即应用层,)还有RTMP、P2P等协议。
1 流媒体协议

视频流中的图片存在:空间冗余、时间冗余、视觉冗余、编码冗余。可以通过编码来压缩视频。

编码应该具有一定的标准:ITU-T(国际电信联盟电信标准化部门)和MPEG(ISO的动态图像专家组)联合制定了H.264/MPEG-4 AVC编码标准。

直播的过程
主播:采样-编码-推流
服务端:接流-流处理-分发
观众:拉流-解码-播放

如何编码
将视频分为三种帧:
I帧-关键帧
P帧-前向预测编码帧
B帧-双向预测内插编码帧

一个视频可以拆分成一系列的帧,每一帧拆分成一些列的片,每一片都放在一个NALU(Network Abstraction Layer Unit,网络提取层单元)里面,NALU之间都是通过特殊的起始标识符分隔的,在每一个I帧的第一片前,要插入单独保存的SPS和PPS的NALU,最终形成一个长长的NALU序列。

推流
使用RTMP推流。
推流的过程是将NALU放在消息里发送,这个消息也称为RTMP(Real Time Messaging Protocol,实时消息传输协议)包。

拉流
客户端建立一个RTMP连接,读取视频流,先读到H.264的解码参数,例如SPS和PPS,然后将收到的NALU组成的一个个帧进行解码,交给播放器播放。

④-③小结:
  ①编码的两大流派达成了一致,都是通过关于时间、空间的各种算法来压缩数据的。
  ②压缩好的数据,为了方便传输会组成一系列的NALU,按照帧和片依次排列。
  ③排列好的NALU在网络传输时,要按照RTMP包的格式进行包装,RTMP包会拆分成块进行传输。
  ④推送到流媒体服务器的视频流经过转码和分发,可以被客户端通过RTMP拉取,然后组合为NALU,解码成视频格式进行播放。

2 P2P协议

FTP协议
文件下载可以通过HTTP,但是速度慢。
还可以通过FTP(File Transfer Protocol,文件传输协议),FTP基于TCP,会建立控制连接和数据连接。

FTP有主动模式(PORT)和被动模式(PASV),这些是在FTP服务器的角度来说的。

P2P Peer to Peer
资源不在集中在某些设备上,而是分散的储存在多台设备上,设备称为Peer。

.torrent文件
.torrent文件由两部分组成,announce(tracker和URL)和文件信息

DHT(Distribute Hash Table,分布式哈希表)
每个加入这个DHT网络的机器,都要负责存储这个网络里的部分资源信息和其他成员的联系信息,相当于所有机器构成了一个庞大的分布式存储数据结构。
DHT的工作方式具体见书P167

④-④小结:
  ①下载一个文件可以使用HTTP或FTP,这两种协议都使用集中下载的方式,而P2P换了一种思路,采用去中心化下载的方式。
  ②P2P也有两种下载方式, 一种是依赖于tracker服务器,即元数据集中,文件数据分散;另一种基于分布式哈希算法,元数据和文件数据全部分散。

计算机网络④-③/④:流媒体协议:编码/推流/拉流、 P2P协议:.torrent/DHT相关推荐

  1. 【SRS】流媒体服务器(推流+拉流+转流)

    文章目录 前言 安装 推流 拉流 转流 前言 课程作业需要搭建一个视频流服务器,最初我采用的是HLS推流方式,发现那延迟卡的我一愣一愣的,这主要还是由于HLS需要等待切片完成.那行吧,那就换一个吧,一 ...

  2. 微信小程序推流拉流live-pusher/live-player示例,使用本地搭建RTMP服务

    适用读者: 对微信小程序已经有基本的了解. 例如:小程序账号申请. 常用组件.小程序开发工具 对nodejs已经有基本的了解. 对微信小程序流媒体/实时音视频组件感兴趣的童鞋. 对小鱼易联/小鱼在家, ...

  3. 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享

    开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享 一.优秀的流媒体博客资源 1.1 EasyNVR:专注于安防视频互联网化的技术 1 ...

  4. SRS流媒体服务器——WebRTC推拉流演示

    SRS流媒体服务器--WebRTC推拉流 目录 WebRTC推拉流配置 WebRTC拉流演示 WebRTC推流演示 SRS官方WebRTC文档:https://github.com/ossrs/srs ...

  5. 推流拉流RMTP方案:Nginx+ffmpeg/obs+vlc/h5

    RMTP方案:Nginx+ffmpeg/obs+vlc/h5 服务器安装 1.依赖 sudo apt-get update  sudo apt-get install libpcre3 libpcre ...

  6. 网络协议丨FTP协议和P2P协议

    现在不管是下载文件还是浏览内容,我们都是使用HTTP协议. 但是除了HTTP协议以外,也存在其他的协议. 比如文件下载,就有FTP协议,也就是文件传输协议.FTP 采用两个 TCP 连接来传输一个文件 ...

  7. 搭建流媒体推流/拉流服务(RTMP/RTSP/HLS/HTTP-FLV)

    一.什么是流媒体 流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送:如果不使用 ...

  8. 直播推流拉流概念介绍

    先上图 推流,指的是把采集阶段封包好的内容传输到服务器的过程.介绍一下目前有主流的推送协议,以及各自的优缺点. RTMP RTMP是Real Time Messaging Protocol(实时消息传 ...

  9. SRT服务器的部署推流拉流

    互联网传输协议Secure Reliable Transport (简称"SRT").可将SRT可以将端到端延时控制在500ms以内,解决了互联网传输延时较高的问题.并且SRT通过 ...

最新文章

  1. Dlib库中实现正脸人脸检测的测试代码
  2. shell高级编程--引用
  3. C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
  4. App设计灵感之十二组精美的手机文件管理App设计案例
  5. 面试题64. 求1+2+…+n
  6. linux C如何获取服务器节点上所有网口的ip地址
  7. 重学 VBA - 基础与实战篇(含正则表达式)
  8. 2021年Q1移动互联网行业数据研究报告
  9. mysql 局域网存储_MySQL 存储过程
  10. DockLayout布局
  11. HTTP协议到底是怎么回事
  12. 自己编译nvm-window,解决无法修改镜像下载node很慢的问题!
  13. HP OMEN品牌机配3090显卡,驱动,CUDA,Cudnn安装过程
  14. python符号或非并列,Python运算符
  15. jQuery+Ajax+全解析
  16. 《计算之魂》思考题4.3
  17. 磁盘坏道的检测及修复
  18. SQL leetcode 刷题答案(二)
  19. WebUI自动化框架 - 数据驱动(ddt、paramunittest)
  20. 量化交易的市价、限价订单及交易成本-量化系统的构成与交互

热门文章

  1. Spring--getBean()与@Autowired的对比
  2. 【快速上手教程2】开源编队无人机-硬件资源简介
  3. 开发城市出租车智能调度中心
  4. jQuery基础02
  5. PDF转成PNG,之后PNG转成PDF
  6. Python之hasattr()函数介绍
  7. python切割图片
  8. 2017南京大学计算机考研答案,全新栏目!【真题解锁】第1期 | 实验设计:南京大学2017年学硕考题...
  9. Elmedia Player Pro for Mac(视频播放器)
  10. EasyExcel实现excel导入