精华内容
下载资源
问答
  • 2019-02-24 22:43:57

    4.1.2常见的图像文件格式

    图像素材一般以文件形式保存在计算机存储器中。比较流行的图像文件格式有GIF、TIFF、TGA、BMP、PCX、JPG、PCD、PSD、PNG等。
    (1)GIF。GIF(Graphics Interchange Format)图像交换格式,主要用于网上图像传输,其信息量小,控制方便,支持多种平台,文件扩展名为.gif。GIF是一种基于LZW算法的连续色调的无损压缩格式,其压缩率一般在50%左右。GIF格式同时提供对透明色的支持,而且在网络传输中增加了图像渐显方式。
    (2)TIFF。TIFF(Tagged Image File Format)标注图像文件格式,支持Macintosh平台,文件扩展名为.tif。由于TIF文件具有良好的兼容性,而压缩存储时又有很大的选择余地,支持Photoshop所有的图像类型、多通道存储及向量通道创建,因此常被用来保存最终图像并在各种应用程序及平台间切换文件格式。
    (3)TGA。TGA(Targe Image Format)文件格式是Truevision公司为其显示卡Targa和Vista开发的一种图像文件格式,文件扩展名为.tga,是计算机上应用最广泛的图像格式之一。它在兼顾了BMP图像质量的同时又兼顾了JPEG的体积优势,并且还有自身的特点:通道效果、方向性,在多媒体领域有很大的影响。TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为四方形,若需要有圆形、菱形甚至是镂空的图像文件时,TGA就可派上用场了。
    (4)BMP。BMP(Bitmap)是标准的Microsoft Windows位图格式,其文件扩展名为.bmp。Windows软件的图像资源多数以BMP格式存储。多数图形图像软件,特别是Windows环境下运行的软件,都支持这种格式。BMP格式不支持多通道存储,文件也不压缩。常用的编码格式有1位、4位、8位、16位和24位,是Windows环境下开发多媒体作品的最基本格式。
    (5)PCX。PCX图像文件格式是Zsoft公司研制开发的,主要与商业性的PC-Pain Brush图形软件一起使用,文件扩展名为.pcx。PCX图像文件格式与特定图像显示硬件密切相关,PCX的最新版本支持24位色彩,存储方式通常采用RLE压缩编码。
    (6)JPG。JPG(Join Photographic Experts Group,JPEG)是最常用的静态图像压缩格式,文件扩展名为.jpg。JPEG格式采用有损压缩,即在形成JPEG文件时,会损失原有的一些数据,来换取较高的压缩效率。这种文件格式的最大特点是文件体积非常小,而且可以调整压缩比。JPG文件的显示比较慢,仔细观察图像可以看出不太明显的失真。因为JPG的压缩比很高,所以非常适用于需处理大量图像的场合。
    (7)PSD。PSD是Adobe公司的图形设计软件Photoshop的专用格式,但一般不将它作为最终图像存储格式。PSD文件可以存储成RGB或CMYK模式,还能够自定义颜色数并加以存储;其最大特点是能在图像文件中保存图层、通道、路径等信息,是目前唯一能够支持全部图像色彩模式的格式。但其体积庞大,在大多数平面软件内部可以通用,在一些其他类型的编辑软件内也可使用。
    (8)PNG。便携网络图形格式,是作为GIF的无专利替代品开发的,用于在WWW上无损压缩和显示图像。PNG用来存储灰度图像时,图像的深度可多达16位;存储彩色图像时,彩色图像的深度可多达48位,并且还可存储多到16位的α通道数据。PNG格式具有流式读/写(Stream Ability)功能、逐次逼近显示(Progressive Display)功能以及透明性(Transparency)功能等。
    (9)EPS。EPS标准的图像输出格式,内含两部分数据:支持PostScript格式的矢量图形数据和支持图形预览的点阵图像数据。生成PostScript图片的Adobe应用程序包括Adobe Illustrator、Adobe Dimensions和Adobe Streamline。包含矢量图片的EPS文件在打开时会被栅格化,矢量图片中经过精确定义的直线和曲线会转换为位图图像的像素。一般情况下,将矢量图形转换成位图图像之后,图像边缘会呈现阶梯状,Photoshop可以对EPS格式存储的矢量图形自动执行消减阶梯的操作,使其边缘平滑。
    (10)PDF。PDF便携文档格式,是一种灵活的、跨平台、跨应用程序的文件格式。基于Photoshop成像模型,PDF文件精确地显示并保留字体、页面版式以及矢量和位图图形。另外,PDF文件还可以包含电子文档搜索和导航功能(如电子链接)。
    (11)RAW。RAW是一种灵活的文件格式,用于在应用程序与计算机平台之间传递图像。这种格式支持具有Alpha通道的CMYK、RGB和灰度图像以及无Alpha通道的多通道和Lab图像。

    • 不同格式图像文件之间的相互转换,可以通过很多图像软件来实现。
    更多相关内容
  • 流媒体流媒体传输协议简介

    千次阅读 多人点赞 2019-06-01 22:26:10
    流媒体(streaming media):是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个...

    流媒体(streaming media):是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件

    多媒体兼指多媒体信息和多媒体技术,并以后者居多。多媒体信息是指集数据、文字、图形与图像为一体的综合媒体信息;多媒体技术则是将计算机技术与通信传播技术融为一体,综合处理、传送和储存多媒体信息的数字技术,它提供了良好的人机交互功能和可编程环境,极大的拓展了计算机的应用领域。流媒体的实质是一种多媒体文件,由于在网络上传输的过程中应用了流技术而命名。所谓流技术,就会把连续的影像和声音信息经过压缩处理后放到网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己的机器后才可以观看的网络传输技术。这个过程的一系列相关的包称为流”。流媒体实际指的是一种新的媒体传送方式,而非一种新的媒体。

    在网络上传输音/视频等多媒体信息,主要有下载和流式传输两种方案。音频/视频(A/V)文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机的连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十数秒的启动延时即可进行观看。当声音等时基媒体在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载才能观看的缺点

    流式传输方式则是将整个A/V及3D等多媒体文件经过特殊的压缩方式分成一个个压缩包,由视频服务器向用户计算机连续、实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备(硬件或软件)对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。与单纯的下载方式相比,这种对多媒体文件边下载边播放的流式传输方式,不仅使启动延时大幅度地缩短,而且对系统缓存容量的需求也大大降低。

    流媒体指在Internet/Intranet中使用流式传输技术的连续时基媒体,如:音频、视频或多媒体文件。流式媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流式媒体的数据流随时传送随时播放,只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输

    流式传输定义很广泛,主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(Real time streaming)和顺序流式传输(progressive streaming)。顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,在传输期间不根据用户连接的速度对下载顺序做调整。实时流式传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。实时流式传输根据网络情况调整输出音视频的质量从而实现媒体的持续的实时传送,用户可快进或后退以观看前面或后面的内容。

    一般说来,如视频为实时广播,或使用流式传输媒体服务器,或应用如RTSP的实时协议,即为实时流式传输。如使用HTTP服务器,文件即通过顺序流发送。采用哪种传输方法依赖你的需求。当然,流式文件也支持在播放前完全下载到硬盘。

    顺序流式传输:是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不像实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,它经常被称作HTTP流式传输。顺序流式传输比较适合高质量的短片段,如片头、片尾和广告,由于该文件在播放前观看的部分是无损下载的,这种方法保证电影播放的最终质量。这意味着用户在观看前,必须经历延迟,对较慢的连接尤其如此。对通过调制解调器发布短片段,顺序流式传输显得很实用,它允许用比调制解调器更高的数据速率创建视频片段。尽管有延迟,毕竟可让你发布较高质量的视频片段。顺序流式文件是放在标准HTTP或FTP服务器上,易于管理,基本上与防火墙无关。顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术

    实时流式传输:指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。实时流与HTTP流式传输不同,他需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。理论上,实时流一经播放就可不停止,但实际上,可能发生周期暂停。实时流式传输必须匹配连接带宽,这意味着在以调制解调器速度连接时图象质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。如欲保证视频质量,顺序流式传输也许更好。实时流式传输需要特定服务器,如:QuickTime Streaming Server、RealServer与Windows Media Server。这些服务器允许你对媒体发送进行更多级别的控制,因而系统设置、管理比标准HTTP服务器更复杂。实时流式传输还需要特殊网络协议,如:RTSP (RealTime Streaming Protocol)或MMS (Microsoft Media Server)。这些协议在有防火墙时有时会出现问题,导致用户不能看到一些地点的实时内容。

    流式传输的实现需要缓存因为Internet以包传输为基础进行断续的异步传输,对一个实时A/V源或存储的A/V文件,在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。流式传输的实现需要合适的传输协议。由于TCP需要较多的开销,故不太适合传输实时数据

    流式传输的过程一般是这样的:用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;然后客户机上的Web浏览器启动A/V Helper程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。A/V Helper程序及A/V服务器运行实时流控制协议(RTSP),以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能相似,RTSP提供了操纵播放、快进、快倒、暂停及录制等命令的方法。A/V服务器使用RTP/UDP协议将A/V数据传输给A/V客户程序(一般可认为客户程序等同于Helper程序),一旦A/V数据抵达客户端,A/V客户程序即可播放输出。需要说明的是,在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和播放器。

    流媒体格式:声音流、视频流、文本流、图像流、动画流

    (1). RA:实时声音。

    (2). RM:实时视频或音频的实时媒体。

    (3). RT:实时文本。

    (4). RP:实时图像。

    (5). SMIL:同步的多重数据类型综合设计文件。

    (6). SWF:macromedia的real flash和shockwave flash动画文件。

    (7). RPM:HTML文件的插件。

    (8). RAM:流媒体的元文件,是包含RA、RM、SMIL文件地址(URL地址)的文本文件。

    (9). CSF:一种类似媒体容器的文件格式,可以将非常多的媒体格式包含在其中,而不仅仅限于音、视频。

    流媒体传输协议

    (1). RSVP(Resource Reservation Protocol, 资源预留协议):最初是IETF为QoS的综合服务模型定义的一个信令协议,用于在流(flow)所经路径上为该流进行资源预留,从而满足该流的QoS要求。资源预留的过程从应用程序流的源节点发送Path消息开始,该消息会沿着流所经路径传到流的目的节点,并沿途建立路径状态;目的节点收到该Path消息后,会向源节点回送Resv消息,沿途建立预留状态,如果源节点成功收到预期的Resv消息,则认为在整条路径上资源预留成功。RSVP是一个在ip上承载的信令协议,它允许路由器网络任何一端上终端系统或主机在彼此之间建立保留带宽路径,为网络上的数据传输预定和保证Qos。它对于需要保证带宽和时延的业务,如语音传输,视频会议等具有十分重要的作用。

    (2). RTP(Real-time Transport Protocol, 实时传输协议):是一个网络传输协议,详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是创建在UDP协议上的。RTP为数据提供了具有实时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据。应用程序通常在 UDP上运行RTP以便使用其多路结点和校验服务;这两种协议都提供了传输层协议的功能。但是RTP可以与其它适合的底层网络或传输协议一起使用。如果底层网络提供组播方式,那么RTP可以使用该组播表传输数据到多个目的地。

    RTP本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于底层服务去实现这一过程。 RTP并不保证传送或防止无序传送,也不确定底层网络的可靠性。RTP实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如在视频解码中,就不需要顺序解码。

    (3). RTCP(Real-time Transport Control Protocol, 实时传输控制协议):是实时传输协议(RTP)的一个姐妹协议。RTP使用一个偶数UDP port,而RTCP则使用RTP的下一个port,也就是一个奇数port。RTCP与RTP联合工作,RTP实施实际数据的传输,RTCP则负责将控制包送至电话中的每个人。RTCP为RTP媒体流提供信道外(out-of-band)控制。RTCP本身并不传输数据,但和RTP一起协作将多媒体数据打包和发送。RTCP定期在流多媒体会话参加者之间传输控制数据。RTCP的主要功能是为RTP所提供的服务质量(Quality of Service)提供反馈。

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

    (4). MMS(Microsoft Media Server Protocol, 微软媒体服务协议):用来访问并流式接收 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数据传送。

    (5). RTSP(Real-Time Streaming Protocol, 实时流传输协议):是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。RTSP是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。RTSP建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流交换是可能的,通常它本身并不发送连续流。换言之,RTSP充当多媒体服务器的网络远程控制。RTSP连接没有绑定到传输层连接,如TCP。在RTSP连接期间,RTSP用户可打开或关闭多个对服务器的可传输连接以发出RTSP请求。此外,可使用无连接传输协议,如UDP。RTSP流控制的流可能用到RTP,但RTSP操作并不依赖用于携带连续媒体的传输机制。更详细介绍可参考:https://blog.csdn.net/fengbingchun/article/details/90546484

    (6). MIME(Multipurpose Internet Mail Extensions, 多用途互联网邮件扩展类型):是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。它是一个互联网标准,扩展了电子邮件标准,使其能够支持:非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息(Header information)。

    (7). RTMP(Real Time Messaging Protocol, 实时消息传输协议):是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。

    (8). RTMFP(Secure Real-Time Media Flow Protocol):是Adobe公司开发的一套新的通信协议,该协议可以让使用Adobe Flash Player的终端用户之间进行直接通信。用Adobe AIR框架开发的程序也可以用此协议来发布直播、实时信息。

    (9). HLS(HTTP Live Streaming):是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

    流媒体播放方式

    (1). 单播在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,这种传送方式称为单播。每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余首先造成服务器沉重的负担,响应需要很长时间,甚至停止播放;管理人员也被迫购买硬件和带宽来保证一定的服务质量。

    (2). 组播:IP组播技术构建一种具有组播能力的网络,允许路由器一次将数据包复制到多个通道上。采用组播方式,单台服务器能够对几十万台客户机同时发送连续数据流而无延时。媒体服务器只需要发送一个信息包,而不是多个;所有发出请求的客户端共享同一信息包。信息可以发送到任意地址的客户机,减少网络上传输的信息包的总量。网络利用效率大大提高,成本大为下降。

    (3). 点播点播连接是客户端与服务器之间的主动的连接。在点播连接中,用户通过选择内容项目来初始化客户端连接。用户可以开始、停止、后退、快进或暂停流。点播连接提供了对流的最大控制,但这种方式由于每个客户端各自连接服务器,却会迅速用完网络带宽

    (4). 广播指的是用户被动接收流在广播过程中,客户端接收流,但不能控制流。例如,用户不能暂停、快进或后退该流。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。使用单播发送时,需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的那些用户,而使用广播方式发送,数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会非常浪费网络带宽。组播吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的那些客户。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。

    流媒体技术应用流媒体技术广泛用于多媒体新闻发布、在线直播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、实时视频会议等互联网信息服务的方方面面。流媒体技术的应用将为网络信息交流带来革命性的变化,对人们的工作和生活将产生深远的影响。一个完整的流媒体解决方案应是相关软硬件的完美集成,它大致包括下面几个方面的内容:内容采集、视音频捕获和压缩编码、内容编辑、内容存储和播放、应用服务器内容管理发布及用户管理等。流媒体技术和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的计算机上创建一个缓冲区,在播放前预先下一段数据作为缓冲,在网路实际连线速度小于播放所耗的速度时,播放程序就会取用一小段缓冲区内的数据,这样可以避免播放的中断,也使得播放品质得以保证。

    流媒体传输流程在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。具体的传输流程如下:

    (1). Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来。

    (2). 用HTTP从Web服务器检索相关数据,由A/V播放器进行初始化。

    (3). 从Web服务器检索出来的相关服务器的地址定位A/V服务器。

    (4). A/V播放器与A/V服务器之间交换A/V传输所需要的实时控制协议。

    (5). 一旦A/V数据抵达客户端,A/V播放器就可播放。

    主流的流媒体技术有三种:分别是RealNetworks公司的RealMedia、Microsoft公司的WindowsMediaTechnology和Apple公司的QuickTime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议。

    UDP和TCP协议在实现数据传输时的可靠性有很大的区别:TCP协议中包含了专门的数据传送校验机制,当数据接受方收到数据后,将自动向发送方发出确认信息,发送方在接收到确认信息后才继续传送数据,否则将一直处于等待状态。而UDP协议则不同,UDP协议本身并不能做任何校验。由此可以看出,TCP协议注重传输质量,而UDP协议则注重传输速度。因此,对于对传输质量要求不是很高,而对传输速度则有很高的要求的视音频流媒体文件来说,采用UDP协议则更合适。

    流媒体的传输过程中需要缓存的支持:因为Interent是以包为单位进行异步传输的,因此多媒体数据在传输中要被分解成许多包,由于网络传输的不稳定性,各个包选择的路由不同,所以到达客户端的时间次序可能发生改变,甚至产生丢包的现象。为此,必须采用缓存技术来纠正由于数据到达次序发生改变而产生的混乱状况,利用缓存对到达的数据包进行正确排序,从而使视音频数据能连续正确地播放。缓存中存储的是某一段时间内的数据,数据在缓存中存放的时间是暂时的,缓存中的数据也是动态的,不断更新的流媒体在播放时不断读取缓存中的数据进行播放,播放完后该数据便被立即清除,新的数据将存入到缓存中。因此,在播放流媒体文件时并不需占用太大的缓存空间

    一些术语:

    直播过程:[采样] --> [编码] --> [推流] --> [接流] -->[流处理] --> [分发] -->[拉流] --> [解码] -->[播放]。

    编码:就是对视频/音频数据进行压缩的过程。视频压缩算法中通常会将视频帧分为不同类型,常见的有I帧、P帧、B帧三种。视频是一张张图片的序列,但如果每张图片都完整,就太大了,因而会将视频序列分成三种帧:(1). I帧:也称关键帧。里面是完整的图片,只需要本帧数据,就可以完成解码。(2). P帧:前向预测编码帧。P帧表示的是这一帧跟之前一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面,叠加上和本帧定义的差别,生成最终画面。(3). B帧:双向预测内插编码帧。B帧记录的是本帧与前后帧的差别。要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的数据与本帧数据的叠加,取得最终的画面。I帧最完整,B帧压缩率最高,而压缩后帧的序列,应该是IBBP间隔出现。这就是通过时序进行编码。

    I:帧内编码帧,特点:

    (1). 它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;

    (2). 解码时仅用I帧的数据就可重构完整图像;

    (3). I帧描述了图像背景和运动主体的详情;

    (4). I帧不需要参考其他画面而生成;

    (5). I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);

    (6). I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;

    (7). I帧不需要考虑运动矢量;

    (8). I帧所占数据的信息量比较大。

    P:前向预测编码帧,P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧”某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧”某点”的预测值并与差值相加以得到P帧”某点”样值,从而可得到完整的P帧。又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧。特点:

    (1). P帧是I帧后面相隔1~2帧的编码帧;

    (2). P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差);

    (3). 解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像;

    (4). P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧;

    (5). P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;

    (6). 由于P帧是参考帧,它可能造成解码错误的扩散;

    (7). 由于是差值传送,P帧的压缩比较高。

    B:双向预测内插编码帧。B帧的预测与重构:B帧以前面的I或P帧和后面的P帧为参考帧,”找出”B帧”某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中”找出(算出)”预测值并与差值求和,得到B帧”某点”样值,从而可得到完整的B帧。又称bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧。特点:

    (1). B帧是由前面的I或P帧和后面的P帧来进行预测的;

    (2). B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量;

    (3). B帧是双向预测编码帧;

    (4). B帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确;

    (5). B帧不是参考帧,不会造成解码错误的扩散。

    GOP:视频流中两个I帧的时间距离。

    音频编码格式有:AAC、AMR、PCM、ogg、AC3、DTS、APE、AU、WMA。

    视频编码格式有:Xvid(MPEG4)、H264、H263、MPEG1、MPEG2、AC-1、RM、RMVB、H.265。

    码率:码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内采样率越大,数据流,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。当然,码率越大,文件体积也越大。

    通常来说,一个视频文件包括了画面(视频)及声音(音频),例如一个RMVB的视频文件,里面包含了视频信息和音频信息,音频及视频都有各自不同的采样方式和比特率,也就是说,同一个视频文件音频和视频的比特率并不是一样的。而我们所说的一个视频文件码流率大小,一般是指视频文件中音频及视频信息码流率的总和。

    帧率:也称为FPS(Frames Per Second,帧/秒),是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。越高的帧速率可以得到更流畅、更逼真的动画。每秒钟帧数(FPS)越多,所显示的动作就会越流畅。

    分辨率:视频分辨率是指视频成像产品所成图像的大小或尺寸。常见的视像分辨率有640*480,1024*768。在成像的两组数字中,前者为图片长度,后者为图片的宽度,两者相乘得出的是图片的像素,长宽比一般为4:3。480P:640*480个像素点;720P:1280*720个像素点;1080P:1920*1080个像素点。

    YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。YUV分为三个分量,”Y”表示明亮度(Luminance或Luma),也就是灰度值;而”U”和”V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

    硬编解码:通过硬件实现编解码,减轻CPU计算的负担,如GPU等。

    软编解码:如H264、H265、MPEG-4等编解码算法,更消耗CPU。

    :一般指通过网络传输的有序数据序列,如直播流,点播流。

    推流:指的是把采集阶段封包(将音频,视频打包成packet)好的内容传输到流媒体服务器的过程。

    接流:网络协议将编码好的视频流,从主播端推送到服务器,在服务器上有个运行了同样协议的服务端来接收这些网络数据包,从而得到里面的视频流,这个过程称为接流。

    拉流(抓流):指流媒体服务器已有直播内容,用指定地址进行拉取的过程。

    解码:把获取到的数据解压缩,恢复成原始数据。

    以上内容均来自网络整理,主要参考:

    1. https://baike.baidu.com/item/%E6%B5%81%E5%AA%92%E4%BD%93

    2. https://juejin.im/post/5a6873fd51882573497916bb

    3. https://blog.csdn.net/tttyd/article/details/12032357

    4. https://segmentfault.com/a/1190000017431963

    GitHub:https://github.com/fengbingchun/OpenCV_Test

    展开全文
  • 浅析 HLS 流媒体协议

    2020-12-06 04:03:44
    文章目录一、前言二、常见流媒体协议三、HLS 协议介绍四、HlS 系统架构1、HLS 服务器端2、HLS 分发端3、HLS 客户端4、小结五、示例分析六、总结 一、前言 在最近工作中接触到了视频点播和直播业务,也了解到了一些...

    一、前言

    在最近工作中接触到了视频点播和直播业务,也了解到了一些流媒体的后端技术,这段时间希望将了解到的一些知识总结下来,这篇文章主要介绍 HLS 流媒体协议 的基础知识。

    二、常见流媒体协议

    常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这两种协议是完全不同的实现方式。主要区别如下:

    • 一种是分段渐近下载,一种是基于实时流来实现播放;
    • 协议不同,HTTP 协议的渐近下载意味着可以在一台普通的 HTTP 的应用服务器上就可以直接提供视频点播和直播服务;
    • 延迟有差异,HTTP 渐近下载的方式的延迟理论上会略高于实时流媒体协议的播放;
    • 渐近下载会生成索引文件,所以需要考虑存储,对 I/O 要求较高。

    三、HLS 协议介绍

    HLS 协议是由 Apple 公司提出并推广开来的,以下是来一段维基百科的定义:

    HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)playlist文件,用于寻找可用的媒体流。
    HLS只请求基本的 HTTP 报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。
    苹果公司把HLS协议作为一个互联网草案(逐步提交),在第一阶段中已作为一个非正式的标准提交到IETF。但是,即使苹果偶尔地提交一些小的更新,IETF却没有关于制定此标准的有关进一步的动作。[1]

    在网上已经有很多关于 HLS 的资料,本文主要按照我的理解整理下 HLS 流媒体协议基础知识。

    HLS 协议格式要求:

    • 视频的封装格式 TS(流媒体文件);
    • 保存 TS 索引的 M3U8 文件;
    • 视频的编码格式:H264 (只要 MPEG-TS 支持,基本都可以,只是有些格式不是免费的;音频类似);
    • 音频的编码格式:AAC、MP3、AC-3。

    HLS 协议优势:

    • 使用标准 HTTP 传输数据,具有较好的网络穿透及防屏蔽性,更易于内容分发网络传输;
    • HLS 协议本身是支持码率自适应的,客户端可以根据实际网络状况切换到合适的码率播放;
    • HLS 内容发布服务更简单,对系统设备要求较低,更容易实现负载均衡,并且 HLS 是无状态协议的 HTTP,客户端只需要下载即可。

    HLS 协议劣势:

    • 延时较大,尤其是在直播的情况下,很难做到 10s 以内的延时(不排除网上各种改进版本及算法);
    • 内容生成时对编码端性能要求较高。

    四、HlS 系统架构

    下图来自 Apple 官网:

    HlS 系统架构

    HLS 支持直播或者点播,同时支持加密和认证。从概念上来说,HTTP通常包括三部分:服务器端、发布端、客户端。

    1、HLS 服务器端

    服务器端主要负责将输入的媒体数据进行编码、封装,并将封装之后的文件切片,以满足发布端的要求。其输出可以是音视频原始数据,也可以是编码之后的数据,也可以是封装好的 TS 数据。这也输入最终会通过分片工具切分成发布端需要的格式。这里涉及三部分:

    • 多媒体编码器 (Media Encoder):多媒体编码器主要把采集自音视频设备的实时信号编码,封装。编码中必须选择客户端支持的格式,比如 h264 视频+ aac 音频。目前 HLS 支持的封装格式是 MPEG-TS 或者 MPEG 基本流(MPEG-ES,仅支持纯音频)。编码完成之后,编码器可以把封装之后的格式通过本地网络或者其他机制传递给分片工具(segmenter)。

    • 分片工具(segmenter):按照输入源的不同,通常分为流分片器、文件分片器。顾名思义,二者主要区别在于输入的文件格式上。 流分片器输出的是从本地网络滴入的 MPEG-TS 流,而文件分片器处理的是封装好的 TS文件。它们的工作原理类似:将 MPEG-TS 切分成一系列等时长的媒体文件,但保证这些小的分片是可以无缝重建的,播放时音视频是连续的。分片工具还会创建索引文件(M3U8),其中包含指向单独媒体文件的索引信息。每当分片器完成一个新的媒体文件,它将更新索引文件。该索引用于记录媒体文件的位置及可访问性。在此过程中,分片工具可以加密每个分片,并为其创建密钥文件。

    2、HLS 分发端

    HLS 分发端较为简单,只要使用标准的网络服务器即可。它们负责接受客户端请求,并将处理好的多媒体文件和资源发送给客户端。如果并发量较大,可能需要边缘网络或其他内容分发网络。
    分发系统是一个 web 服务器或者 web 缓存系统,它们能够通过 HTTP 向客户端发送媒体文件及索引文件。多数情况下,分发内容之前无需额外配置服务器、模块,仅需很少的配置就在 web 服务器上正常工作。

    3、HLS 客户端

    客户端负责选择合适的请求资源,下载器资源,然后解码显示(整成播放器的功能)。
    客户端从获取索引文件开始,通常使用给定的 URL 来识别该流的信息。这个索引文件一般给出了可用媒体文件、解密密钥和其他可选流的位置。客户端选定流之后,就开始顺序下载每个可用的媒体文件。每个文件中包含特定流的连续分片。只要客户端下载到足够的数据,就可以开始解码数据并显示了。
    如果需要,客户端负责读取所有解密密钥、认证或为用户提供用于认证或解密的接口。
    客户端可以一直持续这个过程,直到它遇到索引文件中的 #EXT-X-ENDLIST 标签;若不存在该标签,则表示该索引文件是一个直播源,客户端需要定期更新索引文件,重复上述过程。

    较为常用的 HLS 系统中,使用硬编码器将输入的音频编码为 AAC、将输入的视频编码为 h264,并将二者复用到 MPEG-TS 中,之后使用分片工具将其切分为一系列小的 TS 文件;这些文件将可以放到 web 服务器上。分片工具同时会创建并维护一个索引文件(HLS 中称为 M3U8),其中包含可用媒体文件的列表。索引文件的URL会在 web 服务器上发布。客户端可以读取该索引文件,然后顺序请求列出的媒体文件,这些分片可以无缝播放。

    4、小结

    左下方的 inputs 的视频源是什么格式都无所谓,他与 server 之间的通信协议也可以任意(比如RTMP),总之只要把视频数据传输到服务器上即可。这个视频在 server 服务器上被转换成 HLS 格式的视频(TS 和 M3U8 文件)文件。细拆分来看 server 里面的 Media encoder 的是一个转码模块负责将视频源中的视频数据转码到目标编码格式(H264)的视频数据,视频源的编码格式可以是任何的视频编码格式。转码成 H264 视频数据之后,在 stream segmenter 模块将视频切片,切片的结果就是 index file(m3u8)和 ts 文件了。图中的 Distribution 其实只是一个普通的 HTTP 文件服务器,然后客户端只需要访问一级 index 文件的路径就会自动播放 HLS 视频流了。

    下图是一个简单概括的流媒体播放实现时序图:
    HLS播放实现时序图
    简单描述 HLS 的工作原理是将整个流分成一系列小的基于 HTTP 的文件下载,每个下载将加载整个潜在的无限制传输流中的一小部分。由于片段之间的分段间隔时间非常短,所以看起来是一条完整的播放流,实现的重点是对于视频文件的分割。同时,HLS 还支持多码率的切换,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。多清晰度就是这样实现的。
    为了播放视频,客户端首先需要获得播放列表文件,也就是根据 HLS 生成的片段列表,该列表中包含每个流媒体的文件,客户端以类似轮询的方式不断重复加载播放列表文件并将片段追加实现流媒体的播放。

    五、示例分析

    playlist.m3u8 的请求。这实际上是指向其他索引的指针,这些块需要作为流媒体的一部分进行下载。m3u8 文件本质说其实是采用了编码是 UTF-8 的 m3u 文件。
    它只是一个纯索引文件,一个文件片段的列表,客户单打开它并不是播放它,而是根据它里面的文件片段找到视频文件的网路地址进行播放。

    这里请求一个 m3u8 文件打开看一下究竟是什么:

    curl http://wowzaec2demo.streamlock.net/vod/_definst_/smil:streaming_tutorial/streaming_tutorial.smil/playlist.m3u8
    #EXTM3U
    #EXT-X-VERSION:5
    #EXT-X-STREAM-INF:BANDWIDTH=3128000,CODECS="avc1.4d001f,mp4a.40.2",RESOLUTION=1280x720
    chunklist_w1690990834_b3128000.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=1778000,CODECS="avc1.4d001e,mp4a.40.2",RESOLUTION=852x480
    chunklist_w1690990834_b1778000.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=1048000,CODECS="avc1.4d001e,mp4a.40.2",RESOLUTION=640x360
    chunklist_w1690990834_b1048000.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=738000,CODECS="avc1.4d0015,mp4a.40.2",RESOLUTION=428x240
    chunklist_w1690990834_b738000.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=528000,CODECS="avc1.4d000d,mp4a.40.2",RESOLUTION=312x176
    chunklist_w1690990834_b528000.m3u8
    

    我们分析该 m3u8 文件:

    • #EXTM3U:扩展标记 ,意思是我是 m3u 文件
    • #EXT-X-VERSION:版本
    • #EXT-X-STREAM-INF:指定一个包含多媒体信息的 media URI 作为 PlayList,一般做 M3U8 的嵌套使用,它只对紧跟后面的 URI 有效,
    • #EXT-X-STREAM-INF:有以下属性:
      • BANDWIDTH:带宽
      • CODECS:不是必须的。
      • RESOLUTION:分辨率。

    第一个块是 chunklist_w1057647775_b3128000 还是个 m3u8 文件,之后可以看到每个后续块。每个块都将显示客户端要下载的媒体 URI。
    同时可以观察发现,这其实是不同清晰度的 m3u8 文件,客户端根据网络或者选项去选择不同的清晰度的 m3u8 文件。
    上面的 m3u8 文件为一级 m3u8 文件,这两个 m3u8 就称为二级索引文件,那么我们就顺着二级索引文件继续查看:

    curl http://wowzaec2demo.streamlock.net/vod/_definst_/smil:streaming_tutorial/streaming_tutorial.smil/chunklist_w570392994_b3128000.m3u8
    #EXTM3U
    #EXT-X-VERSION:5
    #EXT-X-TARGETDURATION:6
    #EXT-X-MEDIA-SEQUENCE:0
    #EXTINF:6.0,
    media_w570392994_b3128000_0.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_1.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_2.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_3.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_4.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_5.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_6.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_7.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_8.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_9.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_10.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_11.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_12.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_13.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_14.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_15.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_16.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_17.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_18.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_19.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_20.ts
    #EXTINF:6.0,
    media_w570392994_b3128000_21.ts
    #EXTINF:2.66,
    media_w570392994_b3128000_22.ts
    #EXT-X-ENDLIST
    

    我们分析该二级索引文件:

    • #EXT-X-VERSION : 版本
    • #EXT-X-TARGETDURATION:指定最大的流片段时间长(秒),也就是说这些 ts 切片的时长不能大于这个值;
    • #EXTINF: 指定每个流片段(ts)的持续时间(秒),仅对其后面的 URI 有效,title 是下载资源的 URI;
    • #EXT-X-ENDLIST: 结束列表,这个标志同时也说明当前的流是一个非直播流。

    这里我们看到了真正播放的流片段,即 ts 片,客户端拿到的就是这个 ts 片,然后不断下载请求到该片段并连续播放。
    有些人可能要问了,那 ts 文件又到底是个什么东西呢,那就下载来看看,拿着其中的一个 ts 文件浏览器打开保存到本地
    发现保存到本地的文件就可以直接打开,其实就是真正的流媒体文件,但是这个文件只是片段,大概只有 6s 的时间。
    在这里插入图片描述

    请求下该 “media_w570392994_b3128000_0.ts”流片段:

    curl -I http://wowzaec2demo.streamlock.net/vod/_definst_/smil:streaming_tutorial/streaming_tutorial.smil/media_w570392994_b528000_0.ts
    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Access-Control-Expose-Headers: Date
    Server: WowzaStreamingEngine/4.7.5.01
    Cache-Control: no-cache
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Methods: HEAD, GET, POST
    Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control, Range
    Date: Sat, 05 Dec 2020 18:05:53 GMT
    Content-Type: video/MP2T
    Content-Length: 426008
    

    六、总结

    在这里插入图片描述
    播放 HLS 视频流的逻辑其实非常简单,先下载一级 Index file,它里面记录了二级索引文件(Alternate-A、Alternate-B、Alternate-C)的地址,然后客户端再去下载二级索引文件,二级索引文件中又记录了 TS 文件的下载地址,这样客户端就可以按顺序下载 TS 流媒体文件并连续播放。

    参考资料:

    • https://blog.csdn.net/phachon/article/details/52524596
    • https://www.flood.io/blog/load-testing-hls-with-ruby-jmeter
    • https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008332-CH1-SW1
    • https://www.jianshu.com/p/426425cad08a
    展开全文
  • 流媒体服务器原理和架构解析

    千次阅读 2020-05-13 10:26:16
    原文: https://blog.csdn.net/xuheazx/article/details/52020933多媒体数据文件一个完整的多媒体文件是由音频和视频两部分组成的,H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式,字幕文件只是附加...

    原文: https://blog.csdn.net/xuheazx/article/details/52020933

    一个完整的多媒体文件是由音频和视频两部分组成的,H264Xvid等就是视频编码格式,MP3AAC等就是音频编码格式,字幕文件只是附加文件。目前大部分的播放器产品对于H.264 + AACMP4编码格式支持最好,但是MP4也有很多的缺点,比如视频header很大,影响在线视频网站的初次加载时间。

    为了降低头部体积,需要进行视频本身的物理分段等等。对MPEG2-TS格式视频文件进行物理切片,分成一小段,这种方式被Apple公司的HTTP Live Streaming (HLS)技术采用。另外一种是使用Fragmented MP4文件格式,这是一种文件内部的逻辑分割方式,而视频文件还是完整的,这种技术被 Microsoft Smooth StreamingAdobe HTTP Dynamic Streaming采用。很多在线视频网站在带宽耗费的压力下,主要选择的是adobe公司提供的FLVF4VFLV是流媒体封装格式,可将其数据看为二进制字节流。总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的TagTag Size对组成。

    流媒体传输类型

    流媒体在播放前不是完全下载整个文件,而是把开始部分内容存入内存,数据流是随时传送随时播放。

    流媒体服务器提供的流式传输方式有两种:顺序流式传输实时流式传输 两种方式。

    顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体。如果使用普通的HTTP服务器,将音视频数据以从头至尾方式发送,则为顺序流媒体传输。实时流式传输总是实时传送,特别适合现场事件。一般来说,如果视频为现场直播,或使用专用的流媒体服务器,或应用如RTSP等专用实时协议,即为实时流媒体传输。实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差。

    在流式传输时,流媒体数据具有实时性,等时性等基本特点,流服务期和客户终端要保证各种媒体间的同步关系,因此,流媒体传输对“最大延时”,“延时抖动”等QoS参数都有严格要求。

    实时流传输既可传输实况直播,也可传输完整的音视频文件(专用协议流式)。

         顺序流媒体不可用于实况直播,仅能传输完整的音视频文件(HTTP渐进式)。

     

    区别

    实时流

    顺序流

    音视频数据源

    实时从录制设备上采集,

    或(使用专用协议传输的)文件

    可播放的音视频文件

    服务器类型

    专用流媒体服务器,如:

    QuickTime Streaming Server

    Real Server

    Windows Media Server

    Flash Media Server

    普通的HTTP服务器,

    FTP服务器

    传输协议

    专用协议RTSP

    HLSRTMP

    一般的HTTP协议,

    与传输网页的协议相同

    跳播

    可随机访问任意片段

    在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分

     

    主流的流媒体协议

    主流的流媒体协议主要有: RTMP HLS RTSP等。

     

    区别

    RTMP

    HLS

    RTSP

    全称

    Real Time Message Protocol

    Http Live Stream

    Real Time Streaming Protocol

    上层协议

    TCPHTTP

    HTTP

    RTPRTCP

    软件模型

    C\S

    B\S

    C\S

    研发主要来自

    Adobe

    Apple

    Microsoft

    针对客户端

    支持Flash类产品

    的浏览器

    支持HTML5的浏览器

    苹果的Safari浏览器

    支持HTML5的浏览器

    播放器

    视频格式要求

    FLV F4V

    MP4

    服务器要求

    专用Flash服务器

    Flash Media Server

    Red5

    普通HTTP服务器

    专用RTSP流媒体服务器

    实况直播要求

    专用编码器上传

    Flash Media Encoder

    专用编码器上传

    Apple开发工具

    与服务器相关,

    自定义上传

    文件播放要求

    FLV F4V文件即可,

    服务器会自动分解为

    F4f 数据文件

    f4x索引文件

    TS数据文件,

    M3u8索引文件

    与服务器相关,

    与播放器相关

     

    流媒体协议原理

    (一)  HTTP渐进式下载原理(仅支持文件播放)

    HTTP边下载边播放,严格意义上讲,不是直播协议。他的原理是先下载文件的基本信息,音频视频的时间戳,再下载音视频数据,以播放mp4为例,先下载文件头,根据文件头指引下载文件尾,然后再下载文件的音视频数据。

     
     

    播放方式:浏览器调用系统播放器播放;

               使HTML5Video标签,浏览器支持直接播放。(图片显示不出来)

     

    (二)  苹果支持的HLS原理(实况直播、文件点播)

     

    服务器端有三个组件:

    其一:编码器(media encoder用于将设备输出的格式转为H264AAC,并封装为MPEG-2传输流;

    其二:流分段器(stream segmenter用于实况直播,将MPEG-2流分割为多个小片段后输出;

    其三:文件分段器(file segmenter用于文件点播,将文件分隔为多个小片段后输出;

    分发原理

    数据经以上三部分处理后为.ts文件(媒体数据)及.m3u8文件(媒体数据索引)存在于服务器之上。 客户端访问.m3u8后按索引下载.ts文件进行播放。

     

    下面为某m3u8文件内容:

    #EXTM3U

    #EXT-X-TARGETDURATION:30

    #EXTINF:30,

    http://192.169.1.176/sample_100k-1.ts

    #EXTINF:30,

    http://192.169.1.176/sample_100k-2.ts

    #EXTINF:30,

    http://192.169.1.176/sample_100k-3.ts

    #EXT-X-ENDLIST

     

    根据这个文件,播放器会依次下载sample_100k-1.tssample_100k-2.tssample_100k-3.ts

     

     

         HLS的文件点播

    1. 使用苹果开发工具“文件分段器”将基于H264和AAC或MP3的MPEG4分段,

    生成.ts和.m3u8文件,存储于普通服务器上。

    2. 苹果应用程序或苹果浏览器可以通过访问.m3u8文件获取到索引,并下载所需要的数据片段来播放。

         HLS的实况直播

    1.  使用苹果开发工具“流分段器”将基于H264AACMP3MPEG2传输流分段,

    可使用其它工具将MPEG4音视频文件加载到MPEG2传输流当中。

    生成.ts.m3u8文件,存储于普通服务器上。

    2.  苹果应用程序或苹果浏览器可以通过访问.m3u8文件获取到索引,并下载所需要的数据片段来播放。

     

    (三) Adobe Flash 支持的RTMP协议(支持文件播放 和 实况直播)

    RTMP(Real Time Messaging Protocol) 

    Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。

    它有四种变种:

    1)   工作在TCP之上的明文协议,使用端口1935

    2)   RTMPS通过TLS/SSL连接;

    3)   RTMPT封装在HTTP请求之中,可穿越防火墙;

    4)   RTMPS类似RTMPT,但使用的是HTTPS连接;

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

    必须采用Flash服务器FMS(Flash Media Server)  RED5.

    FMS的文件点播

    1.   服务器将F4v  Flv文件转化为RTMP流或HTTP

    2.   客户端获取RTMP流,提取相应的Flv  F4v文件片段进行播放。

    FMS的实况直播

    1.   设备端将数据转化为F4v片段,通过RTMP流上传到服务器

    2.   服务器转发RTMP流到客户端

    3.   客户端获取RTMP流,提取数据片段播放。

     

    四) RTSP协议

    该协议用于C/S模型,是一个基于文本的协议,用于在客户端和服务器端建立和协商实时流会话。

    实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDPTCP,提供途径,并为选择基于RTP上发送机制提供方法。

    实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流交换是可能的,通常它本身并不发送连续流。换言之,RTSP充当多媒体服务器的网络远程控制。RTSP连接没有绑定到传输层连接,如TCP。在RTSP连接期间,RTSP用户可打开或关闭多个对服务器的可传输连接以发出RTSP请求。此外,可使用无连接传输协议,如UDPRTSP流控制的流可能用到RTP,但RTSP操作并不依赖用于携带连续媒体的传输机制。

    协议支持的操作如下:

    (1)从媒体服务器上检索媒体:用户可通过HTTP或其它方法提交一个演示描述。如演示是组播,演示式就包含用于连续媒体的的组播地址和端口。如演示仅通过单播发送给用户,用户为了安全应提供目的地址。

    (2)媒体服务器邀请进入会议:媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分,或全部。这种模式在分布式教育应用上很有用,会议中几方可轮流按远程控制按钮。

    (3)将媒体加到现成讲座中:如服务器告诉用户可获得附加媒体内容,对现场讲座显得尤其有用。如HTTP/1.1中类似,RTSP请求可由代理、通道与缓存处理。

    下面区分几种操作模式。

    (1)单播:用户选择的端口号将媒体发送到RTSP请求源。

    (2)服务器选择地址多播:媒体服务器选择多播地址和端口,这是现场直播或准点播常用的方式。

    (3)用户选择地址多播:如服务器加入正在进行的多播会议,多播地址、端口和密钥由会议描述给出。

     

    RTSP控制通过单独协议发送的数据流,与控制通道无关。例如,RTSP控制可通过TCP连接,而数据流通过UDP。因此,即使媒体服务器没有收到请求,数据也会继续发送。在连接生命期,单个媒体流可通过不同TCP连接顺序发出请求来控制。所以,服务器需要维持能联系流与RTSP请求的连接状态。RTSP中很多方法与状态无关,但下列方法在定义服务器流资源的分配与应用上起着重要的作用:

    (1) SETUP:让服务器给流分配资源,启动RTSP连接。

    (2) PLAYRECORD:启动SETUP分配流的数据传输。

    (3) PAUSE:临时停止流,而不释放服务器资源。

    (4) TEARDOWN:释放流的资源,RTSP连接停止。

    标识状态的RTSP方法使用连接头段识别RTSP连接,为响应SETUP请求,服务器连接产生连接标识。

    RTSP为纯粹的传输控制协议。

    RTSP协议本身不与它负载的媒体数据相关。

    RTSP协议需要自定义客户端向服务器发送RTSP命令。

     

    流媒体服务器的协议栈

    TCPIP参考模型中,传输层通信协议TCPUDP都不能满足流媒体传输的QoS要求。由于TCP协议采用滑动窗口控制机制,数据传送随着流控窗口动态的启动和关闭,难以满足流媒体实时和等时的传送要求。UDP协议的无连接特点能够提高传输速率,虽然可以在某种程度上满足流媒体的实时性要求,但是由于其本身的不可靠性,也无法满足流媒体传输的需要。

    针对传输层协议的矛盾,为了实现流媒体在IP上的实时传送播放,设计流媒体服务器时需要在传输层协议(TCPUDP)和应用层之间增加一个通信控制层。在增加的通信控制层,采用相应的实时传输协议,主要有:数据流部分的实时传输协议RTPRealtime Transport Protocol),用于控制部分的实时传输控制协议RTCPRealtime Control Protocol)和实时流化协议RTSPRealtime Streaming Protocol)。

                                                                流媒体服务器的协议栈,如图1所示。(图片显示不出来)

    RTP协议主要是用来传送实时的流媒体信息,数据报主要包括多媒体数据,以及所携带负载的时间戳,顺序号等。

    RTCP协议的数据报主要包括了接收者收到某个多媒体流的服务质量信息Qos,用于对服务器端的反馈。

    RTSP是一种控制协议,包括通信连接前的设定,从服务器送出的多媒体资料的控制。用于控制具有实时性的数据传输。它提供对流媒体的类似VCRVideo Cassette Recorder)的控制功能,如播放、暂停、快进、录制等,也就是RTSP对多媒体服务器实施网络远程控制。

      

                                                         流媒体服务器的功能框图,如图2所示。(图片显示不出来)

    当服务器收到RTSP请求,它首先产生RTSP请求对象。服务器通过RTSP协议的应答信息将请求的内容以流会话(streaming session)的形式描述,内容包括数据流包含多少个流、媒体类型、和编解码格式。一个流会话由一个或多个数据流组成,如视频流和音频流等。实际的数据流通过RTP协议传递到客户端。RTP在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP本身并不能为顺序传送数据包提供可靠的传送机制,它依靠RTCP一起提供流量控制和拥塞控制服务。在RTP会话期间,各连接者监视下层网络的性能,并将相关信息放入RTCP包,周期性地传送RTCP包来通知发送方。发送方也可以用RTCP包提供每次的会话信息,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTPRTCP配合使用,因有效的反馈和最小的开销使传输效率最佳化。

      通过流媒体服务器的协议栈的设计,可以明确流媒体服务器是在传输层协议(TCPUDP)上解释RTPRTCPRTSP协议的,所有的客户连接请求都是以TCP的端口获得的,流媒体数据也都是打成RTP包,通过UDP端口发出去的,因此,对于TCPUDP端口事件的调度以及如何把大量的流媒体数据从磁盘空间传递到网络上成为制约流媒体服务器性能的主要因素。

     

                                              传统流媒体服务器的处理流程,如图 3所示。(图片显示不出来)

       流媒体服务器面对一个单一的客户,完成的过程如下:

       1)在客户端发出RTSP连接请求后,服务器通过对TCP端口的监听,读入请求。

       2)解析请求内容,调入相应的流媒体文件。

       3)形成RTP包,分发数据流包,获得RTCP包。

    4)数据包发送完毕,关闭连接。

     

                               上图是RTSP直播服务器的系统框图。 (图片显示不出来)

    从摄像头采集实时图像,送到编码器进行实时编码,一般是生成TS格式的数据流,然后数据流输出到视频直播服务器。客户端先发送请求到web服务器,然后再重定向到RTSP视频服务器,从视频服务器读取数据,同时实现播放,暂停等功能。

    流媒体的传输技术

    一、单播:

    主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。

    单播的优点:

    1. 服务器及时响应客户机的请求

    2. 服务器针对每个客户不通的请求发送不通的数据,容易实现个性化服务。

    单播的缺点:

    1. 服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。

     

    二、 广播:

    主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。

    广播的优点:

    1. 网络设备简单,维护简单,布网成本低廉

    2. 由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。

    广播的缺点:

    1.无法针对每个客户的要求和时间及时提供个性化服务。

    2. 网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。

    3. 广播禁止在Internet宽带网上传输。

     

    三、组播:

    主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。

    组播的优点:

    1. 需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。

    2. 由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。

    3. 此协议和单播协议一样允许在Internet宽带网上传输。

    组播的缺点:

    1.与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。

    2.现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。

     

    自适性串流技术

    自适性串流(ABS - adaptive bitrate streaming),是一种在电脑网络使用的一种串流技术。过去的流媒体技术多使用 RTP/RTSP,但现在的技术则大多基于 HTTP,并为更高效在大型分布式HTTP网络(例如互联网)分发而设计。

    此技术根据实时检测的用户的带宽和CPU使用率,调整视频流的质量。这需要使用一种可以将单一视频源输出为多码率的编码器。播放器客户端依赖可用资源在不同码率的流之间切换。"结果就是:更少缓存、更快的开始播放、为低端和高端链接都提供良好的体验。

    根据当前广泛使用的实现,更具体来说,自适应串流(ABS):

    使用 HTTP 传送视频流;

    使用多码率编码源内容;

    每个单码率的流被切成小的,几秒钟的小切片;

    流媒体客户端首先获取所有码率的切片索引信息。一开始,客户端先请求最低码率的串流。如果客户端判断下载速度比当前码率的切片串流快,它就去请求下一个更高码率的串流。随着播放的进行,如果客户端发现下载速度比当前码率的切片串流慢,转而请求下一个较低码率的串流。

    切片大小和具体实现密切相关,不过一般都在210秒之间。每个切片由一个完整的GOP序列组成,一个GOP序列里面有1个或者多个I帧,GOP序列的第一个帧必须是I帧,并且每个切片都能单独的解码播放显示。

    与传统的流媒体技术比较,缺点:需要额外的存储,更多的编码代价,复杂的只适应码率逻辑。

     流媒体服务器原理和架构解析 - 网易视频技术小组博客 - 网易视频技术小组的博客

     

    Adaptive streaming overview

     

    Adaptive streaming in action

     

    MPEG-DASH (Dynamic Adaptive Streaming over HTTP)

    MPEG-DASH 是基于HTTP的自适应串流方案中的唯一国际标准。MPEG-DASH 技术由 MPEG 主导开发:

    2010年开始DASH相关工作,20111月成为国际标准草案,201111月成为国际标准[3]20124月,MPEG-DASH ISO/IEC 23009-1:2012 发表。

    MPEG-DASH 基于3GPP9版的 Adptive HTTP streamingAHS)和 Open IPTV Forum2版的 HTTP Adaptive Streaming (HAS)。作为与MPEG合作的一部分,3GPP10版采用了DASH(采用特别的编码和操作模式),用于无线网络。

    可用的 MPEG-DASH 实现有:

    bitmovin GmbH 的开源 DASH 客户端库 libdash  DASHEncoder

     

    Adobe HDS (HTTP Dynamic Streaming)

    Flash Player  Flash Media Server 的最新版支持传统的 RTMP 协议和 HTTP协议。后者和Apple和微软基于HTTP的方案类似。

    基于HTTP的流的优势是:

    不需要防火墙开普通web浏览器所需端口以外的任何端口

    允许视频切片在浏览器、网关和CDN的缓存,从而显著降低源服务器的负载。

    HDS 的文件格式为 FLV/F4V/MP4,索引文件为 f4m,同时支持直播和时移。

     

    Apple HLS (HTTP Live Streaming)

    是一种基于HTTP的媒体流通信协议,在 iPhone 3.0 及更新版中成为标准功能。

    201010月,所有自适应串流方案都作为产权提供时,Apple HLS提交到 IETF,成为正式的 RFC.

    HLS 串流使用扩展名为 .m3u8 的文件作为索引,文件切片格式为TS,支持直播和时移。支持的客户端包括 iPad, iPhone, STBVLC和其他支持的设备。

     

    Microsoft MSS (Microsoft Smooth Streaming)

    Smooth Streaming IIS的媒体服务扩展,用于支持基于HTTP的自适应串流。

    201011月发布的 IIS Media Services 4.0 中,微软引入了一项使 Live Smooth Streaming H.264/AAC 视频动态封装成 Apple HLS 格式的功能,直接提供给 iOS 设备,而不需要再次编码。同时支持直播和点播把1080P全高清视频发送到Silverlight客户端。

    MSS 的文件切片格式为 mp4fragmented-mp4),索引文件为ism/ismc,同时支持直播和时移。

     

    流行视频网站的流媒体服务器架构

    为了能够提供各类设备的在线视频播放需求,对于在线视频流媒体服务,提出了很多需求,对于早期建立的视频网站(土豆,优酷,ku6等)都只提供一种视频流媒体格式(FLV)的支持,我们称之为单一的流媒体服务架构,如图:

     

    流媒体服务器原理和架构解析 - 网易视频技术小组博客 - 网易视频技术小组的博客

     图:单一流媒体服务的架构图

    但是,在实际业务运营中遇到了很多问题:

    1) 视频存储的压力很大

    同一种视频码流(h.264,因为针对不同平台应用设备(如表2)的播放需求,需要不同的封装格式,需要将产生大量重复视频流存储的压力,视频网站的视频量巨大,多支持一种格式将产生几百TB级的存储压力,从机房到机柜,视频流同步等环节负载和压力都是巨大的。

    2) 封装后的视频格式是否真的被播放

    视频流封装完成后,同步到各地的中心节点后,是否真的有视频流请求产生,还是仅仅处于视频准备状态,是否会影响中心节点的磁盘占用,缓存节点的命中率不高。

    3) 封装格式的功能性升级,导致老视频再次封装

    封装格式的不断发展,TS流,HTTP live Stream的不断优化,将导致现有的视频流不断需要翻新或重复封装。 为了解决上述各类问题,视频网站流媒体服务的研发工程师进行了多格式的流媒体服务架构探索,提供了各类视频封装格式的流媒体封装反向代理接口,该接口能够通过URL的请求,完成对特定视频编码格式(h.264)的封装。

     

    流媒体服务器原理和架构解析 - 网易视频技术小组博客 - 网易视频技术小组的博客

     图2:多格式的流媒体服务架构:

    如图所示,“流媒体容器封装服务“成为多格式视频流服务的核心,对于这个流媒体的封装服务,通过对h.264的视频编码流进行不同格式的封装,提供了多种视频流的推送。对于这个服务,我们希望能够尽快为视频的cache服务推送视频流,所以,在硬盘方面,选择了每分钟15000转的SAS硬盘,降低同一视频流的不同封装请求的IO延迟等待。

    作为最简单和原始的流媒体解决方案,单一流媒体服务架构唯一显著的优点在于它仅需要维护一个标准的视频流文件,而这样的服务器基础设施在互联网中已经普遍存在,其安装和维护的工作量和复杂性比起多格式流媒体服务架构来说要简单和容易的多。然而其缺点和不足却也很多,首先是维护的工作量较大,多份相同视频文件由于封装格式不相同,需要同时维护多个实体的码流文件,大量的占用磁盘的空间,再次,转码集群需要针对多种不同的封装格式,进行多次的视频转码,抢占很多资源,缺乏灵活的控制功能和扩展机制。

    展开全文
  • 流媒体传输类型 主流的流媒体协议 流媒体协议原理 ...(二) 苹果支持的HLS原理(实况直播、文件点播) (三) Adobe Flash 支持的RTMP协议(支持文件播放 ...  一个完整的多媒体文件是由音频和视频两部分组成的,H264、X...
  • 一句话:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。 因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没有看到相关的部分。而在私有RTSP的代码中,有关控制、同步等,是在RTP ...
  • 如何在Centos7.0 上搭建SRS 流媒体服务器 一、进入官网:http://www.ossrs.net/srs.release/releases/ 下载最新安装包 二、选择最新稳定版本进行下载 三、通过xftp工具将压缩包上传至centos7.0 root目录并更名为...
  • 通过Nodejs搭建流媒体服务器

    千次阅读 2020-07-08 11:44:27
    通过Nodejs搭建流媒体服务器1. 借助 Node-Media-Server 搭建自己的流媒体服务器2. 推流3. 拉流 1. 借助 Node-Media-Server 搭建自己的流媒体服务器 通过查看该模块Github地址了解详细介绍 1. 新建项目,在项目中安装...
  • 流媒体服务器原理和架构解析   多媒体数据文件 一个完整的多媒体文件是由音频和视频两部分组成的,H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式,字幕文件只是附加文件。目前大部分的播放器产品...
  • 简易RTMP流媒体服务器搭建 一

    千次阅读 2020-11-12 14:06:40
    上一次搭建rtmp服务器就是因为有几个人一起看电影的需求,最后也成功搭建好了也不是不能看的服务器进行推拉。有了上次的经验这次对RTMP服务器的搭建进行小小的总结~ ==本篇为记录文章,坑多!!如果想要直接上看...
  • 2.1当前的流媒体server.3 2.2Wowza功能...3 3.Nginx-based RTMP server.5 3.1 Nginx rtmp 功能点...5 3.2编译nginx rtmp模块...6 3.3配置以及功能介绍...6 3.4用nginx-rtmp-module搭建直播环境...8 3.5Nginx rtmp...
  • nginx+ffmpeg搭建流媒体服务器

    千次阅读 2016-12-12 13:33:38
    HLS协议在服务器端将直播数据存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从...
  • int('5.6') 【判断题】在使用CS过程中,如果导入媒体素材如视频,格式不兼容可先通过视频转换软件如格式工厂或者Mediacorder等先进行格式转换,然后导入即可 【单选题】关于整数类型的4种进制表示,哪个选项的描述是...
  • 常见的文件扩展名

    万次阅读 多人点赞 2019-03-01 09:45:58
    json:轻量级的数据交换格式,层次结构简洁和清晰 conf:配置信息文件 jsp:java嵌入式网页脚本文件 phps:php的源代码文件 asp:MicroSoft公司开发的创建动态交互式网页服务器端脚本 project:eclipse的工程信息...
  • 同样一幅画面,用jpeg格式储存的文件是其它类型图形文件的1/10~ 1/20。一般情况下,jpeg文件只有几十KB,而色彩数最高可达到24位,所以它被广泛运用在Internet—k,以节约宝贵的网络传输资源。JPEG格式支持RGB、...
  • FLV流媒体格式

    千次阅读 2012-10-16 14:41:24
    FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件...
  • flv.js客户端播放流媒体服务。 二:流媒体服务器搭建 获取到rtsp视频流地址:rtsp://admin:123456@192.168.1.200:554/Streaming/Channels/102 说明: admin:用户名 123456:密码 192.168.1.200:ip地址 5
  • 如果你拿到了一个流媒体文件的下载地址,想实现在线播放,但又懒得自己写播放器,你可以通过如下方法调用本地应用来进行播放: Intent it = new Intent(); it.setAction(Intent.ACTION_VIEW); it.setFlags...
  • 移动流媒体业务的技术与标准

    千次阅读 2011-01-29 21:56:00
     流媒体业务是从Internet上发展起来的一种多媒体应用,指使用流(Streaming)方式在网络上传输的多媒体文件,包括音频、视频和动画等。    流媒体传输技术的主要特点是以流(streaming)的形式进行多媒体数据的...
  • 流媒体

    千次阅读 2012-06-27 16:49:23
    流媒体简介 随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载...
  • RTF文件格式分析

    千次阅读 2016-07-15 15:28:06
    RTF是文本格式的一种,是RichTextFormat的缩写,意即丰富的文本格式,主要用于各种文字处理软件之间的文本交换,其特点是保持原文字设置不变。如将WPS文件另存为RTF格式,用...以RTF格式作为多媒体系统中文本媒体的一
  • 1、媒体中的( B )是为了加工、处理和传输感觉媒体而人为构造出来的一种媒体,如文字、音频、图像和视频等的数字化编码表示等。 (A) 感觉媒体 (B) 表示媒体 (C) 显示媒体 (D) 存储媒体 2、.以下对多媒体概念的描述...
  • 视频文件格式、视频封装格式、视频编码方式

    千次阅读 多人点赞 2016-04-05 19:21:28
    可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。尽管后者在播放的稳定性和播放画面质量上可能没有前者优秀,但网络流媒体影像视频的广泛传播性使之正被广泛应用于视频点播、网络...
  • 公司是搞视频类的互联网公司,本人虽为开发人员,但因为业务相关,因此也要懂得视频和流媒体方面的知识,于是把公司图书阁里的《流媒体技术入门与提高》借回来看。我手上的是第二版。 流式技术解决方案 所谓流式...
  • IIS Live Smooth Streaming(实时平滑流式处理)是微软下一代流媒体解决方案。该技术是在IIS web中集成媒体传输平台IIS media services,实现利用标准 HTTP Web 技术以及高级 Silverlight 功能,确保在互联上传输...
  • 最近又在做MP3相关的程序,需要了解... MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指...
  • 常见的图像文件格式 无损压缩

    万次阅读 2016-03-03 09:38:47
    常见的图像文件格式  一、BMP格式 BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格 式,能够被多 种Windows应用程序所支持。随着Windows操作系统的流行与丰富的 Windows应用程序的...
  • 多媒体基础知识题库

    千次阅读 2021-06-27 12:21:30
    多媒体基础知识题库一、单选题1、多媒体技术是以计算机为工具,处理( )等信息的技术。... 答案:AA、压缩比B、波特率C、比特率D、存储空间3、广义的多媒体同步包括媒体对象之间的( )关系。 答案:DA...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,273
精华内容 5,309
关键字:

下列是流媒体格式的文件