精华内容
下载资源
问答
  • 在iOS上开发直播视频流媒体移动应用,需要注意的4点问题。 1 不可扩展的架构 实时视频流是一种敏感问题,这些应用程序,性能是关键。 例如,希望尽可能减少发布者和订阅者之间的延迟,如果可能的话,不到2秒。 将...

    在iOS上开发直播视频流媒体移动应用,需要注意的4点问题。

    1 不可扩展的架构

    实时视频流是一种敏感问题,这些应用程序,性能是关键。 例如,希望尽可能减少发布者和订阅者之间的延迟,如果可能的话,不到2秒。

    将受众分配到不同节点的服务器,仔细选择切换,避免服务器过载,这在解决方案中非常重要。可以寻找提供可扩展的解决方案和实时支持的流媒体服务。

    基于用户角色分离服务,可以能够优化不同服务器上的带宽使用,节省移动设备电池,并减少过度使用服务所带来的错误。

    2 没有足够的测试,针对边缘情况

    作为开发人员,我们经常使用模拟器而不是真实设备。然而,我们可以使用真实的iOS设备轻松的再现手势事件,这在模拟器中却是十分困难。 如果您从未错误地按下主页按钮,并意识到您仍然可以在后台听到应用程序,或者更糟糕的应用程序崩溃,那么您算是非常幸运的。

    以下是在iOS上构建实时视频流媒体移动应用时需要考虑的一些测试:

    • 如果您像我们一样使用许多依赖项,请确保这些依赖项可以一起使用。 由于视频在很大程度上依赖于AVFoundation,并且他们可能使用共享管理器来控制音频,视频比特率等,因此很可能一个视频框架会影响另一个视频框架。 例如,密切关注订阅的直播流,并在您开始从iOS设备发布视频供稿时检测是否有暂停。
    • 当您开始使应用程序过载时,使用设备上随附Xcode的乐器工具跟踪演奏。 确保CPU使用率不是太高,并且内存不会超时增加。
    • 使用该应用程序并转到后台。 您在开发测试期间可能会出现的意外行为数量会让您感到惊讶!
    • 使用iTunes,Spotify等音频,使用其他应用测试您的应用。
    • 确认当您从iOS应用程序发布内容时,服务器会收到您的视频流。 它有两种方式!

    通过执行这些测试,您可以在早期检测到框架是否适合您的需要,并且可以在iOS开发过程的早期根据需要进行切换。 您将有更多时间来优化移动应用并提高性能。 良好的表现意味着客户满意

    3 忘记良好/平均和恶劣的网络条件

    大多数框架都处理不同的网络条件,如果需要降低比特率。 但是你的应用呢? 如果在游戏过程中丢弃了流,您的应用应该做什么? 如果现场表演重新开始怎么办? 这些是在iOS上开发这些实时流媒体移动应用时需要考虑的问题。

    在编写iOS应用程序时,我们往往会忘记普通用户到处都在使用他的手机,从舒适的Wi-Fi到地铁。 您可以随意过度使用Reachability框架来检测网络更改并相应地调整您的UI。

    4 不知道新版本/新设备

    通常10月是每个iOS开发人员的关键月份。 为什么? 因为通常在WWDC上发布所有声明后,iOS的新版本,有时是新设备。 几个月前我们开始开发我们的开发,我们在iPhone X设备上没有测试足够的UI,而且我们不得不从Swift 3切换到Swift 4.与产品所有者正确沟通,提出适当的顾虑并做好准备 为了改变!

    这些小技巧来自我们的个人经验,如果您需要开放iOS上的实时视频流媒体移动应用程序,希望可以帮助到您。 有许多不同的因素需要考虑,有的因素没有关注到,但也不要忘记,正在开发一个有趣的应用程序!

    WEB:www.liveqing.com

    展开全文
  • 移动流媒体技术及其应用发展方向

    千次阅读 2010-06-03 14:33:00
    一、现状分析  在手机增值业务市场,短信、彩信、彩e等虽然有了交互、24小时不间断等不同于传统媒体的特点,但传输的主要是静态为主的图像和... 流媒体(Streaming Media)的出现改变了这种状况。它不

    一、 现状分析

            在手机增值业务市场,短信、彩信、彩e等虽然有了交互、24小时不间断等不同于传统媒体的特点,但传输的主要是静态为主的图像和文字内容,影响了其媒体作用的充分发挥。随着最终用户需求的提升,如何更好地融合声音、文字、图像,支持多媒体功能,既发挥短信方便、快捷的优点,又可以弥补短信形式单调的不足,真正使移动用户"振聋发聩",进入一个有声有色、逼真形象的美丽世界成为移动运营商普遍关心的话题。
    流媒体(Streaming Media)的出现改变了这种状况。它不需要下载整个文件就可以在向播放器传输的过程中一边下载一边播放,实现了在网上点播或观看电影、电视的梦想。现在,以"流"的形式进行数字媒体的传送,使人们一定的带宽环境下就可以在线欣赏到连续不断的高品质音频和视频节目。在互联网大发展的时代,流媒体技术的产生和发展必然会给我们的日常生活和工作带来深远的影响。专家预言,流媒体将成为未来因特网上应用的主流,实现沟通和传播的多向性使传播不再受时间和空间的限制。

            所谓流媒体是指用户通过网络或者特定数字信道边下载边播放多媒体数据的一种工作方式。流媒体应用的一个最大的好处是用户不需要花费很长时间将多媒体数据全部下载到本地后才能播放,而仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放,后面收到的数据会源源不断输入到该缓冲区,从而维持播放的连续性,因此流媒体播放器通常只是在开始时有一些时延。流媒体系统要比下载播放系统复杂得多,所以需要将多媒体的编解码和传输技术很好地结合在一起,才能确保用户在复杂的网络环境下也能得到较稳定的播放质量。
            多媒体数据在传输前必须要先经过编码器有效地压缩成码流,以减少对网络资源的占用率。目前常用的视频编码器有MPEG-2、MPEG-4、H.261、H.263、H.264、Window Media视频编码器和Real System视频编码器等;编码器有MP3、MPEG AAC、Window Media 音频编码器和AMR等;图像编码器有JPEG和JPEG2000等。多媒体编码器所生成的码流只包含了解码该码流所必需的信息,它不包含媒体间的同步、随机访问等系统信息,因此编码后的多媒体数据还要被组织成为具有特定系统格式的多媒体文件用于流媒体传输或者是存入磁盘中,目前常用的文件格式有MPEG-2系统,MP4,微软公司的ASF,Real的文件格式,QuickTime的文件格式以及用于3G无线服务的3GPP和3GPP2等等。
           当流媒体在实时应用中(如现场流媒体广播),根据当前的网络状况和用户的终端参数,多媒体数据是一边被编码一边被流媒体服务器传输给用户。而在其他的非实时应用中,多媒体数据可以被事先编码生成多媒体文件,存储在磁盘阵列中。当提供多媒体服务时,流媒体服务器直接读取这些文件传输给用户,这样服务方式对设备的要求较低。目前许多流媒体服务属于后一种方式,这样就要求流媒体服务器具有一定的机制来适应网络状况和用户设备。
     
            目前码流自适应这一模块主要采用的方法有:将多媒体文件中的视频码流转换为一个特定码率和图像尺寸的码流;或者把同一段视频内容编码生成多个具有不同码率和图像尺寸的码流,然后自适应选择一个最合适的码流传输给用户。生成的码流还需要进一步打包成为特定网络传输协议的数据包用于网络传输,由于现在许多网络并不能保证传输的数据能够及时并完全正确地被用户收到,传输的数据包可能需要加前向纠错编码(FEC)来保护,经过这些处理后多媒体数据就可以通过网络传输给用户,目前常用的传输协议有RTP/RTCP、HTTP和MMS。

            用户收到传输的数据后,如果存在丢包或者是比特出错,错误恢复处理会根据附加的纠错数据来恢复传输错误。如果还不能恢复传输错误,用户端可以向服务器发出重传请求,在解码开始前重新传输丢失的包。恢复后的多媒体数据将由解码器解码得到重构的多媒体数据,由于容错保护和数据重传可能不能恢复所有的错误数据,错误掩藏模块可以利用重构的多媒体数据的相关性来掩盖这些错误,最后这些数据就播放给用户。

    通常流媒体系统中的服务器和用户间并不是单向通信,如前面提到的重传请求。事实上,用户端会传递给服务器许多反馈信息,如终端设备的能力和网络连接速度会传给服务器的码流自适应模块来调整码流,在实时应用中这些信息还可能传给编码器;用户端的丢包率、数据包收到的时间信息和用户缓冲区状态等信息也会传递给服务器来估计当前的网络状况,从而控制码流的自适应和数据的发送策略。从上面的描述来看,实际上流媒体系统在多媒体信息处理中是一个非常复杂的系统,目前市面上主要的产品有微软公司的Windows Media, Real公司的Real System和苹果公司的QuickTime,其中Windows Media系统的市场占有率最大。

        

    二、流媒体的关键技术

           实现流媒体的关键技术是流式传输。流式传输的定义很广泛,主要是指通过网络传送媒体(如视频、音频)的技术总称。
            流式传输分为顺序流式传输和实时流式传输:
            顺序流式传输采用顺序下载方式,在下载文件的同时用户可观看在线节目,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分,这种方式不像实时流式传输那样,可以在传输期间根据用户连接的速度进行调整。顺序流式传输不适合长片段和有随机访问要求的视频节目,如讲座、演说和演示等,它也不支持现场广播。严格地说,它是一种点播技术。
           实时流式传输可保证媒体信号带宽与网络连接匹配,可实时观看节目。实时流与HTTP流式传输不同,它需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可对观看内容进行快进或后退。理论上,实时流一经播放就不可停止,但可进行周期暂停。
    流式传输模式一般会使用RTP/UDP、RTSP/TCP两种通信协议与A/V(Audio/Video)Server建立联系,将服务器的输出重定向到一个运行A/V Player程序所在客户机的目的地址。如图1所示,流式传输系统一般都要配置一套专用的服务器和播放器。
     
    图1 流式传输基本原理

    移动流媒体的传输协议:
     
    图2 流媒体传输协议

    1、实时传输协议RTP、RTCP
        RTP(Real-time Transport Protocol)是在Internet上针对多媒体数据流的一种传输协议,工作于一对一或一对多的传输情况,可提供时间信息和实现流同步。RTP通常使用UDP来传送数据,也可在TCP或ATM协议之上工作。当应用程序开始一个RTP会话时,会使用到两个端口,一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,而是依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。

        RTCP(Real-time Transport Control Protocol)与RTP共同提供流量控制和拥塞控制服务。在RTP会话期间,参与者周期性地传送RTCP包,这些包中含有已发送数据包的数量、丢失数据包的数量等统计数据,服务器可根据这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP与RTCP的配合使用可有效地进行反馈,从而减小开销,提高传输效率,非常适合传送网上的实时数据。

    2、实时流协议RTSP
        实时流协议RTSP(Real-time Streaming Protocol)是由RealNetworks、Netscape共同提出的一种协议,它定义了如何使一对多应用程序有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP、RTCP之上,它使用TCP或RTP完成数据传输。与HTTP相比,RTP传送的是多媒体数据,而HTTP传送HTML。在使用RTSP时,客户机和服务器均可发出请求,也就是说RTSP可双向服务,而HTTP的请求是由客户机发出,服务器进行响应。

    3、资源预订协议RSVP
        音视频数据流对网络的延时比数据业务更敏感,如何在网络中传输高质量的音视频信息,除了带宽要求之外,还需其它条件。RSVP(Resource Reservation Protocol)是一种正在开发的Internet资源预订协议,它通过采取预留一部分网络资源(带宽)的措施,在一定程度上为流媒体传输提供QoS。某些试验性系统,如网络视频会议工具vic就集成了RSVP。

        3GPP UMTS视频媒体编解码技术规范是ITU-T H.263 profile 0 level 10,也是PSS必须使用的视频解码器。此外,PSS还应该支持H.263 Profile 3 Level 10解码器和MPEG-4 Visual Simple Profile Level 0解码器,在实际应用中,两个视频解码器可选。最近提出的H.264标准也引起了业界的广泛兴趣,3GPP PSS R6也在积极考虑将其纳入规范。

    移动流媒体播放器:
        移动流媒体传输视频数据都采用H264视频压缩算法进行压缩,以适宜无线传输的低带宽编码 (15-25 kpbs) 可以传输更好质量的图像,或者用更少的带宽传输相同质量的视频。至于移动终端的流媒体视频播放器,有这些技术的大厂家,如微软, REAL ,出于市场的原因,仅开发在特别视频手机上的应用,所以对于应用开发商来说,需要将视频播放器在各个移动终端上面做相应的移植工作。主要平台有:

    Pocket PC平台
    Dopod 686/696
    Lenovo ET180/560
    Daxian CU928/Eten P300B
    Symbian
    平台
    Nokia 7650/6600/3650/7610/Nokia6260/6630/7610/6620/3620/3660/3600/3650/N-Gage/
    索爱 P802/P908
    Simens sx1/Sendo x
    Panasonic X700/
    Samsung SGH-D710
    Linux平台

    Motorola A760
    Smartphone
    平台
    Dopod515/535      
    Moto8380/8390

    三、移动流媒体的主要应用
    (1)信息服务
        包括财经信息、新闻和即时体育播报、天气信息等服务。用户只须通过简单的接入门户站点即可获取大量信息,也可以通过订阅的方式使用信息推送服务。信息的内容可以以流媒体的方式提供。

    (2)娱乐服务

        包括卡通、音频、视频以及电视节目的精彩片段下载播放和在线播放。还可以提供移动游戏、用手机看电视等服务。

    (3)通信服务

        包括含有流媒体内容的彩信、视频电话/会议等,使人们的沟通更加方便,更为丰富多彩。

    (4)监控服务

        主要包括交通监控和家庭监控。交通监控使交通部门能够实时察看高速公路和主要道路的交通状况,可查看指定道路区间的路况,并可在途中通过定位服务来检查各路段的交通情况。家庭监控可以实时监视家庭和办公室的情况。只需安装基于Web的数字视频相机,并连接到Internet上就可以通过移动终端或PC监视家庭或办公室。

    (5)定位服务

        可用来提供地图和向导服务,并且可以预览风景名胜、预定饭店和电影票等。未来几年,移动流媒体业务将得到很大的发展,将会随着网络和终端的不断发展而逐步实现。

    四、移动流媒体的发展与限制

        移动流媒体业务的开展给移动增值服务带来了新的希望,2.5G、3G以及超3G无线网络的发展也使得流媒体技术可以被用到无线终端设备上,目前中国联通公司提供CDMA 1x,用户网络带宽最多可以达到100kbit/s,这已经足够提供QCIF大小的流媒体服务;而且随着3G无线网络的应用,用户的网络带宽可以达到384kbit/s。另一方面,手机设备运算能力越来越强,存储空间越来越大,不用说SMART Phone和Pocket PC等高端手机,就是一般的中档手机,如Nokia 6610,也能实现基本的H.264的软件解码。
        面向无线网络的流媒体应用对当前的编码和传输技术提出了更大的挑战,首先,相对于有线网络而言,无线网络状况更不稳定,除去网络流量所造成的传输速率的波动外,手持设备的移动速度和所在位置也会严重地影响到传输速率,因此高效的可自适应的编码技术至关重要。其次,无线信道的环境也要比有线信道恶劣的多,数据的误码率也要高许多,而高压缩的码流对传输错误非常敏感,还会造成错误向后面的图像扩散,因此无线流媒体在信源和信道编码上需要很好的容错技术。在移动流媒体业务的发展过程中,存在如下问题:

    (1) 无线网络带宽窄,干扰严重

        CDMA1X与GPRS分别作为当前中国联通与中国移动的主流2.5G无线网络技术,网络传输带宽较之以前有了很大的提高,但仍然十分有限。CDMA1X在理论峰值情况下下载传输速率达到144kbps,但实际情况下,稳定的传输速率通常在70kbps左右。GRPS在理论上可以达到115kbps,但实际情况下,稳定的传输速率通常在20kbps左右。并且随着使用用户的增加,网络的性能将会进一步下降。另外无线网络的干扰严重,导致网络传输的误码的可能性大大增加。
    (2) 移动终端处理能力低,内存容量小
        虽然目前国内市场上基于ARM9或是与此同等能力的芯片的高端手机已经越来越多,但由于手机中低端用户基数庞大而带来的巨大的市场商机,使得各个终端厂家对中低端用户尤为重视。因此目前占市场份额最多的、主流的手机仍然采用的是ARM7系列的芯片,处理能力在几十个MIPS左右。

    目前移动终端的内存容量通常也比较有限。市场上主流的BREW手机预留给应用程序的动态内存通常在700KB左右;基于J2ME的手机预留给应用程序的动态分配的内存通常在64KB或128KB;基于Symbian/Linux/Windows Mobile等高端手机预留给应用程序的动态分配的内存在1-4MB左右。

    (3) 终端系统平台、LCD多样化
        相对于PC的平台而言,移动终端的系统平台多样化更加明显,常见的系统平台有Symbian、Linux、Windows Mobile、Palm OS以及一些私有平台。移动终端系统多样化在很长的一段时间内将会继续存在。为了提供一个统一的手机应用程序运行环境,J2ME与BREW应运而生。但不同的厂家对J2ME与BREW的支持通常都存在差异。平台的多样化加上LCD大小不一,使得实现适应多种移动终端的应用程序难度非常大。

    (4) 移动终端的电池能源有限
        尽管手机设备的运算能力越来越强,但是由于它是由电池供电的,因此编解码处理不能太复杂,并且最好能够根据用户设备的电池来调整流媒体的接收和处理,能源管理技术也是移动流媒体的一个研究热点。

    展开全文
  • 《基于RED5&Flex流媒体应用实战开发(附多人聊天室、在线秀场及视频会议三大案例)》 课程讲师:57Code 课程分类:Java 适合人群:中级 课时数量:60课时 用到技术:Flex、RED5 涉及项目:多人聊天室、在线...

    《基于RED5&Flex流媒体应用实战开发(附多人聊天室、在线秀场及视频会议三大案例)》
    课程讲师:57Code
    课程分类:Java
    适合人群:中级
    课时数量:60课时
    用到技术:Flex、RED5
    涉及项目:多人聊天室、在线秀场、视频会议

     本系列教程注重实战,不仅讲解了Red5的基础知识让同学们快速入门,还加入了实战项目力求带领您进入flex,red5结合开发的天堂。  
     
    第一部分 RED5入门 
    1.1.1.整体架构
             本章详细讲解Red5服务器下载、安装及开发环境搭建,另外涵盖Red5服务器核心知识点,并配以范例加深大家的理解。
             主要知识点如下:
                1. Red5服务器下载、安装
                2. 远程方法调用-RMI
                3. 共享对象SharedObject
                4. 计划任务和Red5域
                5. 录制播放视频
             本章范例:在线播放器程序


    第二部分 多人聊天室
    2.1.1.整体架构 
             多人聊天室是非常常见的即时通信应用,有很多技术方案可以实现。针对本次系列课程,作者专门设计了Red5版本的多人聊天室。借助于Red5服务器强大能力,我们可以轻松的维护并同步聊天室的各种信息。
             多人聊天室采用flex+red5实现,不需要数据库支持,房间列表通过XML文件保存。

          2.1.2.技术特点 
             1.Flex HTTPService
             2.Flex状态动画
             3.Flex自定义组件的实现
             4.RichTextField组件的应用 
             5.Flex皮肤、样式设计
             6.FlexLib组件库的应用
             7.Red5 SharedObject维护用户列表
             8.Red5生命周期等


    第三部分 在线秀场

    3.1.1.整体架构 
             在线秀场采用Flex + Red5 + SpringJDBC + MySQL实现

          3.1.2.技术特点
             1.Flex流媒体API使用最佳实践(NetConnection、NetStream)
             2.Flex状态及自定义组件
             3.Flex皮肤及样式定制
             4.RichTextField组件库应用
             5.Red5 Remoting技术
             6.Red5远程方法调用RMI
             7.Red5连接属性、域属性的应用
             8.Red5整合SpringJDBC
             9.Red5生命周期及各种事件函数
             10.MySQL Workbench应用(模型设计、正向工程、数据库维护等)


    第四部分 视频会议
    4.1.1.整体架构 
             Flex4.6 + Red5 + SpringJDBC + MySQL

          4.1.2.技术特点 
             1.Flex HTTPService与XML交互 
             2.Flex ItemRenderer展现丰富用户状态 
             3.Flex皮肤和样式定制
             4.AS3 Media API(NetConnection/NetStream/Camera/Microphone)
             5.AS3 Drawing API
             6.AS3 Sound API
             7.RichTextField
             8.多视频流管理
             9.本地文件上传
             10.OpenOffice + SWFTools实现office文件、pdf文件、图片文件转换SWF文件
             11.Flex Paper组件库展示文档
             12.Red5 SharedObject同步电子白板
             13.Red5 RMI 
             14.Red5生命周期及事件函数



    分享下载地址:http://yunpan.cn/QIghVmBXg5Sks



    展开全文
  • P2P流媒体技术原理及应用

    千次阅读 2013-10-11 10:13:30
    作者:王洪波,马轶慧 ...摘要:基于P2P的流媒体技术是一项非常有前途的技术,该技术有两方面的优点:不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;流媒体用户不只是下载媒体流,而且还把媒
    作者:王洪波,马轶慧
          英文关键字:P2P network; streaming media; scalability; data-driven

          关键字:对等网络;流媒体;可扩展性;数据驱动
    摘要:基于P2P的流媒体技术是一项非常有前途的技术,该技术有两方面的优点:不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;流媒体用户不只是下载媒体流,而且还把媒体流上载给其他用户,因此,这种方法可以扩大用户组的规模,且由更多的需求带来更多的资源。由于P2P流媒体系统中节点存在不稳定性,因此P2P流媒体系统需要在文件定位技术、节点选择技术、容错以及安全机制方面有所突破。此外在如何管理节点并建立发布树、如何应付不可预知的节点失效、如何适应网络状态变化方面也面临着一些挑战。
    英文摘要:The P2P-based streaming media technology is very promising and has two advantages. First, because P2P-based streaming media network can distribute media data without the support of routers and specific network infrastructure, it is cost-effective and easy to deploy. Second, a streaming media user can not only download streaming media, but also supply streaming media to other users. Therefore, the user groups' scale can be expanded, and the more the demands increase, the more the available resources increase. As the peers in the P2P-based streaming media network are not stable, the P2P streaming media system needs improvement in the fields of file location technology, peer selection technology, fault-tolerance and security mechanism. Moreover, challenges such as managing the nodes, constructing a distribution tree, coping with the unpredictable failure of nodes, and adapting to changes in the network, also exist.

     

    基金项目:国家自然科学基金资助项目(863计划)(No.90604019、60502037、60603060)

          随着互联网的日趋普及和新技术的迅速发展,一大批新兴的网络多媒体应用开始涌现并成为人们工作、生活中重要的组成部分,例如:网络电视、体育赛事广播、在线游戏、远程教育等。而这些多媒体应用需要流媒体技术的支持。

          流媒体是指在数据网络上按时间先后次序传输和播放的连续音、视频数据流。流媒体数据流具有3个特点:连续性、实时性、时序性,即其数据流具有严格的前后时序关系。由于流媒体的这些特点,它已经成为在互联网上实时传输音、视频的主要方式。本质上,流媒体技术是一种在数据网络上传递多媒体信息的技术。目前数据网络具有无连接、无确定路径、无质量保证的特点,给多媒体实时数据在数据网络上的传输带来了极大的困难,流媒体技术的主要目标就是:通过一定的技术手段实现在数据网络上有效地传递多媒体信息流。

          传统的流媒体服务大都是客户/ 服务器(C/S)模式,即用户从流媒体服务器点击观看节目,然后流媒体服务器以单播方式把媒体流推送给用户。当流媒体业务发展到一定阶段后,用户总数大幅度增加,这种C/S模式加单播方式来推送媒体流的缺陷便明显地显现出来(如流媒体服务器带宽占用大、流媒体服务器处理能力要求高等),带宽、服务器等常常成为系统瓶颈,系统的可扩展性差。

          近年来,人们把P2P技术引入到流媒体传输中而形成了P2P流媒体技术,该方法有两方面的优点。首先,这种技术并不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;第二,在这种技术中,流媒体用户不只是下载媒体流,而且还把媒体流上载给其他用户,因此,这种方法可以扩大用户组的规模,且更多的需求也带来了更多的资源。

    1 P2P流媒体系统

    1.1 P2P流媒体系统播送方式
          P2P流媒体系统按照其播送方式可分为直播系统和点播系统,此外近期还出现了一些既可以提供直播服务也可以提供点播服务的P2P流媒体系统。

    1.1.1 直播
          在流媒体直播服务中,用户只能按照节目列表收看当前正在播放的节目。在直播领域,交互性较少,技术实现相对简单,因此P2P技术在直播服务中发展迅速。 2004年,香港科技大学开发的CoolStreaming原型系统将高可扩展和高可靠性的网状多播协议应用在P2P直播系统当中,被誉为流媒体直播方面的里程碑,后期出现的PPLive和PPStream等系统都沿用了其网状多播模式。

          P2P直播是最能体现P2P价值的表现,用户观看同一个节目,内容趋同,因此可以充分利用P2P的传递能力,理论上,在上/下行带宽对等的基础上,在线用户数可以无限扩展。

    1.1.2 点播
          与直播领域相对应,在P2P流媒体点播服务中,用户可以选择节目列表中的任意节目观看。在点播领域,P2P技术的发展速度相对缓慢,一方面是因为点播当中的高度交互性实现的复杂程度较高;另一方面是节目源版权因素对P2P点播技术的阻碍。目前,P2P的点播技术主要朝着适用于点播的应用层传输协议技术、底层编码技术、以及数字版权技术等方面发展。

          与P2P流媒体直播不同,P2P流媒体点播终端必须拥有硬盘,其成本高于直播终端。目前P2P点播系统还需在技术上进一步探索,期望大规模分布式数字版权保护(DRM)系统的研究,以及底层编码技术的发展能为P2P点播系统的实施铺平道路。

    1.2 P2P流媒体系统网络结构
          目前存在很多P2P流媒体的研究成果及实际系统,它们在其覆盖网络的组织结构上可以被大体分成两大类,即基于树(Tree-based)的覆盖网络结构和数据驱动随机化的覆盖网络结构[1]

          (1)基于树的方法
          大部分系统都可以归类为基于树的方法。在这种方法中,节点被组织成某种传输数据的拓扑(通常是树,如图1所示),每个数据分组都在同一拓扑上被传输。拓扑结构上的节点有明确定义的关系,例如,树结构中的“父节点-子节点”关系。这一方法是典型的推送方法,即:当节点收到数据包,它就把该数据包的拷贝转发到它的每一个子节点。既然所有的数据包都遵循这一结构,那么保证这一结构在给所有接受节点提供高性能时是最优的。更进一步,当节点随意加入和离开时,该结构必须得以维持。特别地,如果某节点突然崩溃或者其性能显著下降,它在该树结构上所有的后代节点都停止接收数据,且该树结构必须被修复。最后,当组建基于树的结构时,避免出现环是一个必须要解决的重要问题。基于树的方法可能是最自然的方法,不需要复杂的视频编码算法。然而,其中需要重点考虑的一个问题是节点失效,特别地,靠近树根的节点失效将中断大量用户的数据传输,潜在地带来瞬时低性能的结果。此外,在该结构中大多数节点都是叶子节点,他们的上行带宽没有被使用到。为了解决这些问题,已有研究提出了一些带有弹性的结构,如基于多重树的方法[2-3]


          (2)数据驱动方法
          近年来,人们又提出用于P2P的数据驱动的方法。数据驱动的覆盖网络与基于树结构的最大不同在于它不组建和维护一个传输数据的明显拓扑结构,它用数据的可用性去引导数据流,而并不是在高度动态的P2P环境下不断地修复拓扑结构。

          一个不用明确维护拓扑结构的数据分发方法是使用Gossip协议。在典型的Gossip协议中,节点给一组随机选择的节点发送最近生成的消息;这些节点在下一次做同样的动作,其他节点也做同样的动作,直到该消息传送到所有节点。对Gossip目标节点进行随机选择可以在存在随机失效的情况下使系统获得较好的健壮性,另外还可以避免中心化操作。然而,Gossip不能直接用作视频广播,因为其随机推送可能导致高带宽视频的大量冗余。此外,在没有明确的拓扑结构支持下,最小化启动和传输时延成为主要问题。为了解决这些问题,一些解决方案,例如Chainsaw[4]、Cool-Streaming[5]采用拉取技术,即:节点维持一组伙伴并周期性地同伙伴交换数据可用性信息,接着节点可以从一个或多个伙伴找回没有获得的数据,或着提供可用数据给伙伴。由于节点只在没有数据时去主动获取,所以避免了冗余。此外,由于任一数据块可能在多个伙伴上可用,所以覆盖网络对时效是健壮的。最后,随机化的伙伴关系意味着节点间的潜在的可用带宽可以被完全利用。

    2 P2P流媒体中的关键技术
          由于P2P流媒体系统中节点存在不稳定性,P2P流媒体系统需要解决如下几个关键技术[6]:文件定位、节点选择、容错以及安全机制等。

    2.1文件定位技术
          流媒体服务实时性强,快速准确的文件定位是流媒体系统要解决的基本问题之一。在P2P流媒体系统中,新加入的客户在覆盖网络中以P2P的文件查找方式,找到可提供所需媒体内容的节点并建立连接,接受这些节点提供的媒体内容。

          P2P方式的文件查找研究是近年来P2P计算的一个研究热点。在P2P网络结构中常用的文件定位方式是通过分布式哈希表(DHT)算法[7]来实现,每个文件经哈希运算后得到一个唯一的标识符,每个节点也对应一个标识符,文件存储到与其标识符相近的节点中。查找文件时,首先哈希运算文件名得到该文件的标识符,通过不同的路由算法找到存放该文件的节点。虽然DHT方式查找文件快速有效,但是也存在一些固有的问题,如DHT是将文件均匀分布在各个节点上,不能反映媒体文件的热门度,导致负载的不均衡;其次DHT不能提供关键字的搜索,如同时包含媒体文件名、媒体类型等丰富信息的文件的查询。

          文献[8]在泛洪机制基础上做了改进,在无结构的P2P网络中采用了或然性的泛洪技术,通过或然性的分析选取优化的分支进行泛洪操作,从而使其伸缩性比正常泛洪机制提高99%。DirectStream[9]是一个基于目录的P2P流媒体点播系统,其媒体文件的查找方式是通过目录服务器来维护所有媒体服务器信息和客户信息(包括IP地址、缓冲大小等)。当新客户的请求到达时,在目录中查找请求的媒体文件,快速返回侯选节点,侯选节点可以是媒体服务器,也可以是可提供该影片片段的客户,从而具有P2P的特性。但是由于其目录服务器的集中式管理,DirectStream系统的规模受到了限制。

    2.2 节点的选择
          在一个典型的P2P覆盖网络中,网络中的节点来自各个不同自治域,节点可以在任一时间自由地加入或离开覆盖网络,导致覆盖网络具有很大的动态性和不可控性。因此,如何在服务会话初始时,确定一个相对稳定的可提供一定服务质量(QoS)保证的服务节点或节点集合是P2P流媒体系统迫切需要解决的问题。

          节点的选择可以根据不同的 QoS需求采取不同的选择策略。若希望服务延迟小,可以选择邻近的节点快速建立会话,如在局域网内有提供服务的节点,就不选择互联网上的节点,这也可以避免互联网上的带宽波动和拥塞;若希望高质量服务,则可选择能够提供高带宽、CPU能力强的节点,如在宽带接入的PC机和不对称数字用户线(ADSL)接入的终端之间选择前者;若希望得到较稳定的服务,应选择相对稳定的节点,如在系统中停留时间较长,不会频繁加入或退出系统的或正在接受服务的节点。通常选择的策略是上述几种需求的折衷。具有代表性的节点选择机制有:PROMISE体系中的端到端的选择机制和感知拓扑的选择机制、P2Cast系统的“最合适” (Best Fit,简称BF)节点选择算法等。

    2.3 容错机制
          由于P2P流媒体系统中节点的动态性,正在提供服务的节点可能会离开系统,传输链路也可能因拥塞而失效。为了保证接受服务的连续性,必须采取一些容错机制使系统的服务能力不受影响或尽快恢复。

          对于节点失效的问题,可以采取主备用节点的方式容错。在选择发送节点时,应选择多个服务节点,其中某个节点(集)作为活动节点(集),其余节点则作为备用节点。当活动节点失效时则由备用节点继续提供服务。值得研究的问题是如何快速有效地检测节点的失效,以及如何保证在主备用节点切换的过程中流媒体服务的连续性。流媒体服务的实时性较强,因此节点的故障检测时间应尽可能短,才能保证服务不中断。目前有大量关于如何缩短故障检测时间的研究,大都是采用软状态协议询问节点的存在,需要考虑询问频度与询问消息开销之间的折衷。

          数据的编码技术也可以提供系统的容错性,如前向错误编码(FEC)和多描述编码(MDC)。FEC通过给压缩后的媒体码流加上一定的冗余信息来有效地提高系统的容错性,而MDC的基本思想是对同一媒体流的内容采用多种方式进行描述,每一种描述都可以单独解码并获得可以接受的解码质量,多个描述方式结合起来可以使解码质量得到增强。这两种编码都能适应客户异构性的特点,客户可以根据自己的能力选择收取多少数据进行解码。此外,将FEC和MDC结合,能取得更好的容错效果。

    2.4 安全机制
          网络安全是P2P流媒体系统的基本要求,必须通过安全领域的身份识别认证、授权、数据完整性、保密性和不可否认性等技术,对P2P信息进行安全控制。对产权的控制,现阶段可采用DRM技术控制;对于基于企业级的P2P流媒体播出系统可以安装防火墙阻止非法用户访问;因特网上的P2P流媒体系统可以通过数据包加密方式保证安全。在P2P流媒体系统内,可采用用户分级授权的办法,阻止非法访问。

    3 P2P流媒体的应用
          网络的迅猛发展和普及为P2P流媒体业务发展提供了强大市场动力,P2P流媒体技术的应用将为网络信息交流带来革命性变化。目前常见的P2P流媒体的应用主要有:

          (1)视频点播(VOD):这是最常见、最流行的流媒体应用类型。

          (2)视频广播:视频广播可以看作是视频点播的扩展,它把节目源组织成频道,以广播的方式提供。

          (3)交互式网络电视(IPTV):IPTV利用流媒体技术通过宽带网络传输数字电视信号给用户,这种应用有效地将电视、电信和计算机3个领域结合在一起,具有很好的发展前景。

          (4)远程教学:远程教学目前应用也比较广泛,而且具有很好的市场应用前景。远程教学可以看作是前面多种应用类型的综合,在远程教学中,可以采用多种模式,甚至混合的方式实现。远程教学以应用对象明确、内容丰富实用、运营模式成熟,成为目前商业上较为成功的流媒体应用.

          (5)交互游戏:需要通过流媒体的方式传递游戏场景的交互游戏近年来得到了迅速的发展。
    其他流媒体系统的一些新的应用和服务,例如虚拟现实漫游、无线流媒体、个人数字助理(PDA)等也在迅速地变革和发展。

    4 结束语
          P2P流媒体发展如此迅速,目前,诸如CoolStreaming、PPLive等P2P流媒体软件吸引了大量的用户,显示出了巨大的生命力,但是另一方面构建一个有效的P2P流媒体系统还面临着许多挑战:

          (1)管理节点并建立发布树
          为了给大量的接收者提供媒体内容,构建应用级多播树的方法应用较广,但建立有效的多播树,并在节点不断加入和退出时维护多播树存在一定难度。

          (2)应付不可预知的节点失效
          在P2P网络中,由于节点行为的不可预知性,为了快速地恢复系统的正常工作,要求系统具有很好的可靠性,否则服务中断将时常发生。

          (3)适应网络状态变化
          在一个媒体流会话期间网络状态可能改变,如拥塞或丢包率上升,因此流媒体系统的适应性是必需的。

          尽管P2P流媒体系统的设计方面仍存在一些需要解决的问题,但其优越性仍然引起了许多大学、研究机构以及商业机构的重视,随着运营商的加入,P2P流媒体的研究势必取得更大的进展并将更加广泛地应用于商业领域。

    5 参考文献
    [1] LIU J C, RAO S, LI B, et al. Opportunities and challenges of peer-to-peer Internet video broadcast [J]. Proceedings of the IEEE, Special Issue on Recent Advances in Distributed Multimedia Communications, 2007.
    [2] CASTRO M, DRUSCHEL P, KERMARREC A M, et al. SplitStream: High-bandwidth multicast in cooperative environments [C]// Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, Oct 19 - 22, 2003, Bolton Landing, NY, USA .New York, NY,  USA: ACM Press,2003:298-313.
    [3] PADMANABHAN V N, WANG H K, CHOU P A, et al .Distributing streaming media content using cooperative networking [C]//Proceedings of ACM/IEEE Network and Operating System Support for Digital Audio and Video (NOSSDAV’02) , May 12-14, 2002, Miami, FL, USA. New York, NY, USA: ACM Press, 2002:177-186.
    [4] PAI V, TAMILMANI K, SAMBAMURTHY V, et al. Chainsaw: Eliminating trees from overlay multicast [C]// Proceedings of 4th International Workshop on Peer-to-Peer Systems, Feb 24-25, 2005, Ithaca, NY, USA. 2005:127-140.
    [5] ZHANG Xinyan, LIU Jiangchuan, LI Bo, et al. CoolStreaming/DONet: a data-driven overlay network for peer-to-peer live media streaming [C]//Proceedings of 24th Annual Joint Conference of the IEEE Computer and Communications Societies: Vol 3, Mar 13-17, Miami, FL, USA. Piscataway, NJ,USA:IEEE,2005: 2102-2111.
    [6] 龚海刚, 刘明, 毛莺池, 等. P2P流媒体关键技术的研究进展 [J]. 计算机研究与发展, 2005, 42(12):2033-2040.
    [7] STOICA I, MORRIS R, KARGER D, et al. Chord: a scalable peer-to-peer lookup service for Internet applications [C]// Proceedings of the International Conference of the Special Interest Group on Data Communication (SIGCOMM '01), Aug 27-31,2001, San Diego, CA, USA. New York, NY, USA: ACM Press, 2001:149-160.
    [8] BANAEI-KASHANI F, CHEN C C, SHAHANI C. WSPDS: Web services peer-to-peer discovery service [C]// Proceedings of International Symposium on Web Services and Applications (ISWS'04),Jun 21-24,2004, Las Vegas, NV, USA. Las Vegas, NV, USA: CSREA Press, 2004:733-743.
    [9] GUO Y, SUH K, KUROSE J, et al. A peer-to-peer on-demand streaming service and its performance evaluation [C]// Proceedings of 2003 IEEE International Conference on Multimedia & Expo (ICME 2003):Vol 1, July 6-9, 2003,Baltimore, MD, USA. Los Alamitos CA, USA: IEEE Computer Society, 2003:649-652.

    收稿日期:2007-09-27

    展开全文
  • 流媒体/流媒体文件格式详解

    千次阅读 2014-10-08 19:46:08
    摘 要 流媒体文件格式在流媒体系统中占有重要地位,设计合理的文件格式是提高流媒体服务器工作效率最直接和最有效的办法。该文在剖析常用流媒体系统和文件格式的基础上,特别地对美国xiph.org基金会的开源流媒体...
  • 流媒体流媒体传输协议简介

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

    千次阅读 2007-03-19 18:45:00
    宽频时代即将到来,这使我们“宽频 KTV、影音聊天室、线上电影院、远程教育”的梦想即将成为现实, 而与其密切相关的“流媒体(Streaming Media)”也成了许多人谈论的热门话题,因为“流媒体”正是实现这些宽频应用的...
  • 流媒体基础总结

    千次阅读 2017-04-25 18:32:44
    本人从事流媒体开发以来甚是感觉基础重要性,因此特地总结一下,希望初学者能过引起重视并少走弯路,也请相关大神多多指教,共同进步。 0.流媒体相关术语 我们先从常见视频格式mp4开始入手了解如图: 我们...
  • (2005.06.09) 来自:CSDN 刘雄武 一、 现状分析 在手机增值业务市场,短信、彩信、彩e等虽然有了交互、24小时不间断等不同于传统媒体的特点,但传输的主要是静态为主的图像和文字内容,影响了其媒体作用的充分...
  • 流媒体服务器

    千次阅读 2016-03-17 23:12:26
    由于流媒体技术的优越性,该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。 作为新一代互联网应用的标志,流媒体技术在近几年得到了飞速的发展。而流媒体服务器又
  • 安防流媒体概述

    千次阅读 2012-04-10 22:23:09
    流媒体技术最早出现在互联网,指在Internet/Intranet中使用流式传输技术的连续时基媒体,如:... 在安防领域,近年来数字化系统的大规模推广和使用,给流媒体技术的应用带来了机会。流媒体技术可实现低带宽环境下提供
  • Android流媒体播放器介绍

    千次阅读 2016-02-23 22:08:18
    Android原生流媒体播放Android原生SDK当中有提供流媒体播放API,ViewoView,播放流媒体也挺简单的,但是它支持的流媒体协议有限,例如先前博客里面提到的RTMP,就是不支持的,关于VideoView播放流媒体可以参考该博客...
  • (如下图播放样式) 使用第三方视频播放器加入链接即可 也可以下载vlc视频播放器播放 有时候启动没有问题,但是就是看不了,原因是防火墙和selinux开着 sudo /etc/init.d/iptables stop sudo /sbin/chkconfig ...
  • 背景:前一段时间帮助一个朋友研究了下流媒体播放方面的知识,感觉...HTTP Live Streaming最初是苹果公司针对其iPhone、iPod、iTouch和iPad等移动设备而开发的流媒体协议,后来在桌面QuickTime播放器中也得到了应用。H
  • 几种直播流媒体协议

    万次阅读 2017-06-01 21:30:34
    题外话: HTTP渐进下载流媒体播放: 基于TCP。 yy、乐视、爱奇艺、优酷土豆、搜狐视频、花椒直播,主要还是通过rtmp&hls来实现的, 但他们也意识到rtmp的天生缺陷,所以不管是...流媒体又叫流式媒体,它是指商家用一个
  • 流媒体直播协议与比较

    千次阅读 2018-12-19 13:30:04
    相对于常见流媒体直播协议,例如RTMP协议、RTSP 协议、MMS 协议等,HLS 直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。 HLS 协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件...
  • 流媒体测试浅析

    千次阅读 2018-05-02 09:56:08
    摘 要:目前,现有网上的流媒体业务大都采用CDN网络架构以提高质量,但随着流媒体点播用户数量的迅猛增长,用户端在使用流媒体服务时,尤其是在忙时段,黑屏、马赛克、图像停格、缓冲等现象仍然时有发生,大大影响...
  • 如何架设流媒体服务器

    千次阅读 2013-10-20 16:52:25
    宽频时代即将到来,这使我们“宽频 KTV、影音聊天室、线上电影院、远程教育”的梦想即将成为现实,而与其密切相关的“流媒体(Streaming Media)”也成了许多人谈论的热门话题,因为“流媒体”正是实现这些宽频应用的...
  • 在之前的博客《EasyNVR H5流媒体服务器方案架构设计之视频能力平台》中我们描述了EasyNVR的定位,作为一个能力平台来进行功能的输出:也就是说,在通常情况下,我们将一套视频的应用平台划分为3个部分:硬件设备层、...
  • 从零搭建流媒体服务器+obs推流直播

    万次阅读 多人点赞 2017-05-27 16:44:15
    本文使用的流媒体服务器的搭建是基于rtmp(Real Time Message Protocol)协议的,rtmp协议是应用层的协议,要依靠底层的传输层协议,比如tcp协议来保证信息传输的可靠性。最后提供了一个不错的测试方案。
  • 流媒体技术关键概念

    千次阅读 2014-08-17 11:24:35
    流媒体基本概念 非流式媒体是指声音、影像或动画等媒体文件,通常利用FTP协议,由音视频服务器向用户计算机传输。方法是整个文件先下载到本地计算机硬盘,然后用户可以离线浏览。 而所谓的流,是一种传输数据信息...
  • Liunx流媒体服务器配置

    千次阅读 2007-05-07 21:31:00
    流媒体(Stream Media)指在互联网...Linux作为网络应用的先锋,自然作为流媒体的最佳平台。LAMP (Linux + Apache + MySQL + PHP/Perl/Python) 近几年来发展迅速,已经成为Web 服务器的事实标准。下面手把手教您配置

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,249
精华内容 24,099
关键字:

常见的流媒体应用