RTMP协议的理解
RTMP协议:real time message protocol
工作原理:
先采集摄像头视频和麦克风音频信息,再进行音视频的编码(mpeg),通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServer,可实现摄像头实时直播
应用:
RTMP协议可用于实现互动式直播、视频会议以及有些监控
特点:
低延时,和hls(http live stream)延迟低,RTMP延时可以做到0.8秒左右,
补充:什么会影响到延时;1)服务器性能 2)客户端的缓冲区长度 3)GOP是个硬指标,不过SRS可以关闭GOP的cache来避免这个影响;而hls在10s以上
Adobe支持比较好;windows浏览器基本支持flash,而flash对rtmp支持的比较好
适合长时间播放
累计延迟:因为基于tcp(transmission control protocal),所以不会丢包,当网络差的时候,服务器会将包缓存起来,导致累积的延迟
视频效果检验标准:
- 数据帧 ,举例H.264,包含I P B帧,I帧是独立的,是关键帧,P(prohead向前的)需要依靠前面的I帧来识别,B(bidirectional双向的)需要依靠前后来识别,所以常见的一种情况是:网络不好的情况收不到I帧导致黑屏或者打马赛克的情况
- 视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。
- I的压缩率是7(跟JPG差不多),P是20,B可以达到50,可见使用B帧能节省大量空间,节省出来的空间可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质
- 视频一开始,若找不到关键帧会导致视频花屏
- 码率”就是失真度,码率越高越清晰,反之则画面粗糙而多马赛克。
形成马赛克的原因:
- 接收网络数据包后没有调整包的顺序
- 接收网络数据包后没有没有合并数据包
- 没有正确处理好网络丢包的情况,如果所丢的数据包正好传送的是另外一个帧所参考的的数据,这样也会出现马赛克 ;
- 解码器有问题,如果播放本地文件也出现马赛克的话。
为什么会出现花屏:
- 理解一:视频文件压缩技术里有关键帧这个概念,但只在开始插入一个关键帧的做法会导致无法实现随机点播播放,因为需要从上一个关键帧开始一直演绎图片变化直到出现你需要的画面.所以,当画面变化比较大的时候,或者经过一段设定的时间,就会重新加入一个关键帧,关键帧是一个完全的图片片段记录,后面的时间则只记录画面发生变化的部分,没有发生变化的部分则保留原有记录不动搜索,这样可以在保持一定文件清晰度的前提下大幅度缩小文件体积,出现你所谓的画面部分出现花屏,就是因为某个关键帧出现破坏丢失等情况,导致花屏,但文件读取到下一个关键帧以后,则画面就可以再次恢复正常.这个就是为什么会花屏,但又会变好的原因.总的来说,你播放的视频文件存在不完整或者受到了破坏,这才导致了花屏
RTMP协议的理解的更多相关文章
- RTMP协议详解(转)
转自<RTMP协议详解(一) (二) (三) > Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器 ...
- 直播推流实现RTMP协议的一些注意事项
—— 2017-2-12 更新RTMP 协议整理了一下,包括rtmp 消息类型,rtmp 如何分块,rtmp分块例子. 用脑图整理了一下,使用Xmind 打开,URL: https://github. ...
- (转)RTMP协议从入门到放弃
转载自: http://blog.csdn.net/shangmingyang/article/details/50837852 RTMP协议是Real Time Message Protocol( ...
- 玩转直播系列之RTMP协议和源码解析(2)
一.背景 实时消息传输协议(Real-Time Messaging Protocol)是目前直播的主要协议,是Adobe公司为Flash播放器和服务器之间提供音视频数据传输服务而设计的应用层私有协议. ...
- RTMP协议中文翻译(首发)(转)
Adobe公司的实时消息传输协议 摘要 此备忘录描述了 Adobe公司的实时消息传输协议(RTMP),此协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和 ...
- HTTP协议/RTSP协议/RTMP协议的区别
RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP, ...
- HTTPS强制安全策略-HSTS协议阅读理解
https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security [阅读理解式翻译,非严格遵循原 ...
- RTMP协议
Real Time Messaging Protocol(实时消息传送协议协议)概述 实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的私有协 ...
- nginx搭建http和rtmp协议的流媒体服务器
nginx搭建http和rtmp协议的流媒体服务器 时间:2013-09-23 23:52来源:佚名 作者:本站 举报 点击:232次 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtm ...
随机推荐
- ArcGIS for Android地图控件的5大常见操作转
http://blog.csdn.net/arcgis_mobile/article/details/7801467 GIS的开发中,什么时候都少不了地图操作.ArcGIS for Android中, ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第2章节--SharePoint 2013 App 模型概览 SharePoint 2013 App 模型
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第2章节--SharePoint 2013 App 模型概览 SharePoint 2013 App 模型 你能够通过两个 ...
- SilverLight-DataBinding:二、Bingding to a Collection Objects(绑定一个集合对象)
ylbtech-SilverLight-DataBinding: Bingding to a Collection Objects(绑定一个集合对象) 1.A, Building a Data Ob ...
- win10任务管理器开机老是自己打开
win10任务管理器开机老是自己打开 学习了:https://zhidao.baidu.com/question/332868722086816045.html 还没有注意过这个东西:系统失败-> ...
- 怎么设置MySQL就能让别人访问本机的数据库了?
for all ips use below GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION; for particular ...
- c语言-完全背包问题
完全背包问题 问题:有N种物品和一个容量为V的背包,每种物品都有无限件可用.第i种物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. 分 ...
- 照猫画虎学gnuplot之折线图
本节重点:怎样利用已知数据来画折线图. 首先说明:gunplot文件的后缀名为*.plt.本节讲述怎样利用已知数据来画折线图,顾名思义必定涉及到两个文件:一个是须要的数据文件,即*.dat文件.还有一 ...
- hadoop集群ambari搭建(2)之制作hadoop本地源
准备好源资源server,我使用之前的一台node4,配置都是1GB内存20GB存储 集群最好的安装方式一定是通过本地源的,假设是公共源,那么网络将会严重影响我们的安装进度.所以制作本地源是每个大数据 ...
- angular.js 入门
1.安装nodejs 首先要安装nodejs,如果你的电脑已经装过了,最好确认是比较新的版本,否则可能会出问题. 没有安装的直接去nodejs官网下载nodejs安装.安装过程很简单,官网有教程. 安 ...
- linux安装ssh(转载)
CentOS安装ssh最笨的方法:yum install ssh yum install openssh-server/etc/init.d/sshd status看sshd服务的状态/etc/ini ...