一种网络视频点播以及直播的推流方法与流程

文档序号:11624473阅读:402来源:国知局
导航: X技术> 最新专利> 电子通信装置的制造及其应用技术
本发明一种网络视频点播以及直播的推流方法涉及云视频领域,是一种基于http协议的网络视频点播以及直播,特别是涉及网络多媒体点播直播服务领域的音视频传输技术,适用于所有通过网络提供多媒体数据和服务的应用场景。
背景技术
::随着云计算技术的不断发展,视频云也随之产生并不断发展,作为视频云的一项重要技术,即视频推流(视频流化)技术,受到业界越来越多关注。云视频推流技术的发展经历了如下几个阶段:1)多播协议方案:该方案采用多播协议发送音视频传输流,通常该方案要求接收客户端与服务器处于同一个网络内,采用该技术方案无法跨公网。2)基于rtsp等协议的跨网络单播方案:这一类技术方案通常采用tcp协议进行多媒体数据的传输,同时还需要采用专门的应用层协议来进行传输信令并对数据传输和媒体播放进行控制,尽管该类方案可以跨网络在公网上实现音视频的传输,但协议开销和复杂度较为明显,并且随着网络技术的发展,该类方案的劣势更加明显。3)苹果公司提出的hls(httplivestreaming)方案:该方案的实现较为直接,首先连续的对原始的信号源切片,然后将所获得的媒体切片文件名放入一个后缀名为m3u8的索引文件中,后续随着切片的进行,不断更新该索引文件,点直播请求通过http协议来进行服务。该方案的优点是协议简单,操作方便,仅采用了使用最普遍的http应用层协议,对媒体信号源的改动较小。但也有较为明显的缺点:延迟较大,以索引文件仅包含3个切片文件为例,每个切片的时间长度为6秒,则在直播方案中至少有18秒的延迟;兼容性差,首先该方案是针对苹果系列产品所开发出的技术方案,主要针对的信号源格式为封装成ts传输流的h264编码的视频和aac编码的音频,因此对于其它音视频编码格式,该方案实现的兼容性并不好,导致很多移动设备的软硬件播放器不能正常播放。4)其它现有的点直播视频推流方案:一种类似于hls的视频推流技术是基于dash(dynamicadaptivestreamingoverhttp)协议的推流方案,该技术大部分与hls一致,但是兼容的音视频编码格式较多,音视频分片的方式灵活多样,并且兼容的封装格式也比hls要多,该方案也需要与标准的http服务器或专门的流媒体服务器配合才能工作。此外,还有一种较为流行的推流技术是基于rtmp协议的推流方案,该方案对客户端播放器兼容性较好,客户体验流畅,但是该方案采用专门的音视频数据封装方法,而不是通用的ts传输流封装格式。现有的推流技术的实现方案主要有以下两种:1)基于http服务器的松耦合实现:该实现是通过独立实现hls或dash协议部分的信号源切片、索引文件更新操作,由第三方http服务器向客户端提供服务,该实现中节目源的操作和http的响应是两部分独立的功能,两者之间缺少协调性。2)基于http服务器的紧耦合实现:开源项目ffmpeg提供了命令行的调用方式,可以和标准的http服务器(如apache)配合,实现基于rtmp和hls/dash的推流服务,即http服务器调用ffmpeg对节目源进行转码和切片,http服务器负责响应客户端的请求,但是该实现方法服务器开销较大,灵活度较低。技术实现要素:本发明的目的是针对上述不足之处,提供一种网络视频点播以及直播的推流方法,针对云视频应用场景,将对http协议的支持和节目源的音视频封装格式的支持结合起来,同时还考虑到对其它不同节目源数据封装格式的扩展,进而实现较好的推流服务性能、较低的服务器开销、较高的可扩展性。本发明是采取以下技术方案实现的:一种网络视频点播以及直播的推流方法所采用的模块包括http请求管理模块、节目源管理模块、媒体处理模块和推流服务模块;http请求管理模块包括http请求解析子模块和http请求处理子模块;节目源管理模块通过外部接口与外部节目源服务器通信;节目源管理模块与媒体处理模块相联;媒体处理模块与推流服务模块相联,为推流服务模块提供节目源数据;http请求处理子模块和推流服务模块相连,向推流服务模块转发用户的节目请求,推流服务模块通过网络接口直接向用户发送节目数据流。节目源管理模块从外部信号源获取节目数据,并作为推流的节目来源,节目源管理模块通过外部接口请求节目源数据流,与外部信号源服务器建立连接及进行数据交互过程中的通信参数协商、身份认证、协议解析等操作;媒体处理模块与节目源编码格式和封装格式相关的处理和操作,主要包括对节目源数据流进行切片操作,并对切片后的节目分片进行缓冲;这样通过将节目源数据的请求和节目源数据的操作分离,实现了节目源的管理操作与节目源所采用的具体音视频编码格式及封装格式解耦合;http请求解析模块解析用户的请求,并将解析结果转发给http请求处理子模块,http请求处理子模块检查请求是否能够满足,如果可以满足用户的请求,则向推流服务模块转发用户的节目请求,实现了客户端的请求和节目源的管理解耦合;推流服务模块根据所缓冲的节目分片和客户端的请求来执行具体的推流操作,向请求推流服务的客户端发送节目流数据。推流服务模块进行推流有以下两种情况:1)当一个新的客户端请求到达并被服务器端接受,并被放入请求队列时,推流服务模块会立即将缓存中最新的一个分片发送给该客户端;2)当媒体处理模块为节目源创建好一个分片并将其放入缓存中,推流服务模块将该分片数据发送给该节目源的请求队列中的所有客户端。一种网络视频点播以及直播的推流方法,包括节目源的获取和处理、客户端http请求解析、推流服务器向客户端请求推送节目数据流以及客户端请求关闭四类操作;具体包括如下步骤,1)节目源的获取和处理;1-1)节目源管理模块根据外部信号源所使用的协议和流程,向信号源请求节目数据,待信号源成功响应请求后,节目源管理模块开始接收节目数据;1-2)节目源管理模块收到节目数据流后转发给媒体处理模块1-3)媒体处理模块根据节目源的编码格式和封装格式对节目源数据进行切片,节目源数据的切片遵循hls或dash中切片的原则,也可以同时有采用多种切片原则的实现,即针对不同格式的节目源采用不同的切片原则;例如,对于h264格式的视频编码,切片时需要从关键帧处进行切割。节目源数据的请求和节目源数据的处理分别由独立的功能模块实现,降低了模块间的耦合度提高了本发明的可扩展性。1-4)节目源数据的切片操作完成后,媒体处理模块将节目分片进行缓冲,并将该切片信息更新到相应的节目源管理模块中;2)客户端http请求解析;当媒体处理模块在内存中为节目源至少缓冲一个切片时,即可以开始接受用户的播放请求,向客户端提供服务;2-1)http请求解析子模块收到用户的http请求后,遵照http协议标准进行解析,若客户端请求节目播放,则提取客户请求的节目id,将客户端请求放入节目id所对应的请求队列;2-2)http请求处理子模块根据客户请求的节目id,检查内存中是否缓冲有该节目id对应的节目分片;若缓冲有节目分片,则向客户端回复请求成功的响应消息,并将该客户端请求放入节目id对应的请求队列;3)推流服务模块向请求节目的客户端推送节目数据流;推流服务模块为每一个频道或节目源建立一个队列来保存客户端的请求,每当节目源管理器在内存中生成了新的节目分片,或者当一个新的客户请求加入该请求队列,推流服务器即为该队列中的客户推送最新的节目分片数据;相应的,当某个节目源所对应的客户端请求被移出队列,推流服务器就不会再为该客户推送节目流;4)客户端请求关闭;当http请求解析子模块发现某个客户端的请求终止,即关闭http连接,http请求解析模块会向推流服务模块请求将该客户请求从所请求的节目id所对应的请求队列中移除,并释放相应资源,推流服务器也将停止对该客户端进行推流操作。进一步地,在所述步骤1-4)中,节目源管理模块中保存节目分片所需要的存储空间通过在内存中开辟缓冲区来实现,在内存中建立的缓冲区可以大大提高服务性能,降低服务延迟,同时不需要再使用索引文件,节目切片之间可以通过指针来建立索引。本发明的优点:本发明设计合理,结构科学,针对云视频应用场景,提供了一种新颖的跨公网的视频推流方案,可以达到市场上其它主流直播技术的服务性能,同时又避免了其它技术方案中的延迟等缺点,具备高扩展和低耦合的优势。将对http协议的支持和节目源的音视频封装格式的支持结合起来,同时还考虑到对其它不同节目源数据封装格式、节目源规模、所能服务的用户规模的扩展,进而实现较好的推流服务性能、较低的服务器开销、较高的灵活性。采用独立的http协议解析模块捕获并解析客户端的请求,根据具体请求内容做出相应的服务响应,并将客户端的请求放入所请求的节目源对应的请求队列;采用独立的节目源管理模块请求节目源数据流,将客户端的请求和节目源的管理解耦合;采用媒体处理模块负责与节目源编码格式和封装格式的处理和操作,将节目源管理与节目源所采用的音视频编码格式和封装格式解耦合;媒体处理模块对节目源数据流进行切片操作,并对切片后的节目分片进行缓冲;采用推流服务模块根据所缓冲的节目切片和客户端请求队列来执行具体的推流操作,在用户关闭http连接请求前,推流服务无需http协议解析模块协助即可独立进行。附图说明以下将结合附图对本发明作进一步说明:图1为本发明的工作原理框图;图2为本发明网络视频点播直播推流方法涉及的技术方案结构框图;图3为本发明网络视频点播直播推流方法的工作流程图。具体实施方式附图1为一种基于http协议的网络视频点播直播推流方法的基本原理图,图中的步骤解释如下:节目源管理模块向信号源发送节目流请求;节目源管理模块从信号源接收节目流数据;媒体处理模块对所接收到的节目数据进行切片操作;媒体处理模块对节目分片进行缓存;http请求解析子模块收到来自客户端的http播放请求;http请求处理子模块对http播放请求进行解析;http请求处理子模块将上一步中解析过的请求放入其请求的节目源的请求队列中;推流服务模块向请求播放节目的客户端发送http响应消息;推流服务模块从节目源缓存获取节目源分片,并向该请求用户发送节目分片;每当节目源生成一个新的分片并放入缓存,推流服务模块都会将该分片数据发送给节目源对应的请求队列中的所有用户。附图2为一种基于http协议的网络视频点播直播推流方法的结构图,其中的模块功能分别介绍如下:节目源管理(模块):负责从头端信号源获取节目数据,并作为推流的节目源,涉及请求节目数据的协议和流程等。此外,与节目源的音视频编码格式和封装格式相关的操作由媒体处理模块负责。媒体处理(模块):负责进行与节目源的音视频编码格式和封装格式相关的操作,如节目源的切片操作,以h264视频编码格式的ts流为例,切片操作所得到的每一个分片都是要以视频关键帧开始,并且关键帧之前要插入pat(programassociationtable,节目关联表)和pmt(programmaptable,节目映射表)。http请求管理(模块):负责解析并处理客户端的http请求,其中包括http请求解析和http请求处理两个子模块,分别负责对http请求的解析和处理。如果客户端所请求的节目源分片存在,则http请求处理模块还会将该请求放入请求队列中。推流服务(模块):该模块主要负责向请求推流服务的客户端发送节目流数据。推流发生在两种情况下:当一个新的客户端请求到达并被服务器端接受,并被放入请求队列时,推流服务模块会立即将缓存中最新的一个分片发送给该客户端;每当媒体处理模块为节目源创建好一个分片并将其放入缓存中,推流服务模块就会将该分片数据发送给该节目源的请求队列中的所有客户端。本发明推流方法的可扩展性:鉴于业界多种音视频编码格式和封装格式多种共存,如h264+mp3的ts流,h264+aac的rtmp流,因此如果需要扩展或者增加对音视频编码格式和封装格式的支持,仅需要在媒体处理模块中增加对相应音视频编码格式和封装格式支持的操作实现即可,节目源管理模块对节目源的操作都是调用媒体处理模块来进行实际操作的,媒体处理模块对节目源管理模块是透明的。附图3为一种基于http协议的网络视频点播直播推流方法的工作流程图,基于图1中的技术原理和图2的技术方案结构图,一种基于http协议的网络视频点播直播推流方法的实现过程如下:1)首先,全局的配置参数通过配置文件中的全局配置选项输入,如下例所示:[global]channels_number=1server_port=80segment_duration=2segments_num=3全局配置共四个参数,[global]是全局配置选项标签,channels_number表示当前推流服务器可以推出流的数目,如果是电视直播就代表频道数;server_port是当前推流服务器接受http请求的监听端口号;segment_duration表示在内存中缓冲的节目源分片大小,单位是秒;segments_num表示在内存中缓冲的节目源分片的数目。2)定义一个channel类实现对节目源的管理。为了便于说明,我们以h264的视频编码格式和ts传输流封装格式为例来说明媒体处理模块的实现。定义了ts类和slice类实现媒体处理模块的功能,其中ts类主要负责处理与音视频封装格式有关的操作,这里针对传输流封装相关的操作;slice类专门负责对节目源进行切片操作。由于针对不同的编码格式和封装格式,有不同的切片标准,因此可以将slice类中的切片的判断依据部分抽象成单独一个keyframedetector类,由该类专门负责寻找合适的切片位置。每一个channel类需要输入的配置信息,如下例所示:[channel_1]name=cntvip=239.1.11.1port=8001sourceinterface=192.168.15.100其中[channel_1]是节目源子配置选项标签,name为节目源的名称;ip是获取当前节目源的ip地址,在本例中,为多播地址;port为从ip获取当前节目源的端口号;sourceinterface为获取当前节目源所使用的本地网卡的ip地址,这是因为采用多播协议请求多播数据流时,要显式指定所使用的本地网卡。3)对于http协议解析和处理是使用开源库libevent来实现的。定义了一个playerclient类,该类使用libevent库中的buffer、bufferevent和event,libevent来实现http请求的解析及后续的交互通信过程。其中,libevent采用注册回调函数的方法,实现对相应端口的监听,一旦所监听的时间发生,即调用并执行用户所注册的回调函数,这样可以避免采用更加复杂的异步事件处理实现,既保证了处理效率,又降低了处理开销。4)定义了httptsserver类来负责向客户端推送节目源分片数据。其中缓冲区的实现采用了环形缓冲区的数据结构,每个分片依次相连,即当一个分片过期后,就被新到的数据所覆盖。节目源所属的客户端请求队列是采用链表数据结构实现。本发明采用独立的http协议解析模块捕获并解析客户端的请求,根据具体请求内容做出相应的服务响应,并将客户端的请求放入所请求的节目源对应的请求队列;采用独立的节目源管理模块请求节目源数据流,将客户端的请求和节目源的管理解耦合;采用媒体处理模块负责与节目源编码格式和封装格式的处理和操作,将节目源管理与节目源所采用的音视频编码格式和封装格式解耦合;媒体处理模块对节目源数据流进行切片操作,并对切片后的节目分片进行缓冲;采用推流服务模块根据所缓冲的节目切片和客户端请求队列来执行具体的推流操作,在用户关闭http连接请求前,推流服务无需http协议解析模块协助即可独立进行。当前第1页12当前第1页12
完整全部详细技术资料下载
当前第1页 1  2 
相关技术
  • 一种频道显示方法及装置与流程
  • 一种基于PPPoE拨号接入的...
  • 视频录制方法、装置和电子设备...
  • 一种录像同步回放方法及装置与...
  • 一种礼物触发转盘的方法及装置...
  • 用于在缓冲视频的同时展示广告...
  • 用于生成展现多个视频的用户界...
  • 显示控制设备和显示控制方法与...
  • 用于快速信道改变的方法以及相...
  • 一种开机方法、装置及无屏电视...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
视频直播点播系统相关技术
  • 一种车载点播装置及系统的制作方法
  • 一种直播视频点播方法
  • 视频点播数字机顶盒系统的制作方法
  • 一种hls点播和直播的实现方法及系统的制作方法
  • 基于cam卡的双向点播方法及系统的制作方法
  • 一种课程在线点播系统的制作方法
  • 一种基于p2p的在线点播系统的制作方法
  • 一种远程互动直播和/或点播系统的制作方法
  • 一种用于视频点播以及用于辅助视频点播的方法和装置的制造方法
  • 多媒体科技信息点播系统的制作方法
在线视频点播系统相关技术
  • 一种iptv的视频点播系统的制作方法
  • 一种视频资源管理方法、系统及视频点播装置制造方法
  • 一种基于网站的视频点播系统的制作方法
  • 车载视频点播系统及方法
  • 用于视频点播系统中带宽节省的社交网络的制作方法
  • 具有故障弱化暨容错的随选视频系统及方法
  • 视频点播系统及通过该系统实现视频点播的方法
  • 视频点播系统及该系统实现数据部署的方法
  • 一种p2p视频点播系统合作数据预取方法
  • 视频点播的控制方法、装置及应用的制作方法

天下网标王优化网站搜索引擎长春建网站长春网站优化网站提速是否是过度优化如何给网站做关键词优化新手优化网站客户为什么要做网站优化官渡区比较好的网站seo优化红桥区网站优化哪家专业洛阳网站seo优化上海网站竞价优化代运营北京正规网站seo如何优化随州网站优化公司企业网站建设优化策划沧州任丘网站优化武侯网站优化推广多少钱虹口区网站优化机构苏州网站优化维护优化网站文件网站关键词排名优化哪家合适桂阳网站优化霸屏安宁网站优化策划孝感网站优化形式松原网站优化汕尾企业网站优化服务项城优化网站排名收费情况168优化重组网站网络推广网站优化方法好吗鹤壁优惠网站优化公司网站优化技术案例兰州网站优化推广公司哪家好香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化