精华内容
下载资源
问答
  • 流媒体缓存系统的设计与实现 大规模流媒体应用中关键技术的研究 ···
  • 流媒体技术入门与提高,其中介绍了Windows Media、RealMedia、QuickTime、Flash流媒体等,其中包括Windows Media技术平台概述 Windows Media组件 ASF格式 Windows Media9系列音频编解码 Windows Media9系列视频编...
  • 23.1 流媒体技术基础

    2009-12-21 09:19:00
    23.1 流媒体技术基础流媒体是指利用流式传输技术传送的音频、视频等连续媒体数据,它的核心是串流(Streaming)技术和数据压缩技术,具有连续性、实时性、时序性3个特点,可以使用顺序流式传输和实时流式传输两种...

    23.1  流媒体技术基础

    流媒体是指利用流式传输技术传送的音频、视频等连续媒体数据,它的核心是串流(Streaming)技术和数据压缩技术,具有连续性、实时性、时序性3个特点,可以使用顺序流式传输和实时流式传输两种传输方式。本节主要介绍有关流媒体的技术基础。

    展开全文
  • 6.2.2 RTP控制协议-- RTCP   RTCP协议将控制包...是作为RTP传输协议的一部分,与其他传输协议的和阻塞控制有关。反馈对自适应编码控制直接起作用,但IP组播经验表明,从发送者收到反馈对诊断发送错误是致关重要

    6.2.2 RTP控制协议-- RTCP 
      RTCP协议将控制包周期发送给所有连接者,应用与数据包相同的分布机制。低层协议提供数据与控制包的复用,如使用单独的UDP端口号。RTCP执行下列四大功能: 
      主要是提供数据发布的质量反馈。是作为RTP传输协议的一部分,与其他传输协议的流和阻塞控制有关。反馈对自适应编码控制直接起作用,但IP组播经验表明,从发送者收到反馈对诊断发送错误是致关重要的。给所有参加者发送接收反馈报告允许问题观察者估计那些问题是局部的,还是全局的。诸如IP组播等发布机制使网络服务提供商类团体可能接收反馈信息,充当第三方监控者来诊断网络问题。反馈功能由RTCP发送者和接收者报告执行。 
      RTCP带有称作规范名字(CNAME)的RTP源持久传输层标识。如发现冲突,或程序重新启动,既然SSRC标识可改变,接收者需要CNAME跟踪参加者。接收者也需要CNAME 与相关RTP连接中给定的几个数据流联系 
      前两种功能要求所有参加者发送RTCP包,因此,为了RTP扩展到大规模数量,速率必须受到控制。让每个参加者给其它参加者发送控制包,就大独立观察参加者数量。该数量用语计算包发送的速率。 
      第四个可选功能是传送最小连接控制信息,如参加者辨识。最可能用在\"松散控制\"连接,那里参加者自由进入或离开,没有成员控制或参数协调,RTCP充当通往所有参加者的方便通道,但不必支持应用的所有控制通讯要求。高级连接控制协议超出本书范围。 
      在IP组播场合应用RTP时,前3个功能是必须的,推荐用于所有情形。RTP应用设计人员必须避免使用仅在单播模式下工作的机制,那将导致无法扩展规模。 
      
      6.2.2.1 RTCP 包格式 
      下面定义几个携带不同控制信息的RTCP包类型: 
      SR: 
      发送报告,当前活动发送者发送、接收统计。 
      RR: 
      接收报告,非活动发送者接收统计。 
      SDES: 
      源描述项,包括CNAME。 
      BYE: 
      表示结束。 
      APP: 
      应用特定函数。 
      类似于RTP数据包,每个RTCP包以固定部分开始,紧接着的是可变长结构元素,但以一个32位边界结束。包含安排要求和固定部分中长度段,使RTCP包可堆叠。不需要插入任何分隔符将多哥RTCP包连接起来形成一个RTCP组合包,以低层协议用单一包发送出去。由于需要低层协议提供提供整体长度来决定组合包的结尾,在组合包中没有单个RTCP包显式计数。 
      组合包中每个RTCP包可独立处理,不需要根据包组合顺序。但未了执行协议功能,强加如下约束: 
      接收统计(在SR或RR中)应该经常发送,只要带宽允许,因此每个周期发送的组合RTCP 包应包含报告包。 
      新接收者需要接收CNAME,并尽快识别源,开始联系媒介进行同步,因此每个包应该包含SDES CNAME。 
      出现在组合包前面的是包类型数量,其增长应该受到限制,以提高常数位数量,提高成功确认RTCP包对错误地址RTP数据包或其他无关包的概率。 
      因此,所有RTCP包至少必须以两个包组合形式发送,推荐格式如下: 
      加密前缀(Encryption prefix): 
      仅当组合包被加密,才加上一个32位随机数用于每个组合包发送。 
      SR或RR: 
      组合包中第一个RTCP包必须总为一个报告包,方便头的确认。即使没有数据发送,也没有接收到数据,也要发送一个空RR,那怕组合包中RTCP包为BYE。 
      附加RR: 
      如报告统计源数目超过31,在初始报告包后应该有附加RR 包。 
      
      SDES: 
      包含CNAME 项的SDES包必须包含在每个组合RTCP包中。如应用要求,其他源描述项可选,但受到带宽限制。 
      BYE或APP: 
      其它RTCP包类型可以任意顺序排列,除了BYE应作为最后一个包发送,包类型出现可不止一次。 
      建议转换器或混合器从多个源组合单个RTCP包。如组合包整体长度超过网络路径最大传输单元,可分成多个较短组合包用低层协议以单个包形式发送。注意,每个组合包必须以SR或RR包开始。附加RTCP包类型可在Internet Assigned Numbers Authority (IANA)处注册。 
      
      6.2.2.2 RTCP传输间隔 
      RTP设计成允许应用自动扩展,连接数可从几个到上千个。例如,音频会议中,数据流量是内在限制的,因为同一时刻只有一两个人说话;对组播,给定连接数据率仍是常数,独立于连接数,但控制流量不是内在限制的。如每个参加者以固定速率发送接收报告,控制流量将随参加者数量线性增长,因此,速率必须按比例下降。 
      一旦确认地址有效,如后来标记成未活动,地址的状态应仍保留,地址应继续计入共享RTCP带宽地址的总数中,时间要保证能扫描典型网络分区,建议为30分钟。注意,这仍大于RTCP报告间隔最大值的五倍。 
      这个规范定义了除必需的CNAME外的几个源描述项,如NAME(人名)和EMAIL(电子邮件地址)。它也为定义新特定应用RTCP包类型的途径。给附加信息分配控制带宽应引起注意,因为它将降低接收报告和CNAME发送的速率而损害协议的性能。建议分配给单个参加者用于携带附加信息的RTCP带宽不要超过20%。而且并没有有意让所有SDES项包含在每个应用中。 
      6.2.2.3 发送者与接收者报告 
      RTP接收者使用RTCP报告包提供接收质量反馈,报告包根据接收者是否是发送者而采用两种格式中的一种。除包类型代码外,发送者报告与接收者报告间唯一的差别是发送者报告包含一个20个字节发送者信息段。如某地址在发出最后或前一个报告间隔期间发送数据包,就发布SR;否则,就发出RR;SR和RR都可没有或包括多个接收报告块。发布报告不是为列在CSRC列表上的起作用的源,每个接收报告块提供从特殊源接收数据的统计。既然最大可有31个接收报告块嵌入在SR 或 RR包中, 
      丢失包累计数差别给出间隔期间丢掉的数量,而所收到扩展的最后一个系列号的差别给出间隔期间希望发送的包数量,两者之比等于经过间隔期间包丢失百分比。如两报告连续,比值应该等于丢失段部分;否则,就不等。每秒包丢失绿可通过NTP时标差除以丢失部分得到。 
      从发送者信息,第三方监控器可计算载荷平均数据速率与没收到数据间隔的平均包速率,两者比值给出平均载荷大小。如假设包丢失与包大小无关,那么特殊接收者收到的包数量给出此接收者收到的表观流量。
      
      6.2.2.4 SDES: 源描述RTCP包 
      SDES 包为三层结构,由头与数据块组成,数据块可以没有,也可有多个,组成项描述块所表明的源。项描述如下: 
      版本(V)、填充(P)、长度: 
      如SR包中所描述。 
      包类型(PT): 
      8位,包含常数202,识别RTCP SDES包。 
      源计数(SC): 
      5位,包含在SDES包中的SSRC/CSRC块数量,零值有效,但没有意义。 
      源描述项内容如下: 
      CNAME: 规范终端标识SDES项 
      CNAME标识属性如下: 
      如发生冲突或重启程序,由于随机分配的SSRC标识可能发生变化,需要CNAME项提供从SSRC标识到仍为常量的源标识的绑定。 
      象SSRC标识,CNAME标识在RTP连接的所有参加者中应是唯一的。 
      为了提供一套相关RTP连接中某个参加者所采用的跨多媒体工具间的绑定,CNAME应固定为那个参加者。 
      为方便第三方监控,CNAME应适合程序或人员定位源。 
      NAME:用户名称SDES项 
      这是用于描述源的真正的名称,如\"John Doe, Bit Recycler, Megacorp\",可是用户想要的任意形式。对诸如会议应用,这种名称也许是参加者列表显示最适宜的形式,它将是除CNAME外发送最频繁的项目。设置可建立这样的优先级别。NAME值至少在连接期间仍希望保持为常数。它不该成为连接的所有参加者中唯一依赖。 
      EMAIL:电子邮件地址SDES项 
      邮件地址格式由RFC822规定,如\"John.Doe@megacorp.com\"。连接期间,电子邮件仍希望保持为常数。
      PHONE:电话号码SDES项 
      电话号码应带有加号,代替国际接入代码,如\"+1 908 555 1212\"即为美国电话号码。 
      
      LOC:用户地理位置SDES项 
      根据应用,此项具有不同程度的细节。对会议应用,字符串如\"Murray Hill, New Jersey\"就足够了。然而,对活动标记系统,字符串如\"Room 2A244, AT&T BL MH\"也许就适用。细节留给实施或用户,但格式和内容可用设置指示。在连接期间,除移动主机外,LOC值期望仍保留为常数。 
      TOOL:应用或工具名称SDES项 
      是一个字符串,表示产生流的应用的名称与版本,如\"videotool 1.2\"。这部分信息对调试很有用,类似于邮件或邮件系统版本SMTP头。TOOL值在连接期间仍保持常数。 
      NOTE: 通知/状态SDES项 
      该项的推荐语法如下所述,但这些或其它语法可在设置中显式定义。NOTE 项旨在描述源当前状态的过渡信息,如\"on the phone, can´t talk\",或在讲座期间用于传送谈话的题目。它应该只用于携带例外信息,而不应包含在全部参加者中,因为这将降低接收报告和CNAME发送的速度,因此损害协议的性能。特殊情况下,它不应作为用户设置文件的项目,也不是自动产生。 
      当其为活动时,由于NOTE项对显示很重要,其它非CNAME项(如NAME)传输速率将会降低,结果使NOTE项占用RTCP部分带宽。若过渡信息不活跃,NOTE项继续以同样的速度重复发送几次,但以一个串长为零的字符串通知接收者。然而,如对小倍数的重复或约20-30 RTCP间隔也没有接收到,接收者也应该考虑NOTE项是不活跃的。 
      PRIV: 专用扩展SDES项 
      该项用于定义实验或应用特定的SDES扩展,它包括由长字符串对组成的前缀,后跟填充该项其他部分和携带所需信息的字符串值。前缀长度段为8位。前缀字符串是定义PRIV项人员选择的名称,唯一对应应用接收到的其它PRIV项。应用实现者可选择使用应用名称,如有必要,外加附加子类型标识。另外,推荐其它人根据其代表的实体选择名称,然后,在实体内部协调名称的使用。 
      注意,前缀消耗了总长为255个八进制项的一些空间,因此,前缀应尽可能的短。这个设备和受到约束的RTCP带宽不应过载,其目的不在于满足所有应用的全部控制通讯要求。SDES PRIV前缀没在IANA处注册。如证实某些形式的PRIV项具有通用性, IANA应给它分配一个正式的SDES项类型,这样就不再需要前缀。这简化了应用,并提高了传输的效率。 
      6.2.2.5 BYE:断开RTCP包 
      如混合器接收到一个BYE包,混合器转发BYE包,而不改变SSRC/CSRC 标识。如混合器关闭,它也应该发出一个BYE包,列出它所处理的所有源,而不只是自己的SSRC标识。作为可选项,BYE包可包括一个8位八进制计数,后跟很多八进制文本,表示离开原因,如:\"camera malfunction\"或\"RTP loop detected\"。字符串具有同样的编码,如在SDES 中所描述的。如字符串填充包至下32位边界,字符串就不以空结尾;否则,BYE包以空八进制填充。 
      6.2.2.6 APP:定义应用的RTCP包 
      APP包用于开发新应用和新特征的实验,不要求注册包类型值。带有不可识别名称的APP包应被忽略掉。测试后,如确定应用广泛,推荐重新定义每个APP包,而不用向IANA注册子类型和名称段。



    本文链接地址:http://www.chinavideoonline.com/lmtchangshi/lmtchangshi_005.htm

    展开全文
  • 面向P2P流媒体传输技术的嵌入式PCI卡的研究与设计,张晓璇,陈钊,本文介绍了有关P2P流媒体系统模型、媒体内容定位的设计思想,具体给出了一个面向P2P流媒体技术的嵌入式PCI卡的硬件组成结构、Bootloade
  • 流媒体技术基础-组播

    千次阅读 2016-07-09 16:53:42
     组播中,支持IGMP接收者主机给路由器发送一个成员活动报告,如加入或离开组,路由器使用这个信息有选择的传送数据到有关主机所在网络。源发送一个单独的报文到一个组地址,如路径在一个路由器上分支,也只给加入组...

    7.2.2 组播概述 
      组播中,支持IGMP接收者主机给路由器发送一个成员活动报告,如加入或离开组,路由器使用这个信息有选择的传送数据到有关主机所在网络。源发送一个单独的报文到一个组地址,如路径在一个路由器上分支,也只给加入组的分支产生一个报文。源主机不需要发送报文的多个拷贝。这样就减少了用于多目标数据传送所消耗的带宽和资源。 
      组播传输可在数据链路层(第二层)和网络层(第三层)实现,支持的媒体类型包括以太网、FDDI和ATM。大多数路由器提供商支持IP组播,不支持IP组播的网络通过组播隧道技术传输组播信息包。 
      组播用户根据提供服务级别,组成一个分层结构,如图3.10所示。内容提供商传递新闻、电视及娱乐节目,应用软件开发商创建实时数据分配应用系统,用于高效、高质量的发布实时信息,平台及网络开发商开发、维护和支持组播硬件与协议要求,网络运营商提供公共网络基础结构。 
      
      图3.10 用户类型分层结构 
      7.2.3 IP组播编址与转换 
      IPV4组播编址与转换 
      一个IP地址由32个二进制单位构成,通常划分8位一组,再将每个组换算为十进制,以小数点分为四组。IP地址包含网络部分和主机部分。主机指网络通讯的一个终点位置;而网络部分表示一个或多个主机的集合。根据用于网络和主机的位数,将IP网分为五类,简单的命名为A类、B类、C类、D类和E类。其中D类地址范围在224.0.0.0~239.255.255.255之间,格式如图3.11所示,用于组播。组地址有两种类型,永久的和临时的。224.0.0.0被保留,不分配给任何组;从224.0.0.1到224.0.0.255范围的组播地址分配给路由选择协议和其它低级布局与维护协议,其中有名的是224.0.0.1和224.0.0.2,前者用来编址直接连接在网络上的所有IP多路广播主机,后者是给一个子网上所有路由器的地址;中间范围从224.0.1.0到238.255.255.255被组播用来在组、内部网和Internet中终端应用程序中使用;从239.0.0.0到239.255.255.255指定给本地组播应用程序。 
      
       0  1  2  3      ...              31 

    图3.11 D类地址格式 
      
      所有网络协议需要一种方法把第三层的IP网络地址转换到第二层的硬件/媒体地址。以以太网为例,数据链路层需要将D类IP地址映射为以太网MAC地址,方法是将IP组播地址中低23位取代以太网组播地址01:00:5E:00:00:00的低23位,在映射过程中,组IP地址中有9位不参与替换。作为D类地址,前4位肯定是1110,实际只有5位是真正不参与映射。由于5为总共有32种不同组合,所以映射并不具有唯一性。在主机上实现时,不仅要在第二层对收到的以太网帧的以太网地址进行检查,也要在第三层检查组播IP地址,来判断数据包是否指定到一个主机当前已加入的组。 
      
      IPV6 组播编址 
      IPV6地址空间为28位,其中1/256的地址空间分配给组播地址。IPV6地址地址格式如图3.12所示。 

      一个FF(11111111)值标识该地址是组播地址。标识段高三位始终设置为0并保留。第四位T标识设置为0时表示一个永久分配的组播地址。T标识设置为1时,表示非永久分配的组播地址,这种地址作为一个临时的组播地址。范围值限制了组播的范围,表3.14列出了这个四位的组播范围值。 
      表3.14 组播地址范围值 值 目标 值 目标 0 保留 8 本地机构 1 本地结点 9 未分配 2 本地链接 A 未分配 3 未分配 B 未分配 4 未分配 C 未分配 5 本地站点 D 未分配 6 未分配 E 全球 7 未分配 F 保留 
      7.2.4 建立组播组 
      组播路由器收到指定给一个组播组的数据时,它根据子网上是否存在组成员和转发路由器将数据转发给响应接口。在主机和路由器之间使用\"互联网组管理协议\"(IGMP),而在组播路由器之间使用\"距离向量组播路由协议\"(DVMRP)和\"协议无关组播协议\"(PIM)。 
      象ICMP一样,IGMP是IP不可或缺的部分,它使用IP数据包传输数据,其IP协议号为2。IGMP报文被发送时,TTL为1,并且IP标题中包含新的IP路由器警报可选类型。IGMP报文类型包括成员查询报文、组成员报告报文和离开组成员报文。 
      IGMP被主机用来通知直连的路由器,申请加入或离开一个组播组;而路由器会发出主机成员资格查询消息,以判断是否有主机属于某个组播组的成员,只要有一个主机响应了此次查询,路由器就继续向此子网发送组播数据。 
      
      7.3 组播需解决的问题 
      组播首先要解决广播给谁的问题。要按不同应用项目(如体育、文艺、娱乐、学习等)进行分组,小组成员要向组播服务器(一般是路由器)进行注册登记,用户主机发出请示,提出具体组播地址。为发送一份IP组播数据包,发送者要确定一个合适的信宿地址,这个地址代表一个主组。然后,组播数据通过普通的IP发送操作发送出去。 
      其次���解决的问题是收哪个广播,有时在同一网络中有多个组播,每个广播选择国际规定的特定地址(组播的IP地址)。发送端相当简单,但IP组播和接收端却十分复杂。为了接收数据包,用户工作站上的应用要申请与特定组播关联的组播主组会员资格。这种申请传送到用户的局域网路由器,如有必要,还要传送到发送者和接收者的路由器。这一步完成,接收工作站的网络接口卡开始\"侦听\"与新组播组地址关联的数据链路层地址。广域网路由器把请求进入的组播数据包送往局域网路由器,局域网路由器把主组地址变换成与它相关的数据链路层地址,并用这个地址建立报文。接收链路的网络接口卡和网络驱动程序侦听这个地址,把组播地址传向TCP/IP协议堆栈,从而使数据适合用户的应用。 
      第三个问题是用户主机在撤销时要通知组播服务器。因为接收组播的用户是被动的,撤销时可能不通知服务器,这时服务器要在一定时间后向用户提出询问,实施问答程序,若无用户应答,服务器将主动撤销相应的路径带宽。 
      第四是要解决如何广播问题。组播的程序如下:要解决组播路由以启动网络。对于路由器网,可利用传统的路由协议,选择路由。所选路由被路由器记忆下来,将来通过组播传送数据时可沿用此路由。对于多层网络,因为IP不具有低层网络的拓扑知识,建立路由的效率很低,多层网中路由也难以达到全网整体优化。对于标记交换网络,因为路由器路由表传送的数据包标头字段以及ATM上的标记信息库已通过标记联编,将多层网络的第2层与第3层捆绑在一起,IP可以识别、掌握全网拓扑,可利用传统的路由协议选择路由。要建立组播组,明确接收者。要建立组播树,由与IP路由协议无关的组播协议构建组播树。组播树的上游为组播服务器(路由器),按树形分叉为各叶片,叶片即为组播路径,叶尖抵达组播分组目的地。最后是进行数据复制,组播树分叉处节点对转发的组播包进行拷贝、分流。最后一跳,组播包登上局域网,以广播方式传送到子网内各主机用户。 
      
      7.4 组播路由技术 
      单播与组播有两点不同: 
      组播时,可能在不同的网络上有若干个地址相同的接受端。 
      组播通信会在网络中周而复始的循环,直至这个包内TTL字段为零,即所谓的\"反转路径转发\",必须有一个合理的组播路由协议结构来禁止出现这种情况;路由器收到一个组播包时,就会查看这个组播包是否被一个接口接收,该接口位于组播包返回资源的最短路径上。 
      为实现组播通信,就必须建立支持组播的路由协议,目前常用的组播路由协议有距离向量组播路由协议、协议无关密集模式组播协议与协议无关分散模式组播协议。 
      
      距离向量组播路由协议 
      DVMRP是一个适用于单个独立系统的内部网关协议,建立在\"路由信息协议\"(RIP)基础上采用本身的动态路由协议来进行路由交换和路由表的构建。一个DVMRP数据由两部分组成:一个小的固定长度的IGMP格式的头和一个被标记的数据流。DVMRP的基本操作包括四项处理:第一个是处理邻居查找,用来查找直接接入一个普通网络的具有DVMRP能力的其他已启用的路由器。第二个是处理路由交换,与IGMP联合,判断是否需要在网络上转发组播包,或判断是否禁止通信包到达一个网络。最后两个处理用于DVMRP动态的在一个网络列表中增加或删除一个或多个网络。 
      一个支持DVMRP的路由器可以 一个物理接口直接连接到子网,或通过一个隧道接口连���到另外一个组播小岛。隧道是用在被一些不支持组播的路由器隔开的两个具有多路广播能力的路由器之间实现数据发送的一种方法。 
      
      协议无关组播协议(PIM) 
      PIM协议的发展目的是在Internet 上提供足够规模的域间组播路由。PIM有两种兼容的操作模式:密集模式和发散模式。 
      密集模式(PIM-DM) 
      此模式与DVMRP相似,都属于密集模式协议,采用了DVMRP一样的方式,建立PIM-DM环境中建造起来的基于资源的组播树。PIM-DM独立于网络选择的IP路由协议,\"协议无关组播\"由此而得名。 
      协议工作原理如下:路由器收到发自资源的一个组播包,对资源IP地址进行检查,进而得知在\"反转路径转发\"接口是否已收到该组播包。然后,路由器将该组播包流传到除已收到该包的接口外的各接口。 
      PIM-DM适用于以下集中情况: 
      发送者和接收者非常接近,且只有一小部分发送者和大量的接收者。 
      组播的流量大。 
      组播是持续的。 
      
      协议无关组播协议----分散模式(PIM-SM) 
      与PIM-DM相似,两者都是建立在组播路由协议基础上用于决定RPF接口的协议。PIM-SM协议假定在网络中接收者的人数很稀疏或者组播组被广域网分割开。 
      PIM-SM适用于以下集中情况: 
      在一个组里接收者很少。 
      发送者和接收者被广域网分开。 
      组播流量断断续续。 

     



    本文链接地址:http://www.chinavideoonline.com/lmtchangshi/lmtchangshi_011.htm

    展开全文
  • 包含了各大学研究生有关流媒体研究方面的论文,对学习MPEG和H.26x技术很有帮助
  • 如果您想了解有关流媒体的更多信息,我们已收集了指向好文章的链接,以供阅读。 初始点 第1 有关ABR流的一系列教育文章的第1部分 第2 有关ABR流的一系列教育文章的第2部分 第3 有关ABR流的一系列教育文章的第3部分 ...
  • Streamion是一个开源的实时流媒体和视频平台。 它受到的启发,旨在利用现代技术为成千上万的观众提供服务。 特征 无需闪光灯! HTML5直播 HTMl5视频传送 HTML5聊天引擎 直播频道 视频点播 增强统计 易于使用的管理...
  • 流媒体开发之路

    千次阅读 2017-07-31 23:27:13
    干净的让人尴尬。回顾自己的这几年的...可是最后回忆起来,却想起不多,与自己不爱去总结有关,所以我想从今天开始总结自己曾经用过和学过的技术,也记录一些曾经踩过的坑儿!  因为项目需要,我之前是做C#转到了Ja

    其实很早之前,就想写属于自己的博客,大二就有了CSDN账号,很讽刺的是,工作几年了,账号里面的内容竟然和小鲜肉脸一样干净。干净的让人尴尬。回顾自己的这几年的开发之路,接触了很多新的东西,也用了很多技术,也写了不少的代码。可是最后回忆起来,却想起不多,与自己不爱去总结有关,所以我想从今天开始总结自己曾经用过和学过的技术,也记录一些曾经踩过的坑儿!

          因为项目需要,我之前是做C#转到了Java,开始了自己的流媒体学习之路。也开始了一步一个坑儿的阶段。由于项目需要实时的视频和语音,与远程观看与语音对讲。由于硬件的二次开发接口对于客户端的数量有限制。不得不放弃从厂商的二次开发接口入手。最后老大敲定采用流媒体的方案。搭建直播平台。我就开始负责直播平台搭建。

         刚开始,采用的是Nginx+Nginx-rtmp-module+ffmpeg 搭建直播平台,系统:ubantu14.04  。主要使用ffmpeg进行推流和拉流和rtsp=>rtmp。这个工具十分强大,花了1周才看完他的文档。觉得自己只学到了一个皮毛。但是不影响自己的开发。当环境搭建后,播放器采用的是vlc播放器,一个万精油级别的播放器。当一切准备就绪后,首先测试了一下将本地文件推到本地Nginx中,vlc 播放很流畅,没有出现卡顿的现象。后来换成自己产品。ffmpeg 出现了花屏现象,vlc播放不流畅,以及延迟很大。在局域网的情况下,出现了接近10s的延迟。这是不可接受的。后面优化了ffmpeg命令,将视频进行h264压缩,语音aac压缩。基本解决了花屏情况。可是10s的延迟是不能接受。vlc 后期出现了加载视频很慢的情况。就不在考虑使用vlc 作为播放器。在网上找了很多的播放器,不过不少都是收费的。在GitHub中,有人推荐了SRS(Simple-Rtmp-Server) 项目地址:http://www.ossrs.net/srs.release/releases/  ,有完整的文档和详细的介绍。而且自带srs播放器。低延迟和低耗。据说延迟可以到1s内。官网上有详细安装说明,不过我还是喜欢自己的安装方式。大概记录一下

    1、首先在GitHub 中下载  https://github.com/ossrs/srs/tree/v2.0-r2#history 完整版本的,我不太喜欢他的自动安装

    2、将下载好的zip发到linux系统中并解压

    3、cd srs/trunk

    4、./configure --prefix=/usr/local/srs --with-ssl --with-hls --with-hds --with-dvr --with-nginx --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-ffmpeg --with-transcode --with-ingest --with-stat --with-librtmp --with-research --with-utest --with-gperf --with-gprof

    5:make make install

    6、sudo /usr/local/srs/etc/inin.d/srs start 就可以启动srs流媒体服务器。

    这个项目中已经将ffmpeg 集成进来,可以在程序中直接调用此命令。省去了很多麻烦。行!今天就先到这儿,第一篇博客有些乱 ,但是却是我迈出的一大步!!!哈哈




    展开全文
  •  据Heiro项目负责人、武汉大学计算机学院院长何炎祥介绍,目前世界上无论是基于P2P的流媒体"直播"系统还是基于CDN的IPTV系统,速度的瓶颈使得这两种系统都无法完全发挥流媒体技术的价值,也无法实现大范围的应用。...
  • 一个重要的Web应用程序,用于查找哪种流媒体服务现在提供您要立即观看的电视/体育节目或电影! 我们的应用程序提供有关演员,运行时间,剧情摘要,评分,ESPN游戏信息/观看时间表,游戏/视频内容的链接以及显示我们...
  • 对于Netflix会员来说,这是个激动人心的时刻,在流媒体技术的帮助下,可以通过智能电视或手机,舒适地坐在家里,或者在通勤路上随时观看这些广受好评的内容。\\自从2016年1月开始涉足全球市场以来,Netflix的服务...
  • AniWorld | 动漫流媒体 我的朋友佩德罗(Pedro)和我做的是一个带有动画流的主页,我只是为了练习CSS,视觉效果和创造力 动漫世界 | | | 链接到有关该项目的完整视频: : :information: 关于 AniWorld项目是我和...
  • Robin on Rails:我的知识库 概述 Robin on Rails是我的知识库,我可以在其中添加笔记和想法。... :“包含有关Internet的技术和组织文档,包括由四个产生的规范和政策文档:Internet工程任务组( ),Internet研究
  • 20972多媒体操作系统

    千次阅读 2019-06-18 21:14:00
     随着多媒体技术的发展,在传统OS中也相应增加了许多能处理音频和视频信息的多媒体功能。现在流行的操作系统,如Linux、 Windows 系列等,就已具有多媒体功能。本章前两节先介绍有关多媒体系统的基本知识。 11.1.1...
  • 物理层(比特

    2020-11-04 23:03:39
    物理层一、物理层的基本概念二、数据通信的基础知识1.数据通信系统的模型2....物理层关注如何在传输媒体上传输数据比特,而不是具体的传输媒体; 物理层的作用是尽可能屏蔽传输媒介的差异,使数据
  • 近年来直播已成为互联网行业的大热话题,直播答题、游戏直播、竞赛直播等层出不穷,...本文作为直播介绍系列文的第2篇,主要和大家谈谈直播协议、视频推流等技术内容直播协议流媒体分为直播和点播。通常来说点播使...
  • 由于全球许多组织的人力资源部门越来越多地利用信息技术,电子招聘(电子... 预期该论文将为学者提供有益的参考文献,并为人力资源专业人员提供一些有关利用社交媒体信息进行电子招聘的实用指南(基于所提供的建议)。
  • 这片博文简单理解下推流端会面对的技术点,名词解释,理解这些点后可以知道推出去的流为什么拉流端观看会卡顿、画质不清晰、色块等问题,当然,出现这些问题也和流媒体服务器分发有关,但我们做要好移动推流端的工作...
  • 近年来直播已成为互联网行业的大热话题,直播答题、游戏直播、竞赛直播,抖音直播,直播教育等层出不穷,直播早已成为人们...流媒体分为直播和点播。通常来说点播使用的都是HTTP协议,直播主要用的是RTMP, HLS, HTTP-
  • 网络直播平台搭建中的直播协议和视频推流 ...流媒体分为直播和点播。通常来说点播使用的都是HTTP协议,直播主要用的是RTMP, HLS, HTTP-FLV等。近年来直播协议也有新发展如DASH,但仍处于起步阶段。 直播和..
  • 近年来直播已成为互联网行业的大热话题,直播答题、游戏直播、竞赛直播等层出不穷,直播早已成为人们...流媒体分为直播和点播。通常来说点播使用的都是HTTP协议,直播主要用的是RTMP, HLS, HTTP-FLV等。近年来...
  • Invisor Mac版是一款Mac平台上能够为你提供媒体文件信息的查看软件,Invisor Mac版支持查看音频、视频文件的...视频和音频:有关文件容器和媒体流的详细信息,包括使用MediaInfo的字幕和章节。 invisor mac版软件功能
  • Invisor for Mac破解版是一款简单易用的媒体文件检查工具,拥有显示有关您的视频、音频和照片文件的技术信息。兼容有关文件容器和媒体流的详细信息。此外,还能够比较收集的数据。 名称:Invisor for Mac(媒体...
  • 多媒体技术需要同时处理声音、文字、图像等多种媒体信息,其中声音和视频图像还要求实时处理,需要有能支持对多媒体信息进行实时处理的操作系统。  构成 通常,多媒体系统由以下4个部分构成。  硬件系统 最重要...
  • 您将找到:-音频/视频播放器(win32)-自定义媒体会话-音序器源-音频/视频捕获-屏幕捕获-kinect V1捕获-Wave音频混合器-http(winsock)-jpeg编码(Gdiplus)-dxva2技术-cuda解码-directX9渲染器和着色器-COM技术...
  • 它在基于GStreamer的低级技术中实现,以优化资源消耗。 它提供以下功能: 网络协议,包括HTTP,RTP和WebRTC。 支持媒体混合和媒体路由/调度的组通信(MCU和SFU功能)。 对计算视觉和增强现实过滤器的通用支持...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 236
精华内容 94
关键字:

有关流媒体技术