CN105791886B - 支持细粒度数据分片的无线流媒体视频服务系统与方法 - Google Patents
支持细粒度数据分片的无线流媒体视频服务系统与方法 Download PDFInfo
- Publication number
- CN105791886B CN105791886B CN201610121201.6A CN201610121201A CN105791886B CN 105791886 B CN105791886 B CN 105791886B CN 201610121201 A CN201610121201 A CN 201610121201A CN 105791886 B CN105791886 B CN 105791886B
- Authority
- CN
- China
- Prior art keywords
- mobile terminal
- video data
- video
- data block
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种支持细粒度数据分片的无线流媒体视频服务系统,包括流媒体服务器和移动终端。本发明还公开了一种应用于所述支持细粒度数据分片的无线流媒体视频服务系统的方法,包括以下步骤:步骤1、流媒体服务器对编码后的流式视频数据进行细粒度分片存储,并监听请求;步骤2、流媒体服务器维护在线移动终端信息;步骤3、移动终端进行节点维护、请求视频数据,并缓存到本机和缓存共享;步骤4、移动终端将缓存的视频数据传输给本机的解码器进行解码播放。本发明具有能够在无线网络不稳定、传输延迟大的情况下快速响应用户的播放请求以及满足用户随时随地观看和发布视频的需求等优点。
Description
技术领域
本发明涉及一种多媒体通信技术,特别涉及一种支持细粒度数据分片的无线流媒体视频服务系统与方法。
背景技术
随着无线通信技术的高速发展,和移动终端性能的快速提升,智能手机、平板等移动终端已经逐渐成为人们日常生活娱乐必不可少的工具。尤其是3G/4G网络的普及和带宽费用的降低,以及无线路由器WLAN热点的使用,移动网络上呈现的主要内容从简单的文字、图片发展到如今的视频,移动互联网上的内容越来越丰富和多样化。基于移动终端的各种应用需求越来越大,尤其移动终端的流媒体开发和应用成为新的热点。目前基于移动终端的无线流媒体技术能够被广泛应用于在线直播、视频点播、实时视频会议、远程教育等等。
目前基于移动终端的无线流媒体技术的业务大致分为直播、点播两大类型。其方法是在流媒体服务器上存放视频点播文件供用户点播访问,通过Http或RTP等协议实时向用户分发直播视频流。这种无线流媒体技术难以满足在无线网络环境传输距离远,易受建筑等干扰,不稳定、传输延迟大等特点下快速响应用户的播放请求和用户随时随地流畅观看视频的需求。
发明内容
本发明的首要目的在于克服现有技术的缺点与不足,提供一种支持细粒度数据分片的无线流媒体视频服务系统,该系统能够在无线网络不稳定、传输延迟大的情况下快速响应用户的播放请求,并使用户能随时随地流畅观看视频。
本发明的另一目的在于克服现有技术的缺点与不足,提供一种应用于支持细粒度数据分片的无线流媒体视频服务系统的方法,该方法设计和实现了一种无线流媒体数据管理和传输协议。
鉴于现有无线流媒体技术存在的不足,本发明主要聚焦于以下需求的满足:
1、无线流媒体视频服务系统与方法满足用户随时随地流畅观看视频的需求,增强视频观看的移动性;
2、采用在流媒体服务器端和移动终端对视频数据进行缓存的方法,有效避免无线网络访问不稳定,传输延迟大导致的视频观看不流畅的问题;
3、采用移动终端预先缓存细粒度数据,在播放视频时先播放缓存的数据的方法,可以有效提高移动终端响应用户播放视频请求的速度;
4、采用移动终端缓存共享单元的方法,可以降低流媒体服务器对大量用户并发访问的带宽需求,节约服务器和网络带宽的购买成本,同时进一步提高在无线网络环境下的视频流畅性。
5、用户通过移动终端将采集的视频数据实时传输到流媒体服务器上,通过流媒体服务器进行封装和转发,其他用户可以同步进行观看视频,可以满足广大用户随时随地分享和观看视频直播的需求。
本发明为满足以上需求,提供了一种支持细粒度数据分片的无线流媒体视频服务系统与方法,该支持细粒度数据分片的无线流媒体视频服务系统中的流媒体服务器端和移动终端设置内存缓冲区对视频数据进行细粒度缓存处理以实现无线网络环境下视频流畅观看需求;移动终端间的细粒度数据缓存共享单元方法,可以降低流媒体服务器对大量用户并发访问的带宽需求,节约服务器和网络带宽的购买成本,同时进一步提高了在无线网络环境下视频观看的流畅性;移动终端预先缓存细粒度数据,在播放视频时先播放缓存的数据的方法,可以有效提高移动终端响应用户播放视频请求的速度;移动终端视频的实时发布和观看,满足广大用户随时随地分享和观看视频直播的需求;移动终端将本机缓存的视频数据通过Http协议发送给解码器解码播放单元的方法,使本系统与方法具有良好的兼容性,只要兼容解码Http视频流的解码器都可以使用本方法进行解码播放单元。
本发明的首要目的通过以下技术方案实现:一种支持细粒度数据分片的无线流媒体视频服务系统,包括:流媒体服务器和移动终端;所述流媒体服务器是用于视频分割、存储、网络分发的服务器,所述流媒体服务器包括分片与存储管理单元、在线移动终端信息维护单元和数据服务单元;所述移动终端是用于无线通信和视频解码播放单元的移动设备,所述移动终端包括数据获取单元、节点维护单元、缓存共享单元、解码播放单元、视频实时采集分享单元和预缓存快速响应单元。
所述流媒体服务器还包括封装单元;所述封装单元用于将编码器编码后的视频数据封装成TS格式,并将其切片为细粒度视频数据块,然后进行存储。
本发明为解决上述无线网络环境中流媒体应用存在的技术问题而采用的方案是提供一种支持细粒度数据分片的无线流媒体视频服务系统,包括:流媒体服务器和移动终端。所述流媒体服务器是指具有视频分割、存储、网络分发功能的服务器,包括分片与存储管理单元、在线移动终端信息维护单元和数据服务单元三大功能;所述移动终端是指具有无线通信和视频解码播放单元的移动设备,包括数据获取单元、节点维护单元、缓存共享单元、解码播放单元、视频实时采集分享单元和预缓存快速响应单元六大功能。
本发明的另一目的可以通过以下技术方案实现:一种应用于所述支持细粒度数据分片的无线流媒体视频服务系统的方法,包括以下步骤:
步骤1、流媒体服务器对编码后的流式视频数据进行细粒度分片存储,并监听请求;
步骤2、流媒体服务器维护在线移动终端信息;
步骤3、移动终端进行节点维护、请求视频数据,并缓存到本机和缓存共享;
步骤4、移动终端将缓存的视频数据传输给本机的解码器进行解码播放;
在步骤2中,所述的流媒体服务器维护在线移动终端信息包括:
(1)添加新上线移动终端的IP地址、端口号信息到信息表中;
(2)删除下线的移动终端信息;
(3)监听并处理移动终端对信息表的请求。
所示步骤1包括以下步骤:
步骤11、获取编码器编码后的流式视频数据;
步骤12、封装步骤11的视频数据,并将其切片为细粒度视频数据块;
步骤13、存储步骤12所述视频数据在内存中,监听并处理移动终端的请求;
在步骤12中,所述切片为细粒度视频数据块,所述细粒度视频数据块首部为视频媒体数据格式的信息头,或者视频数据块以I帧为起始帧;切片为数据块的同时,为每一个生成的数据块按序进行编号,此编号为该数据块的唯一ID;
在步骤13中,所述监听并处理移动终端的请求,包括:
监听和处理移动终端的请求使用的通信协议为UDP协议,并在UDP协议上自定义通信协议;
每个视频数据块内以1000字节为单位从0开始按序编号,然后填充到UDP数据包中;其中,UDP数据包包含协议头参数,和1000字节的视频数据;在数据传输过程中,如果某个UDP包丢失了,则移动终端按照序号向服务器请求进行重传。
在步骤3中,所述的节点维护包括以下步骤:
步骤31、向服务器请求一定数量的其他在线移动终端的通信IP地址,端口号信息,然后构造节点表;
步骤32、遍历节点表,向节点表中的节点发送通信延迟测试请求;
步骤33、节点表中的移动终端收到通信测试请求后,向发送请求的移动终端进行回复;
步骤34、对节点表中节点回复信息的延迟进行计算,并取平均延迟为最近若干次延迟值的平均;
步骤35、节点表中节点的平均延迟大于一定值,或最近若干次都没回复的,从节点表中删除;
在步骤33中,所述向发送请求的移动终端进行回复,所回复的内容包括所述移动终端所缓存的视频数据块的范围信息,以便移动终端在请求视频数据块时判断该节点是否有其需要的视频数据块。
在步骤3中,所述的请求视频数据并缓存到本机包括以下步骤:
步骤3a、遍历节点表,向节点表中可用的节点发送请求,获取视频数据;
步骤3b、若节点表中的节点不能提供足够的视频数据,则向流媒体服务器发送数据获取请求;
步骤3c、将获取的视频数据缓存在本机内存缓冲区中;
步骤3d、播放视频时首先播放缓存的视频数据;
步骤3e、步骤4进行的同时,继续获取后续要播放的视频数据。
在步骤3中,所述缓存共享包括以下步骤:
步骤3A、维护本机缓存中视频数据块的范围信息;
步骤3B、监听其他移动终端的请求;
步骤3C、若其他移动终端请求的视频数据块在本机缓存的视频数据块的范围内,则读取缓存中对于的视频数据,发送给请求端。
在步骤4中,包括以下步骤:
步骤41、在本机构建并初始化一个数据发送服务模块;
步骤42、监听本机解码器的请求;
步骤43、将本机内存缓冲区中缓存的视频数据块从编号最小的开始按序发送给解码器;
步骤44、解码器对收到的视频数据进行解码播放;
在步骤43中,所述将视频数据发送给解码器,所采用的协议为Http协议,以便该方法具有良好的兼容性,只要兼容解码Http视频流的解码器都可以使用本方法进行解码播放。
作为优选,本发明的应用于所述支持细粒度数据分片的无线流媒体视频服务系统的方法,还包括视频实时采集分享单元的步骤,所述视频实时采集分享单元具体包括以下步骤:
步骤91、采集视频数据;
步骤92、编码步骤91所述视频数据;
步骤93、封装步骤92所述编码后的视频数据;
步骤94、向流媒体服务器发送视频数据。
本发明的另一目的也可以通过以下技术方案实现:一种应用于所述支持细粒度数据分片的无线流媒体视频服务系统的方法,包括以下步骤:
步骤1:流媒体服务器对编码后的流式视频数据进行细粒度分片存储;
步骤2:流媒体服务器维护在线移动终端信息;
步骤3:移动终端请求视频数据,并缓存到本机;
步骤4:移动终端将缓存的视频数据传输给本机的解码器进行解码播放单元。其中,所述流媒体服务器,包含封装单元;封装单元用于将编码器编码后的视频数据封装成TS格式,并将其切片为细粒度视频数据块。
TS格式在ISO/IEC 13808-1:2000(ITU-T Recommendation H.222.0)作了定义,切片时视频数据块首部为视频媒体数据格式的信息头,或者视频数据块以I帧为起始帧,此方法能让每个视频数据块都能独立的解码播放单元,并且视频数据块之间能够实现无缝播放,不出现视频的明显断开或不流畅。
其中,流媒体服务器对编码后的流式视频数据进行细粒度分片存储,包括以下步骤:
步骤1:获取编码器编码后的流式视频数据;
步骤2:封装步骤11的视频数据,并将其切片为细粒度视频数据块;
步骤3:存储步骤12所述视频数据在内存中,监听并处理移动终端的请求。
优选地,步骤2所述视频数据封装格式为TS格式;
步骤2所述切片为细粒度视频数据块,切片为数据块的同时,为每一个生成的数据块按序进行编号,此编号为该数据块的唯一ID;
步骤3所述监听并处理移动终端的请求,包括:
所述监听和处理移动终端的请求使用的通信协议为UDP协议,并在UDP协议上自定义通信协议;
每个视频数据块内以1000字节为单位从0开始按序编号,然后填充到UDP数据包中。其中,UDP数据包包含协议头参数,和1000字节的视频数据。在数据传输过程中,如果某个UDP包丢失了,则移动终端按照序号向服务器请求进行重传。
优选地,所述流媒体服务器维护在线移动终端信息,包括功能:添加新上线移动终端的IP地址,端口号信息到信息表中、删除下线的移动终端信息和监听并处理移动终端对信息表的请求。
所述移动终端请求视频数据,并缓存到本机,包括以下步骤:
步骤1:遍历节点表,向节点表中可用的节点发送请求,获取视频数据;
步骤2:若节点表中的节点不能提供足够的视频数据,则向流媒体服务器发送数据获取单元请求;
步骤3:将获取的视频数据缓存在本机内存缓冲区中。
优选地,为了完成所述移动终端请求视频数据,并缓存到本机的功能,移动终端还需节点维护单元、缓存共享单元功能。
其中节点维护单元功能的工作流程,包括以下步骤:
步骤1:向服务器请求一定数量的其他在线移动终端的通信IP地址,端口号信息,然后构造节点表;
步骤2:遍历节点表,向节点表中的节点发送通信延迟测试请求;
步骤3:节点表中的移动终端收到通信测试请求后,向发送请求的移动终端进行回复;
步骤4:对节点表中节点回复信息的延迟进行计算,并取平均延迟为最近若干次延迟值的平均;
步骤5:节点表中节点的平均延迟大于一定值,或最近若干次都没回复的,从节点表中删除。
其中,步骤3所述的向发送请求的移动终端进行回复,回复的内容还包括该移动终端缓存的视频数据块的范围信息,以便移动终端在请求视频数据块时判断该节点是否有其需要的视频数据块。
所述缓存共享单元功能,包括以下步骤:
步骤1:维护本机缓存中视频数据块的范围信息;
步骤2:监听其他移动终端的请求;
步骤3:若其他移动终端请求的视频数据块在本机缓存的视频数据块的范围内,则读取缓存中的视频数据,发送给请求端。
优选地,所述监听其他移动终端的请求使用的通信协议为UDP协议。
所述移动终端将缓存的视频数据传输给本机的解码器进行解码播放单元,包括以下步骤:
步骤1:在本机构建并初始化一个数据发送服务模块;
步骤2:监听本机解码器的请求;
步骤3:将本机内存缓冲区中缓存的视频数据块从编号最小的开始按序发送给解码器;
步骤4:解码器对收到的视频数据进行解码播放单元。
优选地,步骤3所述将视频数据发送给解码器,所采用的协议为Http协议,以便该方法具有良好的兼容性,只要兼容解码Http视频流的解码器都可以使用本方法进行解码播放单元。
所述移动终端视频实时采集分享单元功能包括以下步骤:
步骤1:采集视频数据;
步骤2:编码步骤91所述视频数据;
步骤3:封装步骤92所述编码后的视频数据;
步骤4:向流媒体服务器发送视频数据。
优选地,步骤1所述采集视频数据,包括:
通过移动终端的摄像头采集图像数据;
通过移动终端的麦克风采集音频数据;
步骤2所述编码视频数据,包括:
将所述图像数据编码为H.264格式;
将音频数据编码为AAC格式;
步骤3所述封装编码后的视频数据,包括:
将所述H.264格式的数据和所述AAC格式的数据封装为RTP数据包。
所述移动终端视频预缓存快速响应单元功能包括以下步骤:
步骤1:预先缓存细粒度视频数据;
步骤2:播放视频时首先播放预先缓存的视频数据;
步骤3:步骤2进行的同时,从服务器获取后续要播放的视频数据;
步骤4:步骤2中预先缓存的数据播放完毕之后,播放由步骤3获取的后续视频数据。
本发明相对于现有技术具有如下的优点及效果:
1、无线流媒体服务一方面可以丰富移动用户在移动终端上的休闲方式,为其开辟一种全新的生活娱乐方式,另一方面也可以通过无线流媒体服务让全球各地的移动用户随时随地观看视频。
2、无线流媒体视频服务系统与方法满足用户随时随地流畅观看视频的需求,增强视频观看的移动性。
3、采用在流媒体服务器端和移动终端对视频数据进行缓存的方法,可以有效避免无线网络访问不稳定,传输延迟大导致的视频观看不流畅的问题。
4、采用移动终端预先缓存细粒度数据,在播放视频时先播放缓存的数据的方法,可以有效提高移动终端响应用户播放视频请求的速度;
5、采用移动终端缓存共享单元的方法,可以降低流媒体服务器对大量用户并发访问的带宽需求,节约服务器和网络带宽的购买成本,同时进一步提高了在无线网络环境下视频观看的流畅性。
6、采用移动终端将本机缓存的视频数据通过Http协议发送给解码器解码播放单元的方法,使本系统与方法具有良好的兼容性,只要兼容解码Http视频流的解码器都可以使用本方法进行解码播放单元。http视频流能够很好地穿透一般的防火墙。
7、用户通过移动终端将采集的视频数据实时传输到流媒体服务器上,通过流媒体服务器进行封装和转发,其他用户可以同步进行观看视频,可以满足广大用户随时随地分享和观看视频直播的需求。本发明还具有对等终端缓存共享单元能力和现场视频采集与上传分享功能,能够在无线网络不稳定、传输延迟大的情况下快速响应用户的播放请求,并满足用户随时随地观看和发布视频的需求。
附图说明
图1为本发明的总体流程图。
图2为本发明的功能结构图。
图3为本发明的流媒体服务器编码和存储流程图。
图4为本发明的通信协议数据格式说明图。
图5为本发明的移动终端请求视频数据,并缓存到本机的活动图。
图6为本发明的移动终端节点维护单元功能的时序图。
图7为本发明的移动终端缓存共享单元功能活动图。
图8为本发明的移动终端将缓存的视频数据传输给本机的解码器进行解码播放单元时序图。
图9为本发明的移动终端视频实时采集分享单元功能流程图。
图10为本发明的移动终端视频预缓存快速响应单元功能流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本发明提供的一种支持细粒度数据分片的无线流媒体视频服务系统与方法,如图1所示,该系统的工作原理包括以下步骤:
S11:流媒体服务器对编码后的流式视频数据进行细粒度分片存储;
封装单元将编码后的视频数据封装成TS格式,并将其切片为细粒度视频数据块,封装时视频数据块首部为视频媒体数据格式的信息头,或者视频数据块以I帧为起始帧。
S12:流媒体服务器维护在线移动终端信息;
优选地,所述流媒体服务器维护在线移动终端信息,包括功能:添加新上线移动终端的IP地址,端口号信息到信息表中、删除下线的移动终端信息和监听并处理移动终端对信息表的请求。
S13:移动终端请求视频数据,并缓存到本机;
其中,移动终端通过UDP协议上自定义通信协议向流媒体服务器,或其他移动终端请求视频数据,然后缓存到本机内存中。同时移动终端也通过通信协议向其他终端共享缓存的视频数据。
S14:移动终端将缓存的视频数据传输给本机的解码器进行解码播放单元。
其中,移动终端在本机构建一个数据传输服务模块,该模块通过Http协议将本机缓存的视频数据传输给本机的解码器进行解码播放单元.
如图2所示,为本发明的功能结构图;本发明提供的支持细粒度数据分片的无线流媒体视频服务系统与方法包括流媒体服务器21和移动终端22。其中,流媒体服务器21包括封装模块211、第一缓存模块212、发送模块213和在线移动终端信息维护单元模块214。移动终端22包括视频发布模块221、解码播放单元模块222、缓存共享单元模块223、数据获取单元模块224、数据预缓存模块225、节点维护单元模块226和第二缓存模块227。模块间的连线表示视频数据的通信通道。
如图3所示,为本发明的流媒体服务器对视频流进行编码和存储流程图。
S31:获取编码器编码后的流式视频数据;
S32:封装步骤S31的视频数据为TS格式;
S33:将步骤S32封装的视频数据切片为细粒度视频数据块,并按序进行编号,此编号为该数据块的唯一ID;
S34:将细粒度视频数据块缓存在内存中;
S35:在UDP协议上监听并处理移动终端的请求。
如图4所示,为本发明的通信协议数据格式说明图。
自定义通信协议数据格式如图所示。每个视频数据块内以1000字节为单位从0开始按序编号,然后填充到UDP数据包中。
UDP数据包包含协议头参数,和1000字节的视频数据。
协议头的结构包括:请求类型、数据块ID、数据块内序号和附加参数。
其中,附加参数根据请求类型的不同附加所需要的额外信息,如移动终端的UDP通信端口号、缓冲区中缓存的视频数据块ID范围等。
如图5所示,为本发明的移动终端请求视频数据,并缓存到本机的活动图。
S51:调用getLastChunkID函数获取当前缓冲区中已下载完成的视频数据块的ID,然后判断该ID是否为0,若为0,则执行S52,否则执行S53;
S52:调用prefetchLastChunk函数请求首个数据块;
S53:从视频数据块的ID+1到ID+9的每一个数据块循环判断节点表中的目标移动终端是否包含该数据块的数据,且当前本机缓冲区中可播放的缓存块个数是否大于2个,若是,则执行S54,否则执行S55;
S54:调用sendGetChunkSize向流媒体服务器请求该数据块的大小信息;
S55:调用sendGetChunkSize向节点表中的目标移动终端请求该数据块的大小信息;
S56:从视频数据块的ID+1到ID+2的每一个数据块判断它是否为空,若不为空,则执行S57,否则执行S511;
S57:判断该数据块是否下载完成,若下载完成,执行S511,否则执行下一步;
S58:调用getBitmap获取该数据块的位图,然后循环判断节点表中的目标移动终端是否包含该数据块的数据,且当前本机缓冲区中可播放的缓存块个数是否大于2个,若是,则执行下一步,否则,执行S510;
S59:调用Send向目标移动终端发送包含S58获得的该数据块位图的请求,以请求该数据块未下载的所有数据;
S510:调用Send向流媒体发送包含S58获得的该数据块位图的请求,以请求该数据块未下载的所有数据;
S511:设置每次请求16个UDP数据包,然后循环执行S512到S514,直到该数据块中的所有数据包的请求都已发送。
S512:循环判断节点表中的目标移动终端是否包含该数据块的数据,且当前本机缓冲区中可播放的缓存块个数是否大于2个,若是,则执行下一步,否则,执行S514;
S513:调用Send向目标移动终端请求该数据块的16个UDP数据包;
S514:调用Send向流媒体服务器请求该数据块的16个UDP数据包;
S515:判断是否超过100毫秒没有收到数据,若是,则执行下一步,否则等待100毫秒,再重复执行本步骤;
S516:调用put将获取的视频数据缓存到本机内存缓冲区中;
S517:调用coutPeerPacketLossRate计算节点表中每个节点的丢包率;
S518:判断是否有节点的丢包率大于15%,若大于15%,则调用delete从节点表中删除该节点。
如图6所示,为本发明的移动终端节点维护单元功能的时序图。
S61:向流媒体服务器请求一定数量的其他在线移动终端的通信IP地址,端口号信息;
S62:流媒体服务器返回一定数量的其他在线移动终端的通信IP地址,端口号信息;
S63:本移动终端根据其他在线移动终端的信息构建节点表,并对节点表中的每个移动终端发送通信延迟测试请求;
S64:节点表中的移动终端收到通信测试请求后,向发送请求的移动终端进行回复,回复的内容还包括该移动终端缓存的视频数据块的范围信息;
S65:对节点表中节点回复信息的延迟进行计算,并取平均延迟为最近若干次延迟值的平均;
S66:节点表中节点的平均延迟大于一定值,或最近若干次都没回复的,从节点表中删除;
S67:若节点表中的节点数小于50个,则向流媒体服务器请求更多在线的移动终端信息;
S68:流媒体服务器返回一定数量的其他在线移动终端的通信IP地址,端口号信息;
S69:若节点表中的节点数小于100个,则向其他在线的移动终端它的节点表中的所有移动终端信息;
S610:其他移动终端返回其节点表中的所有移动终端信息。
如图7所示,为本发明的移动终端缓存共享单元功能活动图。
S71:维护本机缓冲区中缓存的中视频数据块ID的范围信息;
S72:在UDP端口上监听其他移动终端的请求。请求来到后,根据请求的数据块ID判断该数据块是否在本机缓冲区中,如果不在,则忽略该请求,否则执行下一步;
S73:根据请求的数据块ID从缓冲区中读取该数据块的数据;
S74:按自定义的通信协议格式将读取的视频数据封装成UDP数据发送给请求端。
如图8所示,为本发明的移动终端将缓存的视频数据传输给本机的解码器进行解码播放单元时序图。
S81:在本机构建并初始化一个数据发送服务模块;
S82:监听本机解码器的请求;
S83:解码器向数据发送服务模块发送播放请求;
S84:从本机内存缓冲区中数据块ID最小的视频数据块开始读取;
S85:将读取的视频数据发送给解码器;
S86:解码器对收到的视频数据进行解码播放单元。
其中,解码器和数据发送服务模块间的通信所采用的协议为Http协议,以便该方法具有良好的兼容性,只要兼容解码Http视频流的解码器都可以使用本方法进行解码播放单元。
如图9所示,为本发明的移动终端视频实时采集分享单元功能流程图。
S91:采集摄像头的图像数据;
S92:将图像数据编码为H.264格式;
S93:采集麦克风的音频数据;
S94:将音频数据编码为AAC格式;
S95:封装为RTP数据包;
S96:发送RTP数据包给流媒体服务器。
如图10所示,为本发明的移动终端视频预缓存快速响应单元功能流程图。
S101:预先缓存细粒度视频数据,然后判断用户是否请求播放视频,若是,则执行步骤S104,否则执行步骤S102;
S102:等待一段时间;
S103:删除预缓存的视频数据,然后执行步骤S101;
S104:播放预先缓存的视频数据;
S105:获取后续视频数据;
S106:播放后续视频数据。
其中,步骤S102所述的等待一段时间为异步等待,即在等待的同时监听用户是否请求播放视频,若是,则停止等待,然后执行步骤S104,否则等待一段时间后执行步骤S103。
上述方法相比其他系统而言,具有以下突出的技术特征:流媒体服务器端和移动终端设置了内存缓冲区对视频数据进行细粒度缓存处理以实现无线网络环境下视频流畅观看需求;移动终端间的细粒度数据缓存共享单元方法,可以降低流媒体服务器对大量用户并发访问的带宽需求,节约服务器和网络带宽的购买成本,同时进一步提高了在无线网络环境下视频观看的流畅性;移动终端预先缓存细粒度数据,在播放视频时先播放缓存的数据的方法,可以有效提高移动终端响应用户播放视频请求的速度;移动终端视频的实时发布和观看,满足广大用户随时随地分享和观看视频直播的需求;移动终端将本机缓存的视频数据通过Http协议发送给解码器解码播放单元的方法,使本系统与方法具有良好的兼容性,只要兼容解码Http视频流的解码器都可以使用本方法进行解码播放单元。
综上所述,通过本发明,可以丰富移动用户在移动终端上的休闲方式,满足移动用户随时随地流畅观看视频和实时采集分享直播视频的需求。同时可以降低流媒体服务器的带宽需求,节约服务器和网络带宽的购买成本。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种支持细粒度数据分片的无线流媒体视频服务系统,其特征在于,包括:流媒体服务器和移动终端;所述流媒体服务器是用于视频分割、存储、网络分发的服务器,所述流媒体服务器包括分片与存储管理单元、在线移动终端信息维护单元和数据服务单元;所述移动终端是用于无线通信和视频解码播放单元的移动设备,所述移动终端包括数据获取单元、节点维护单元、缓存共享单元、解码播放单元、视频实时采集分享单元和预缓存快速响应单元;
所述移动终端,其请求视频数据并缓存到本机,具体如下:
S51:调用getLastChunkID函数获取当前缓冲区中已下载完成的视频数据块的ID,然后判断该ID是否为0,若为0,则执行S52,否则执行S53;
S52:调用prefetchLastChunk函数请求首个数据块;
S53:从视频数据块的ID+1到ID+9的每一个数据块循环判断节点表中的目标移动终端是否包含该数据块的数据,且当前本机缓冲区中可播放的缓存块个数是否大于2个,若是,则执行S54,否则执行S55;
S54:调用sendGetChunkSize向流媒体服务器请求该数据块的大小信息;
S55:调用sendGetChunkSize向节点表中的目标移动终端请求该数据块的大小信息;
S56:从视频数据块的ID+1到ID+2的每一个数据块判断它是否为空,若不为空,则执行S57,否则执行S511;
S57:判断该数据块是否下载完成,若下载完成,执行S511,否则执行下一步;
S58:调用getBitmap获取该数据块的位图,然后循环判断节点表中的目标移动终端是否包含该数据块的数据,且当前本机缓冲区中可播放的缓存块个数是否大于2个,若是,则执行下一步,否则,执行S510;
S59:调用Send向目标移动终端发送包含S58获得的该数据块位图的请求,以请求该数据块未下载的所有数据;
S510:调用Send向流媒体发送包含S58获得的该数据块位图的请求,以请求该数据块未下载的所有数据;
S511:设置每次请求16个UDP数据包,然后循环执行S512到S514,直到该数据块中的所有数据包的请求都已发送;
S512:循环判断节点表中的目标移动终端是否包含该数据块的数据,且当前本机缓冲区中可播放的缓存块个数是否大于2个,若是,则执行下一步,否则,执行S514;
S513:调用Send向目标移动终端请求该数据块的16个UDP数据包;
S514:调用Send向流媒体服务器请求该数据块的16个UDP数据包;
S515:判断是否超过100毫秒没有收到数据,若是,则执行下一步,否则等待100毫秒,再重复执行本步骤;
S516:调用put将获取的视频数据缓存到本机内存缓冲区中;
S517:调用coutPeerPacketLossRate计算节点表中每个节点的丢包率;
S518:判断是否有节点的丢包率大于15%,若大于15%,则调用delete从节点表中删除该节点。
2.如权利要求1所述的支持细粒度数据分片的无线流媒体视频服务系统,其特征在于,所述流媒体服务器还包括封装单元;所述封装单元用于将编码器编码后的视频数据封装成TS格式,并将其切片为细粒度视频数据块,然后进行存储。
3.一种应用于权利要求1所述支持细粒度数据分片的无线流媒体视频服务系统的方法,其特征在于,包括以下步骤:
步骤1、流媒体服务器对编码后的流式视频数据进行细粒度分片存储,并监听请求;
步骤2、流媒体服务器维护在线移动终端信息;
步骤3、移动终端进行节点维护、请求视频数据,并缓存到本机和缓存共享;
步骤4、移动终端将缓存的视频数据传输给本机的解码器进行解码播放;
在步骤2中,所述的流媒体服务器维护在线移动终端信息包括:
(1)添加新上线移动终端的IP地址、端口号信息到信息表中;
(2)删除下线的移动终端信息;
(3)监听并处理移动终端对信息表的请求。
4.如权利要求3所述的方法,其特征在于,所示步骤1包括以下步骤:
步骤11、获取编码器编码后的流式视频数据;
步骤12、封装步骤11的视频数据,并将其切片为细粒度视频数据块;
步骤13、存储步骤12所述视频数据在内存中,监听并处理移动终端的请求;
在步骤12中,所述切片为细粒度视频数据块,所述细粒度视频数据块首部为视频媒体数据格式的信息头,或者视频数据块以I帧为起始帧;切片为数据块的同时,为每一个生成的数据块按序进行编号,此编号为该数据块的唯一ID;
在步骤13中,所述监听并处理移动终端的请求,包括:
监听和处理移动终端的请求使用的通信协议为UDP协议,并在UDP协议上自定义通信协议;
每个视频数据块内以1000字节为单位从0开始按序编号,然后填充到UDP数据包中;其中,UDP数据包包含协议头参数,和1000字节的视频数据;在数据传输过程中,如果某个UDP包丢失了,则移动终端按照序号向服务器请求进行重传。
5.如权利要求3所述的方法,其特征在于,在步骤3中,所述的节点维护包括以下步骤:
步骤31、向服务器请求一定数量的其他在线移动终端的通信IP地址,端口号信息,然后构造节点表;
步骤32、遍历节点表,向节点表中的节点发送通信延迟测试请求;
步骤33、节点表中的移动终端收到通信测试请求后,向发送请求的移动终端进行回复;
步骤34、对节点表中节点回复信息的延迟进行计算,并取平均延迟为最近若干次延迟值的平均;
步骤35、节点表中节点的平均延迟大于一定值,或最近若干次都没回复的,从节点表中删除;
在步骤33中,所述向发送请求的移动终端进行回复,所回复的内容包括所述移动终端所缓存的视频数据块的范围信息,以便移动终端在请求视频数据块时判断该节点是否有其需要的视频数据块。
6.如权利要求3所述的方法,其特征在于,在步骤3中,所述的请求视频数据并缓存到本机包括以下步骤:
步骤3a、遍历节点表,向节点表中可用的节点发送请求,获取视频数据;
步骤3b、若节点表中的节点不能提供足够的视频数据,则向流媒体服务器发送数据获取请求;
步骤3c、将获取的视频数据缓存在本机内存缓冲区中;
步骤3d、播放视频时首先播放缓存的视频数据。
7.如权利要求3所述的方法,其特征在于,在步骤3中,所述缓存共享包括以下步骤:
步骤3A、维护本机缓存中视频数据块的范围信息;
步骤3B、监听其他移动终端的请求;
步骤3C、若其他移动终端请求的视频数据块在本机缓存的视频数据块的范围内,则读取缓存中对于的视频数据,发送给请求端。
8.如权利要求3所述的方法,其特征在于,在步骤4中,包括以下步骤:
步骤41、在本机构建并初始化一个数据发送服务模块;
步骤42、监听本机解码器的请求;
步骤43、将本机内存缓冲区中缓存的视频数据块从编号最小的开始按序发送给解码器;
步骤44、解码器对收到的视频数据进行解码播放;
在步骤43中,所述将视频数据发送给解码器,所采用的协议为Http协议。
9.权利要求3所述的方法,其特征在于,还包括视频实时采集分享单元的步骤,所述视频实时采集分享单元具体包括以下步骤:
步骤91、采集视频数据;
步骤92、编码步骤91所述视频数据;
步骤93、封装步骤92所述编码后的视频数据;
步骤94、向流媒体服务器发送视频数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610121201.6A CN105791886B (zh) | 2016-03-03 | 2016-03-03 | 支持细粒度数据分片的无线流媒体视频服务系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610121201.6A CN105791886B (zh) | 2016-03-03 | 2016-03-03 | 支持细粒度数据分片的无线流媒体视频服务系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791886A CN105791886A (zh) | 2016-07-20 |
CN105791886B true CN105791886B (zh) | 2018-10-09 |
Family
ID=56387858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610121201.6A Active CN105791886B (zh) | 2016-03-03 | 2016-03-03 | 支持细粒度数据分片的无线流媒体视频服务系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791886B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109151494B (zh) * | 2017-06-19 | 2021-07-09 | 杭州萤石网络有限公司 | 多媒体数据传输方法、多媒体采集设备及服务器 |
CN110795026B (zh) * | 2018-08-03 | 2021-04-27 | 杭州海康威视系统技术有限公司 | 热点数据的识别方法、装置、设备及存储介质 |
CN110891162B (zh) * | 2019-11-12 | 2021-04-20 | 杭州当虹科技股份有限公司 | 基于5g与lbs的超高清城市景点实时宣传系统及方法 |
CN113709585B (zh) * | 2021-08-25 | 2023-09-19 | 三星电子(中国)研发中心 | 流媒体播放方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282281A (zh) * | 2007-04-03 | 2008-10-08 | 华为技术有限公司 | 一种媒体分发系统、装置及流媒体播放方法 |
CN101534204A (zh) * | 2008-03-10 | 2009-09-16 | 中国网通集团宽带业务应用国家工程实验室有限公司 | 流媒体信息分发系统和方法及客户端 |
CN101552800A (zh) * | 2008-04-01 | 2009-10-07 | 华为技术有限公司 | 提供媒体内容的方法、装置和系统 |
CN102497578A (zh) * | 2011-11-25 | 2012-06-13 | 武汉大学 | 一种3g网络环境下的移动音视频实时通信方法 |
CN103581698A (zh) * | 2012-07-31 | 2014-02-12 | 联想(北京)有限公司 | 终端设备以及视频数据发布方法 |
-
2016
- 2016-03-03 CN CN201610121201.6A patent/CN105791886B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282281A (zh) * | 2007-04-03 | 2008-10-08 | 华为技术有限公司 | 一种媒体分发系统、装置及流媒体播放方法 |
CN101534204A (zh) * | 2008-03-10 | 2009-09-16 | 中国网通集团宽带业务应用国家工程实验室有限公司 | 流媒体信息分发系统和方法及客户端 |
CN101552800A (zh) * | 2008-04-01 | 2009-10-07 | 华为技术有限公司 | 提供媒体内容的方法、装置和系统 |
CN102497578A (zh) * | 2011-11-25 | 2012-06-13 | 武汉大学 | 一种3g网络环境下的移动音视频实时通信方法 |
CN103581698A (zh) * | 2012-07-31 | 2014-02-12 | 联想(北京)有限公司 | 终端设备以及视频数据发布方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105791886A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103843301B (zh) | 经译码多媒体数据的网络串流期间的表示之间的切换 | |
CN110536179A (zh) | 一种内容分发系统和方法 | |
CN105791886B (zh) | 支持细粒度数据分片的无线流媒体视频服务系统与方法 | |
CN103518351B (zh) | 使用文件递送方法的ip广播流式传输服务分布 | |
CN102075728B (zh) | 一种共享音频和/或视频的方法及系统 | |
CN104735470B (zh) | 一种流媒体数据传输方法及装置 | |
CN104125429B (zh) | 视频数据传输的调节方法及装置 | |
CN100568966C (zh) | 一种音/视频数据的网络传输方法 | |
US20050123042A1 (en) | Moving picture streaming file, method and system for moving picture streaming service of mobile communication terminal | |
CN107819809B (zh) | 对内容进行同步操作的方法及装置 | |
CN108696773A (zh) | 一种实时视频的传输方法及装置 | |
CN103945277B (zh) | 实现移动终端视频分享的方法、系统和装置 | |
CN100499805C (zh) | 一种基于光场渲染的自由视点视频在ip网传输方法 | |
CN104320716B (zh) | 一种基于多终端协同的视频上行链路传输方法 | |
JP4340268B2 (ja) | 疑似ストリーミング技術を利用した移動通信端末機の動画像伝送方法 | |
CN102325181A (zh) | 一种基于共享业务的音视频即时交互通信方法及系统 | |
CN101330622B (zh) | 基于h.264编码的播放系统、方法以及用户设备 | |
US7428271B2 (en) | Network device and data transmission method for efficient data transmission and reception in mobile ad hoc network environment | |
CN102404646A (zh) | 一种无线电视直播系统及其直播方法 | |
CN107547517B (zh) | 音视频节目录制方法和网络设备及计算机装置 | |
CN105979284B (zh) | 移动终端视频共享方法 | |
KR100703421B1 (ko) | 트랜스코딩을 이용한 동영상메일 통신장치 및 방법 | |
CN108632679A (zh) | 一种多媒体数据传输的方法和一种视联网终端 | |
CN100544437C (zh) | 一种流媒体带宽适配系统 | |
CN103561013B (zh) | 流媒体的数据分发系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |