部分流媒体协议及流媒体开发框架vitamio

流媒体协议:(RTP、RTCP、RTSP、MMS、HLS、HTTP progressive streaming)

当前在internet上传送音频和视频等信息主要有两种方式:

  1. 下载,完整下载一个视频,再去播放
  2. 流式传输,如优酷、爱奇艺等视频网址(土豆,优酷网的视频传输方法)

下面介绍的这些协议,都是流式传输

RTP

实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议

RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。 
它一开始被设计为一个多播协议,但后来被用在很多单播应用中。 
RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。

RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。

传输层:

RTP协议和RTCP(RTP控制协议)一起使用,而且它是创建在UDP协议上的。

RTCP

实时传输控制协议(Real-time Transport Control Protocol或RTP Control Protocol或简写RTCP)是实时传输协议(RTP)的一个姐妹协议。

RTCP为RTP媒体流提供信道外(out-of-band)控制。RTCP本身并不传输数据,但和RTP一起协作将多媒体数据打包和发送。RTCP定期在多媒体流会话参加者之间传输控制数据。

RTCP的主要功能是为RTP所提供的服务质量(Quality of Service)提供反馈。

RTCP收集相关媒体连接的统计信息,例如:传输字节数,传输分组数,丢失分组数,jitter,单向和双向网络延迟等等,网络应用程序即可利用RTCP的统计信息来控制传输的品质,比如当网络带宽高负载时限制信息流量或改用压缩比较小的编解码器。

传输层:

RTP 使用一个 偶数 UDP port ;而RTCP 则使用 RTP 的下一个 port,也就是一个奇数 port。

RTSP

即时串流协定(Real Time Streaming Protocol,RTSP)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制

允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,更进而支持多方视讯会议(Video Conference)。 
因为与HTTP1.1的运作方式相似,所以代理服务器(Proxy)的缓冲功能(Cache)也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

传输层:

传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。

RTSP 、RTP、RTCP的区别

https://www.zhihu.com/question/20278635 
http://blog.csdn.net/shinichr/article/details/24111401

RTP: 一般用于多媒体数据的传输。

RTCP: 同RTP一起用于数据传输的监视,控制功能。

RTSP: 用于多媒体数据流的控制,如播放,暂停等。

为什么要搭配这些协议呢?

RTP位于传输层(通常是UDP)之上,应用程序之下,实时语音、视频数据经过模数转换和压缩编码处理后,先送给RTP封装成为RTP数据单元,RTP数据单元被封装为UDP数据报,然后再向下递交给IP封装为IP数据包。这么说RTP是没有保证传输成功的,

那怎么保证呢?就要用到RTCP。

RTCP消息含有已发送数据的丢包统计和网络拥塞等信息,服务器可以利用这些信息动态的改变传输速率,甚至改变净荷的类型。RTCP消息也被封装为UDP数据报进行传输。

严格来说:RTP、RTCP位于传输层(通常是UDP)之上,应用程序之下。

RTMP/RTMPS

RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。 
它有三种变种:

  1. 工作在TCP之上的明文协议,使用端口1935;
  2. RTMPT封装在HTTP请求之中,可穿越防火墙;
  3. RTMPS类似RTMPT,但使用的是HTTPS连接;

    RTMP协议(Real Time Messaging Protocol)是被Flash用于对象,视频,音频的传输.这个协议建立在TCP协议或者轮询HTTP协议之上. 
    RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视/音频数据.一个单一的连接可以通过不同的通道传输多路网络流.这些通道中的包都是按照固定大小的包传输的.

MMS

MMS(Microsoft Media Server)是一种串流媒体传送协议,用来访问并流式接收Windows Media服务器中.asf文件的一种协议。

MMS协议用于访问Windows Media发布点上的单播内容。MMS是连接Windows Media单播服务的默认方法。若观众在Windows Media Player中键入一个URL以连接内容,而不是通过超级链接访问内容,则他们必须使用MMS协议引用该流。MMS的预设埠(端口)是1755。

当使用 MMS 协议连接到发布点时,使用协议翻转以获得最佳连接。

  • “协议翻转”始于试图通过 MMSU 连接客户端。 MMSU 是 MMS 协议结合 UDP 数据传送。
  • 如果 MMSU 连接不成功,则服务器试图使用 MMST。MMST 是 MMS 协议结合 TCP 数据传送。

如果连接到编入索引的 .asf 文件,想要快进、后退、暂停、开始和停止流,则必须使用 MMS。不能用 UNC 路径快进或后退。若您从独立的 Windows Media Player 连接到发布点,则必须指定单播内容的 URL。

若内容在主发布点点播发布,则 URL 由服务器名和 .asf 文件名组成。例如:mms://windows_media_server/sample.asf。

  • windows_media_server 是 Windows Media 服务器名,
  • sample.asf 是您想要使之转化为流的 .asf 文件名。

HLS - HTTP live streaming (M3U8)

HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。

HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。

相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。

由此可见,基本上可以认为,HLS是以点播的技术方式来实现直播。由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。不过HLS的这种技术特点,决定了它的延迟一般总是会高于普通的流媒体直播协议。 
 

M3U8

http://www.voidcn.com/blog/sqc3375177/article/p-1009883.html

1.M3U8是一种可扩展的播放列表文件格式。它是一个包含UTF-8编码文字的m3u播放列表。m3u是包含媒体文件URL的一个事实上的播放列表标准。这种格式被用来作为HTTP Live 媒体流索引文件的格式。

2.m3u8是一种视频列表格式,里面有真正的视频的链接,另外在m3u8里面还可以再嵌套一层m3u8

3.m3u8是视频列表,视频编码可以是h.264等。

4.m3u8并非苹果独占,m3u8这种列表其实编码格式是公开的。

progressive download

科普扫盲:live streaming vs. progressive download

从progressive download开讲 (这个概念比较宽泛,大体上包含了live streaming的概念)。就是说,不管对正在直播的视频或者其他非直播视频,用户可以下载到手机上,缓冲足够时间后开始播放。

在用户界面来讲,点击某视频的超链接后,以sdp为后缀的描述文件将会存到手机上,下载结束后,根据相关信息连接到对应的http服务器开始下载视频文件,并在缓冲足够时开始播放。用户只需下载一次就可反复播放

HTTP progressive streaming

https://groups.google.com/forum/#!topic/android-developers/4Z5TAn1HDsw

Flash vs. HTTP Progressive Streaming vs. HLS

Progressive streaming is like progressive download except that the 
media file is partially cached in memory rather than writing to 
permanent storage.

HTTP progressive streaming类似于progressive download的协议,Progressive streaming是把视频缓存在内存中,而不是永久存储设备中

when we discuss HTTP Progressive Streaming, we’re really talking about what amounts to a fancy buffered download,

流媒体测试地址

转载:https://www.vitamio.org/docs/Basic/2013/0508/14.html

HLS - Apple HTTP live streaming - m3u8

http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 
http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8 
http://live.3gv.ifeng.com/zixun.m3u8 (直播)

HTTP

http://www.modrails.com/videos/passenger_nginx.mov 
http://wsmp32.bbc.co.uk/

RTSP

http://m.livestream.com (site) 
rtsp://xgrammyawardsx.is.livestream-api.com/livestreamiphone/grammyawards

MMS

mms://video.fjtv.net/setv mms://ting.mop.com/mopradio mms://112.230.192.196/zb12

?上一篇:关于抓取网络数据 青花瓷

原文地址:https://www.cnblogs.com/ruiy/p/8780278.html

时间: 2024-10-08 00:20:27

部分流媒体协议及流媒体开发框架vitamio的相关文章

流媒体协议介绍

RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式.RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础.RTP协议和RTP控制协议RTCP一起使用,而且它是建立在UDP协议上的. RTP 本身并没有提供按时发送机制或其它

nginx搭建支持http和rtmp协议的流媒体服务器之一

实验目的: 让Nginx支持flv和mp4格式文件,支持RTMP协议的直播和点播: 同时打开RTMP的HLS功能 ?资料: HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议. HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器. 它也很容易使用内容分发网络来传输媒体流. 使用ffmpeg来完成对flv.mp4.mp3等格式的转化(点播实验暂时不测试) 一.准备工作

流媒体协议RTMP,RTSP与HLS有什么不同

转载自:http://www.cuplayer.com/player/PlayerCode/Wowza/2015/0204/1774.html HLS (HTTP Live Streaming) Apple的动态码率自适应技术.主要用于PC和Apple终端的音视频服务.包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件. 常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的是用 HTTP 渐进下载方

某流媒体协议应急响应事件回放

某流媒体协议应急响应事件回放 1.背景:          2014的X月Z号,我收到公司信息安全委员会的一封邮件,说收到了一封来自老外的Email,Email里面描述到我们的传统行业设备存在一些安全问题,并在他们公司的官网上发布了相关的信息,之后我瞧了一下他们的分析报告,才刚看一小段我就已经明白一切了,理由是,在2014的X月Z-9号的时候,我们自己内部也已经发现了此漏洞,在互联网设备上已经迅速打补丁修复,我同时也考虑到代码复用的问题,当时也立马给传统行业部门的人打电话发了邮件要求处理此事,但

主要流媒体协议介绍

RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式.RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础.RTP协议和RTP控制协议RTCP一起使用,而且它是建立在UDP协议上的. RTP 本身并没有提供按时发送机制或其它

[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式.RTP 协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Tal

常用的流媒体协议及其应用场景等信息总结

近日一直被直播延时问题所困惑,为此特整理一些关于常用流媒体的协议信息,希望能对自己解决直播延时有所帮助. 1.RTMP(Real Time Messaging Protocol)Adobe推出的实时消息传输协议.该协议基于TCP,是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信,默认端口1935.一般传输的是flv,f4v格式流 2.RTSP/RTP/RTCP协议族(Real-time Streaming P

网络协议-流媒体协议

流媒体协议是网络对视频的传输协议. 基本概念 视频技术的名词 名词系列一:AVI.MPEG.RMVB.MP4.MOV 名词系列二:H.261.H.262.H.263.H.264.H.265.重点是H.264 名词系列三:MPEG-1.MPEG-2.MPEG-4.MPEG-7. 视频:一连串的图片. 帧:一张图片就是一帧. 帧率:就是每秒由多少张图片 像素:一个像素一个RGB,每个8位.一张图片由好多个像素组成. 每秒种的视频有多大? 30 帧 × 1024 × 768 × 24 = 566,23

全能多媒体开发框架Vitamio

简介: Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播. 下面介绍一下简单的使用 1.拖入工程 2.引用:#import "Vitamio.h" 3.添加依赖的系统框架和系统库如下: - AVFoundation.framwork     音视频播放基本工具 - Aud