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 ...
随机推荐
- uitableview中文排序问题
1,uitableview中涉及到排序的问题,查找资料后发现使用UILocalizedIndexedCollation可以很好处理中文和英文系统下中文的排序.而且如果第一个汉字首字母一样那么就会按照第 ...
- 一道简单DP题
问题: 给定一个整数的数组,相邻的数不能同时选,求从该数组选取若干整数,使得他们的和最大,要求只能使用o(1)的空间复杂度.要求给出伪码. 解答: int maxSum(vector<int&g ...
- angular - 安装 -1
在阅读以下教程以前,请安装node,请先确保您的使用平台:Win.Mac.Linux 首次安装node以后,我们先检测版本 node -v npm -v 这样就代表安装成功,那么我们可以进入下一步了 ...
- Vue2.0 视频教程
好像是一套vue 开发webapp 课程.来自网络. url:https://pan.baidu.com/s/1jIele9w password:b404 文章来源:刘俊涛的博客 地址:http:// ...
- C++11 并发指南三(std::mutex 详解)(转)
转自:http://www.cnblogs.com/haippy/p/3237213.html 上一篇<C++11 并发指南二(std::thread 详解)>中主要讲到了 std::th ...
- gulp是用来干什么的?(概念)
当我们在使用gulp的时候,gulp到底用来干什么呢? 编译 sass 合并优化压缩 css 校验压缩 js 优化图片 添加文件指纹(md5) 组件化头部底部(include html) 实时自动刷新 ...
- MySQL优化之——日志
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46790451 MYSQL里的日志主要分为4类,使用这些日志文件.能够查看MYSQL ...
- systemd、upstart和system V
http://blog.csdn.net/kumu_linux/article/details/7653802 systemd是Linux下的一种init软件,由Lennart Poettering ...
- Linux kernel Wikipedia
http://en.wikipedia.org/wiki/Linux_kernel Development model The current development model of the Lin ...
- 04 http协议模拟登陆发帖
<?php require('./http.class.php'); $http = new Http('http://home.verycd.com/cp.php?ac=pm&op=s ...