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),所以不会丢包,当网络差的时候,服务器会将包缓存起来,导致累积的延迟

视频效果检验标准:

  1. 数据帧 ,举例H.264,包含I P B帧,I帧是独立的,是关键帧,P(prohead向前的)需要依靠前面的I帧来识别,B(bidirectional双向的)需要依靠前后来识别,所以常见的一种情况是:网络不好的情况收不到I帧导致黑屏或者打马赛克的情况
  2. 视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。
  3. I的压缩率是7(跟JPG差不多),P是20,B可以达到50,可见使用B帧能节省大量空间,节省出来的空间可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质
  4. 视频一开始,若找不到关键帧会导致视频花屏
  5. 码率”就是失真度,码率越高越清晰,反之则画面粗糙而多马赛克。

形成马赛克的原因:

  1. 接收网络数据包后没有调整包的顺序
  2. 接收网络数据包后没有没有合并数据包
  3. 没有正确处理好网络丢包的情况,如果所丢的数据包正好传送的是另外一个帧所参考的的数据,这样也会出现马赛克 ;
  4. 解码器有问题,如果播放本地文件也出现马赛克的话。

为什么会出现花屏:

  1. 理解一:视频文件压缩技术里有关键帧这个概念,但只在开始插入一个关键帧的做法会导致无法实现随机点播播放,因为需要从上一个关键帧开始一直演绎图片变化直到出现你需要的画面.所以,当画面变化比较大的时候,或者经过一段设定的时间,就会重新加入一个关键帧,关键帧是一个完全的图片片段记录,后面的时间则只记录画面发生变化的部分,没有发生变化的部分则保留原有记录不动搜索,这样可以在保持一定文件清晰度的前提下大幅度缩小文件体积,出现你所谓的画面部分出现花屏,就是因为某个关键帧出现破坏丢失等情况,导致花屏,但文件读取到下一个关键帧以后,则画面就可以再次恢复正常.这个就是为什么会花屏,但又会变好的原因.总的来说,你播放的视频文件存在不完整或者受到了破坏,这才导致了花屏

RTMP协议的理解的更多相关文章

  1. RTMP协议详解(转)

    转自<RTMP协议详解(一) (二) (三) > Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器 ...

  2. 直播推流实现RTMP协议的一些注意事项

    —— 2017-2-12 更新RTMP 协议整理了一下,包括rtmp 消息类型,rtmp 如何分块,rtmp分块例子. 用脑图整理了一下,使用Xmind 打开,URL: https://github. ...

  3. (转)RTMP协议从入门到放弃

    转载自:  http://blog.csdn.net/shangmingyang/article/details/50837852 RTMP协议是Real Time Message Protocol( ...

  4. 玩转直播系列之RTMP协议和源码解析(2)

    一.背景 实时消息传输协议(Real-Time Messaging Protocol)是目前直播的主要协议,是Adobe公司为Flash播放器和服务器之间提供音视频数据传输服务而设计的应用层私有协议. ...

  5. RTMP协议中文翻译(首发)(转)

    Adobe公司的实时消息传输协议 摘要 此备忘录描述了 Adobe公司的实时消息传输协议(RTMP),此协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和 ...

  6. HTTP协议/RTSP协议/RTMP协议的区别

    RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP, ...

  7. HTTPS强制安全策略-HSTS协议阅读理解

    https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security [阅读理解式翻译,非严格遵循原 ...

  8. RTMP协议

    Real Time Messaging Protocol(实时消息传送协议协议)概述   实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的私有协 ...

  9. nginx搭建http和rtmp协议的流媒体服务器

    nginx搭建http和rtmp协议的流媒体服务器 时间:2013-09-23 23:52来源:佚名 作者:本站 举报 点击:232次 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtm ...

随机推荐

  1. Exiting an iOS App with Xamarin

    referenced from: http://www.redbitdev.com/exiting-ios-app-with-xamarin-ios/ The team is in the middl ...

  2. cacti监控linux和windows磁盘IO

    cacti监控linux和windows磁盘IO 标签:cacti linux磁盘IO windows磁盘IO 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则 ...

  3. ubuntu配置django

    安装 安装Apache sudo apt-get install apache2 安装Django 下载Django 安装mod_wsgi sudo apt-get install libapache ...

  4. Leetcode 232 Implement Queue using Stacks 和 231 Power of Two

    1. 232 Implement Queue using Stacks 1.1 问题描写叙述 使用栈模拟实现队列.模拟实现例如以下操作: push(x). 将元素x放入队尾. pop(). 移除队首元 ...

  5. byte 单位换算

    1G就1GB啦,平时人们说1G只是简洁来说而已. bit(位).B(字节).K(千).M(兆).G(吉咖).T(太拉) B(Byte).KB(KiloByte).MB(MegaByte).GB(Gig ...

  6. Sencha Touch 之初接触

    1.Sencha Touch开发与普通web开发有什么区别? Sencha Touch(为方便起见,本文后面一律简写为ST)页面的开发跟普通html页面相比,总体来说没有本质上的区别,只是引入了对ht ...

  7. hdu 5316 Magician 线段树

    链接:http://acm.hdu.edu.cn/showproblem.php? pid=5316 Magician Time Limit: 18000/9000 MS (Java/Others)  ...

  8. Something about cache

    http://www.tyut.edu.cn/kecheng1/2008/site04/courseware/chapter5/5.5.htm 5.5 高速缓冲存储器cache 随着CPU时钟速率的不 ...

  9. Android开源git40个App源代码

    (JamsMusicPlayer)非常棒的音乐播放器(new)   (F8)日程安排的软件   (Conversations)基于XMPP的应用   (Bitocle)能够在手机上查看自己github ...

  10. unity3d从零開始(五):了解摄像机

    1.简单介绍         Unity的摄像机是用来将游戏世界呈现给玩家的,游戏场景中至少有一台摄像机.也能够有多台. 2.类型         Unity中支持两种类型的摄像机,各自是Perspe ...