趣谈网络协议笔记-二(第十六讲上)

流媒体协议:如何在直播里看到美女帅哥?


自勉

  • 给岁月以文明,而不是给文明以岁月!——《三体》
  • 在触不到的獠牙上点火……就像不必仰望那星星就能够解决……就像不必喊破喉咙就可以一样。——阿散井恋次《死神Bleach》

前言

今天公司说要办联谊活动,然后同事们就很快乐地帮我报名了= =,就很快乐地帮我报名了。我这人有一个坏毛病,如果有些事情没有尝试过,就特别想去试一试(违法的除外!),所以就点头报名了。
然后被拒绝了,说我年纪太小了,应该把机会让给更有需要的人们。
《三体》真的有很多经典的台词,总是能让我深有启发。就比如给岁月以文明而不是给文明以岁月,这句台词是人类得知三体人的进攻时,采取计划经济导致文明衰退后的自省。
放到今天不是也一样吗?如果是像蝼蚁一样苟活着,那么即使你活的再久又有什么意义呢?
其实我感觉昨天的章节的表达方式挺好的,照着他所给出的图片来构建出自己的认知。今天其实也打算再按照昨天的流程来理一遍视频直播协议RTMP的网络通信过程的,但是当我复制图片的时候,我惊呆了,10张图片!是昨天的十倍!好了,只能改变一下战略,将RTMP协议分两天完成。毕竟我的规划中,Android部分才是相对重要的部分。计划是这样的,但是也不保证我一口气就说完了呢= =
先定个计划,先把视频的压缩过程说完吧。


正文

直播,说到底是一种即时的媒体播放协议,注意,是即时的,所以你正常情况下无法回退。

你有可能会存在延迟,但是这个延迟绝对是短暂的,如果延迟过长,则会直接更新到最新的视频内容中,因为,协议的设计就是为了保证所谓的即时性。不然当对面的美女主播进行一些互动甚至抽奖时,如果不确保这个即时性,等你知道信息的时候,互动都已经结束了,这就叫单纯的看视频而不是看直播了。

那么问题来了,视频是什么,为什么我传输了那一串不知道是什么的01数据,播放器就能清楚我传输的是什么并且能够进行播放呢?

视频说到底就是快速切换的一堆图片,当图片切换地足够快的时候,因为人眼的视觉残留,所以看到的就好像是图像在运动一般。

但是如果仅仅是简单存储一堆图片并播放的话,视频所占用的空间是惊人的,比如说我在支持1024*768的显示器上要播放一分钟的30fps的视频,那么这个视频的大小应该是多少呢?假如说像素是通过RGB组成的,那么总共需要1024*768*3*60*30=4246732800B,大约4个G的数据!然而实际上,我之前所假设的场景绝对是低配中的低配,实际场景绝对比这个要复杂。那么怎么办呢?如果1分钟的视频我都需要4个G的流量来运行,那我一个月话费再多都支撑不了我看多少时间的直播啊!
这个时候,就需要对视频本身进行压缩了,媒体的压缩一般是从如下几个方面进行处理的:

一. 空间冗余

一张图片的相邻像素的颜色往往是渐变的,所以没有必要每个像素都完整地保存,完全可以每隔几个保存一个,中间的用算法计算出来。

二. 时间冗余

视频序列的相邻图像之间的内容相似。一个视频中连续出现的图片也不是突变的,可以根据已有的图片进行预测和推断。

三. 视觉冗余

人的视觉系统对某些细节不敏感,因此不会每一个细节都注意到,可以允许丢失一些数据。

四. 编码冗余

有些像素用到的少,有些多,那就在编码的时候按照哈夫曼编码的思路对其进行优化,从而减少传输的数据长度。

基于这四种压缩思路进行压缩后的数据就可以用于数据传输了。

趣谈网络协议笔记-二(第十六讲上)相关推荐

  1. 趣谈网络协议笔记-二(第六讲)

    趣谈网络协议笔记-二(第六讲) 交换机记忆的到底是端口,还是方向,如果是方向那么何来方向,下图中的感觉更像是网桥? 局域网中的数据是不是必定先经过交换机(网桥,hub)? 为什么广播时mac地址为25 ...

  2. 趣谈网络协议笔记-二(第十七讲)

    趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...

  3. 趣谈网络协议笔记-二(第十一讲)

    趣谈网络协议笔记-二(第十一讲) TCP协议(上):因性恶而复杂,先恶后善反轻松 自勉 我似乎天性不擅长争斗,但是有些时候,我也必须砥砺前行. 强大是和平的前提,而善良不是. 前言 今天回到家里已经是 ...

  4. 趣谈网络协议笔记-二(第十九讲)

    趣谈网络协议笔记-二(第十九讲) HttpDNS:网络世界的地址簿也会指错路 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 引用 dns缓存刷新时间是多久?dns本地缓存时间介绍 - 东大网管 ...

  5. 趣谈网络协议笔记-二(第十八讲)

    趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...

  6. 趣谈网络协议笔记-二(第十三讲)

    趣谈网络协议笔记-二(第十三讲) 套接字Socket:Talk is cheap, show me the code 前言 这只是笔记,是为了整理刘超大神的极客时间专栏的只是而存在的! 经常会在网络上 ...

  7. 趣谈网络协议笔记-二(第十二讲)

    趣谈网络协议笔记-二(第十二讲) TCP协议(下):西行必定多妖孽,恒心智慧消磨难 前言 哈哈哈,越当我看刘超的通俗讲解,我就越感觉自己的无能.每次当我看了讲解之后,每次当我感觉到这个东西原来是这么简 ...

  8. 趣谈网络协议笔记-二(第十讲)

    趣谈网络协议笔记-二(第十讲) UDP协议:因性善而简单,难免碰到"城会玩" 自勉 如果手上没有剑,我就无法保护你.如果我一直握着剑,我就无法抱紧你.--<Bleach> ...

  9. 趣谈网络协议笔记-二(第十五讲)我与刘超有不同看法

    趣谈网络协议笔记-二(第十五讲) HTTPS协议:点外卖的过程原来这么复杂 前言 好饿啊= =,最近感觉自己真的是胖的不行了,所以开始了适当的节食操作. 我似乎很不擅长隐藏自己的想法.我似乎很不习惯于 ...

最新文章

  1. SAP LT Replication Server与SAP HANA中与Replication相关的表
  2. Windows8 解决VMware与Hyper-V不兼容共存方法
  3. 列举java接口_Java接口特点列举说明
  4. 看问题要看到本质:从Web服务器说起
  5. 区块链预言机(5)预言机原理
  6. spring cloud: 使用consul来替换config server,config key/value 具体的配置详解
  7. 2021牛客多校4 - Rebuild Tree(树形dp)
  8. 如何在官网中下载历史版本的火狐浏览器
  9. 从头开始敲代码之《从BaseApplication/Activity开始》
  10. 让 Chrome 崩溃的一行 CSS 代码
  11. linux下编程epoll实现将GPS定位信息上报到服务器
  12. Word中将传统的复选框型窗体域选项插件 批量替换成 复选框内容控件
  13. 都是第一,3143亿背后科技公司贡献了多少?
  14. hackerrank 刷题一(python 基础)
  15. java的编译路径在哪_如何知道我的java编译器的路径
  16. 彩虹系统改良版源码附带N种模板虚拟商城源码
  17. 最小生成树求最大比率 UVALive - 5713
  18. 震惊了!鸿蒙又多了一种开发方式Ets,让更多的人赶上红利!
  19. 百度地图自定义图标动画
  20. 维基百科著名程序员列表大全

热门文章

  1. oracle中decode函数用法及应用
  2. linux下oracle启动关闭
  3. mysql怎么实现确认收货_Tp结合redis实现订单自动收货
  4. 我的理想计算机系100字,我的理想作文100字(通用5篇)
  5. python0o12_2020年日期表-python实现
  6. c++如何把字符串转为变量名_如何优雅地计算多变量
  7. cmyk图像处理matlab,数字图像处理及MATLAB实现 全套课件.pptx
  8. 云计算 码率适配限速_面向大型集团公司的云平台架构
  9. nvm卸载node_nvm-node版本管理工具
  10. jquery实现点击浏览器后退,上一页面自动刷新