CN116684703A - 基于邻近服务通信协议的流媒体数据传输方法及相关设备 - Google Patents
基于邻近服务通信协议的流媒体数据传输方法及相关设备 Download PDFInfo
- Publication number
- CN116684703A CN116684703A CN202310615230.8A CN202310615230A CN116684703A CN 116684703 A CN116684703 A CN 116684703A CN 202310615230 A CN202310615230 A CN 202310615230A CN 116684703 A CN116684703 A CN 116684703A
- Authority
- CN
- China
- Prior art keywords
- terminal
- streaming media
- fragment
- media data
- index file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000004891 communication Methods 0.000 title claims abstract description 69
- 230000005540 biological transmission Effects 0.000 title claims abstract description 66
- 239000012634 fragment Substances 0.000 claims abstract description 392
- 238000013507 mapping Methods 0.000 claims description 28
- 238000013467 fragmentation Methods 0.000 claims description 18
- 238000006062 fragmentation reaction Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- 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
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种基于邻近服务通信协议的流媒体数据传输方法、终端及服务器、介质及设备,该方法包括:向流媒体服务器发送流媒体数据请求,其中,流媒体数据请求用于请求流媒体服务器返回待传输流媒体数据,待传输流媒体数据包括:待传输的多个传输流TS分片;接收流媒体服务器根据流媒体数据请求返回待传输流媒体数据的索引文件;从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,以使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片;接收第二终端返回的TS分片。本公开能够减少服务器传输数据开销、缩短网络链路,以提升用户体验。
Description
技术领域
本公开涉及流媒体通信技术领域,尤其涉及一种基于邻近服务通信协议的流媒体数据传输方法、终端及服务器、介质及设备。
背景技术
自适应流媒体技术,即智能地根据当前网络质量来动态调节视频编码速率的技术。目前最具代表性的是基于HTTP的自适应码率流媒体传输协议(Hyper Text TransferProtocol Live Streaming,HLS)技术,已广泛应用于各类视频点播与直播场景。
一个完整的HLS节目包含m3u8格式的主索引文件、二级索引文件,以及其对应的多个传输流(Transport Stream,TS)分片。相关技术中,终端播放HLS内容时,需要直接访问云端服务器,或者通过云端服务器调度至其他节点下载TS分片,该过程通常导致云端服务器的开销较大,网络链路较长,从而很容易影响用户的使用体验。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种基于邻近服务通信协议的流媒体数据传输方法、终端及服务器、介质及设备,至少在一定程度上克服由于相关技术中由于用户终端仅与云端服务器交互,导致服务器开销较大、网络链路较长,从而影响用户体验的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供了一种基于邻近服务通信协议的流媒体数据传输方法,应用于第一终端,所述第一终端基于邻近服务通信协议与第二终端通信,该方法包括:向流媒体服务器发送流媒体数据请求,其中,所述流媒体数据请求用于请求所述流媒体服务器返回待传输流媒体数据,所述待传输流媒体数据包括:待传输的多个传输流TS分片;接收所述流媒体服务器根据流媒体数据请求返回所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,以使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;接收所述第二终端返回的TS分片。
在一些实施例中,所述方法还包括:在第二终端上不存在相应TS分片的情况下,向流媒体服务器发送相应TS分片的分片请求;接收所述流媒体服务器返回的TS分片。
在一些实施例中,在接收所述第二终端返回的TS分片之前,所述方法还包括:建立第一映射表,其中,所述第一映射表包括TS分片的分片标识和所述TS分片在第一终端的存储路径,用于接收所述第二终端返回的TS分片后,保存接收到的TS分片的分片标识和所述接收到的TS分片在第一终端的存储路径。
根据本公开的另一个方面,还提供了一种基于邻近服务通信协议的流媒体数据传输方法,应用于第二终端,所述第二终端基于邻近服务通信协议与第一终端通信,该方法包括:接收所述第一终端发送的分片标识,其中,所述分片标识为所述第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,所述索引文件为所述流媒体服务器为根据所述第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;根据所述第一终端发送的分片标识,查询所述第二终端上是否存在相应的TS分片;在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
在一些实施例中,在接收所述第一终端发送的分片标识之前,所述方法还包括:建立第二映射表,其中,所述第二映射表包括TS分片的分片标识和所述TS分片在第二终端的存储路径,用于判断第二终端上是否存在接收到的所述第一终端发送的分片标识。
根据本公开的另一个方面,还提供了一种基于邻近服务通信协议的流媒体数据传输方法,应用于流媒体服务器,所述流媒体服务器分别与第一终端和第二终端通信,所述第一终端基于邻近服务通信协议与第二终端通信,该方法包括:为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;根据生成的分片标识修改所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;响应于第一终端的流媒体数据请求,向所述第一终端返回所述待传输流媒体数据的索引文件,以使所述第一终端从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,进而使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
在一些实施例中,所述方法还包括:在第二终端上不存在相应TS分片的情况下,接收第一终端发送的相应TS分片的分片请求;向所述第一终端发送TS分片。
在一些实施例中,所述索引文件为M3U8格式的索引文件。
根据本公开的另一个方面,还提供了一种基于邻近服务通信协议的流媒体数据传输系统,包括:第一终端、第二终端以及流媒体服务器;其中,所述流媒体服务器用于为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;根据生成的分片标识修改所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;所述第一终端用于向流媒体服务器发送流媒体数据请求,其中,所述流媒体数据请求用于请求所述流媒体服务器返回待传输流媒体数据,所述待传输流媒体数据包括:待传输的多个传输流TS分片;其中,所述流媒体服务器还用于响应于第一终端的流媒体数据请求,向所述第一终端返回所述待传输流媒体数据的索引文件,以使所述第一终端从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,进而使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;其中,所述第一终端还用于接收所述流媒体服务器根据流媒体数据请求返回所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;其中,所述第一终端还用于从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,以使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;所述第二终端用于接收所述第一终端发送的分片标识,其中,所述分片标识为所述第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,所述索引文件为所述流媒体服务器为根据所述第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;根据所述第一终端发送的分片标识,查询所述第二终端上是否存在相应的TS分片;在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;其中,所述第一终端还用于接收所述第二终端返回的TS分片。
根据本公开的另一个方面,还提供了一种终端,包括:流媒体数据请求模块,用于向流媒体服务器发送流媒体数据请求,其中,所述流媒体数据请求用于请求所述流媒体服务器返回待传输流媒体数据,所述待传输流媒体数据包括:待传输的多个传输流TS分片;索引文件接收模块,用于接收所述流媒体服务器根据流媒体数据请求返回所述待传输流媒体数据的索引文件,其中,所述索引文件用于第一终端从所述流媒体服务器上获取各个TS分片;分片标识发送模块,用于从所述索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,以使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;分片文件接收模块,用于接收所述第二终端返回的TS分片。
根据本公开的另一个方面,还提供了一种终端,包括:分片标识接收模块,用于接收第一终端发送的分片标识,其中,所述分片标识为所述第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,所述索引文件为所述流媒体服务器为根据所述第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;分片文件查询模块,用于根据所述第一终端发送的分片标识,查询第二终端上是否存在相应的TS分片;分片文件发送模块,用于在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
根据本公开的另一个方面,还提供了一种流媒体服务器,包括:分片标识生成模块,用于为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;索引文件修改模块,用于根据生成的分片标识修改所述待传输流媒体数据的索引文件,其中,所述索引文件用于第一终端从所述流媒体服务器上获取各个TS分片;索引文件发送模块,用于响应于第一终端的流媒体数据请求,向所述第一终端返回所述待传输流媒体数据的索引文件,以使所述第一终端从所述索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,进而使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
根据本公开的另一个方面,还提供了一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的基于邻近服务通信协议的流媒体数据传输方法。
根据本公开的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的基于邻近服务通信协议的流媒体数据传输方法。
根据本公开的另一个方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任意一项的基于邻近服务通信协议的流媒体数据传输方法。
本公开的实施例中提供的基于邻近服务通信协议的流媒体数据传输方法、终端及服务器、介质及设备,向流媒体服务器发送接收数据请求,接收待传输流媒体数据的索引文件,对索引文件进行解析并得到待传输的TS分片的分片标识,将其发送至第二终端进行查询,在第二终端存在相应TS分片的情况下,接收第二终端返回的TS分片。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例中基于邻近服务通信协议的流媒体数据传输方法的示例性应用系统架构示意图;
图2示出本公开实施例中一种原始HLS文件结构及索引示意图;
图3示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图;
图4示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图;
图5示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图;
图6示出本公开实施例中一种优化后HLS文件结构及索引示意图;
图7示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图;
图8示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输系统示意图;
图9示出本公开实施例中一种终端结构示意图;
图10示出本公开实施例中又一种终端结构示意图;
图11示出本公开实施例中一种流媒体服务器结构示意图;
图12示出本公开实施例中一种电子设备的框图;
图13示出本公开实施例中一种计算机可读存储介质示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为便于理解,在介绍本公开实施例之前,首先对本公开实施例中涉及到的几个名词进行解释如下:
HLS(Hyper Text Transfer Protocol Live Streaming),基于HTTP的自适应码率流媒体传输协议;
M3U8,UTF-8编码格式的M3U文件;
TS(Transport Stream),传输流;
URL(Uniform Resource Locator),统一资源定位器。
下面结合附图,对本公开实施例的具体实施方式进行详细说明。
图1示出了可以应用本公开实施例中基于邻近服务通信协议的流媒体数据传输方法的示例性应用系统架构示意图。如图1所示,该系统架构可以包括第一终端1011、第二终端1012、网络102和服务器103。
网络102用以在第一终端1011、第二终端1012和服务器103之间提供通信链路的介质,可以是有线网络,也可以是无线网络。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
第一终端1011和第二终端1012可以是具备邻近服务通信协议的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、增强现实设备、虚拟现实设备等。
可选地,不同的第一终端1011和不同的第二终端1012中安装的应用程序的客户端是相同的,或基于不同操作系统的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、PC客户端等。
服务器103可以是提供各种服务的服务器,例如对用户利用终端设备101所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
可选地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在本公开的一个实施例中,第一终端在特定情况下也可看做第二终端,根据实际需要进行设定,本公开实施例对此不做具体限定,第一终端、第二终端和服务器之前可实现两两互传。
在本公开的一个实施例中,第一终端可看做用户终端,第二终端可看做邻近终端。第一终端与第二终端之间可通过邻近服务通信协议进行流媒体数据传输。第一终端与服务器之间、第二终端与服务器之间可通过网络进行流媒体数据传输。
本领域技术人员可以知晓,图1中的第一终端、第二终端、网络和服务器的数量仅仅是示意性的,根据实际需要,可以具有任意数目的第一终端、第二终端、网络和服务器。本公开实施例对此不作限定。
在上述系统架构下,本公开实施例中提供了一种基于邻近服务通信协议的流媒体数据传输方法,该方法可以由任意具备计算处理能力的电子设备执行。
在一些实施例中,本公开实施例中提供的基于邻近服务通信协议的流媒体数据传输方法可以由上述系统架构的第一终端和第二终端执行;在另一些实施例中,本公开实施例中提供的基于邻近服务通信协议的流媒体数据传输方法可以由上述系统架构中的服务器执行;在另一些实施例中,本公开实施例中提供的基于邻近服务通信协议的流媒体数据传输方法可以由上述系统架构中的第一终端、第二终端和服务器通过交互的方式来实现。
图2示出本公开实施例中一种原始HLS文件结构及索引示意图,一个完整的HLS文件包含M3U8格式的主索引文件、二级索引文件,以及其对应的多个TS分片。其中,主索引文件记录了多个码率及其对应的二级索引文件URL,二级索引文件记录了该码率下所有TS分片的URL以及时长等信息。
需要说明的是,HLS技术通过编码器将视频源内容按照设定的多个码率进行编码,并将每种码率的内容分割为固定时长的多个TS分片,同时生成M3U8格式的主索引文件和二级索引文件。
如图2所示,其中,a.m3u8是主索引文件,记录了600kbps和2500kbps两种码率以及这两种码率分别对应的二级索引文件index.m3u8的URL地址,其中码率为600kbps的二级索引文件置于low目录中,码率为2500kbps的二级索引文件置于high目录中。
二级索引文件记录了该码率下的TS分片信息,其中,#EXTM3U表示该文件为M3U8格式文件,#EXT-X-STREAM-INF表示一个可变视频流,#EXTINF代表分片时长,#EXT-X-TARGETDURATION为指定最大的媒体段时间长度,媒体文件在#EXTINF标签中定义的持续时间必须小于或者等于该标签指定的持续时间,#EXT-X-MEDIA-SEQUENCE定义当前m3u8文件中第一个文件的序列号,本公开实施例中每个目录下各有100个TS分片内容,并记录了其相应的URL地址,每个分片时长为10s,分片的文件名为001.ts、002.ts……100.ts。
图3示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图,如图3所示,该方法包括如下步骤:
S302,向流媒体服务器发送流媒体数据请求,其中,流媒体数据请求用于请求流媒体服务器返回待传输流媒体数据,待传输流媒体数据包括:待传输的多个传输流TS分片。
其中,流媒体可指以流的方式在网络中传送音频、视频和多媒体文件的媒体形式,流媒体服务器可指运营商向客户提供视频服务的平台。传输流相较于其他视频格式的不同点在于不是按照帧结构进行存储,而是在传输过程中,传送流可被分成多个固定大小的分片文件进行传送,在接收端被重新合并后恢复成原来的节目流。其中,对每个传送流分片打上时间戳,接收端可根据时间戳信息对数据进行重构和同步。
S304,接收流媒体服务器根据流媒体数据请求返回待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片;
在本公开的一个实施例中,索引文件可用于第一终端从流媒体服务器上获取TS分片,可包括主索引文件和二级索引文件,其中,主索引文件用于第一终端获取二级索引文件,二级索引文件用于终端获取TS分片,第一终端可分别根据主索引文件的URL和二级索引文件的URL向流媒体服务器请求主索引文件和二级索引文件。
在本公开的一个实施例中,第一终端是具有邻近服务通信协议的终端,可以指用户终端,例如,智能手机,智能手表等等,本公开实施例对此不做具体限定。
S306,从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,以使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
在本公开的一个实施例中,分片标识为流媒体服务器生成,用于判断分片标识对应的TS分片是否在第二终端上存在。第二终端是具有邻近服务通信协议的终端,可以指邻近终端,例如,智能手机,智能手表等等,本公开实施例对此不做具体限定。
S308,接收第二终端返回的TS分片。
由上述可知,本公开实施例中第一终端向流媒体服务器发送接收数据请求,接收待传输流媒体数据的索引文件,对索引文件进行解析并得到待传输的TS分片的分片标识,将其发送至第二终端进行查询,在第二终端存在相应TS分片的情况下,接收第二终端返回的TS分片。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验。
在本公开的一个实施例中,在上述S302之前,第一终端和第二终端可启动邻近服务通信协议,可例如WiFi直连功能,该功能是安卓手机的特性之一,当多个邻近的安卓终端同时打开WiFi直连功能是,即可互相发现,进行连接。由于安卓4.0以上版本的终端已普遍支持WiFi直连协议,因此仅需在服务器和终端侧进行简单的软件开发即可实现,实施起来较为方便快捷,减少开发设备和人力的成本消耗。
在本公开的一个实施例中,在第二终端上不存在相应TS分片的情况下,向流媒体服务器发送相应TS分片的分片请求;接收流媒体服务器返回的TS分片。
在本公开的一个实施例中,在上述S308之前,建立第一映射表,其中,第一映射表包括TS分片的分片标识和TS分片在第一终端的存储路径,用于接收第二终端返回的TS分片后,保存接收到的TS分片的分片标识和接收到的TS分片在第一终端的存储路径。需要说明的是,当第一终端可作为邻近终端时,需要建立第一映射表,当第一终端不需要作为邻近终端时,也可不建立第一映射表,本公开实施例对此不做具体限定。
在本公开的一个实施例中,第一映射表可为初始化时建立的空白表格。第一终端的存储路径可为各个厂商默认的本地下载路径,例如,第一终端的存储路径可为Android/data/hls/download/001.F96F5BF317E1CE14F1082BE149FCE8A4.ts,本公开实施例对比不做具体限定。
在本公开的一个实施例中,若每个终端从流媒体服务器或者邻近终端下载了TS分片到本地时,相应的本地存储路径为Android/data/hls/downl oad/001.F96F5BF317E1CE14F1082BE149FCE8A4.ts,即会建立该分片的MD5值F96F5BF317E1CE14F1082BE149FCE8A4和本地存储路径的映射关系。
在本公开的一个实施例中,第一终端还可以根据从第二终端或者流媒体服务器接收到的TS分片,或移动、删除、重命名已有的TS分片时,实时更新第一终端上的第一映射表。第一映射表可如下表所示:
表1
在本公开的一个实施例中,索引文件可为M3U8格式的索引文件。相应的索引文件的文件名后缀为m3u8,索引文件也可以是其他格式的文件,则相应的生成其他文件名,本公开实施例对此不做具体限定。
图4示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图,如图4所示,该方法包括如下步骤:
S402,接收第一终端发送的分片标识,其中,分片标识为第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,索引文件为流媒体服务器为根据第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,索引文件用于第一终端从流媒体服务器上获取各个TS分片。
S404,根据第一终端发送的分片标识,查询第二终端上是否存在相应的TS分片。
S406,在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
由上述可知,本公开实施例中第二终端在接收到第一终端发送的分片标识后,根据分片标识查询第二终端上是否存在相应的TS分片,若存在,则向第一终端返回相应的TS分片。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验。
在本公开的一个实施例中,在上述S406之前,建立第二映射表,其中,第二映射表包括TS分片的分片标识和TS分片在第二终端的存储路径,用于判断第二终端上是否存在接收到的第一终端发送的分片标识。
在本公开的一个实施例中,第二终端的存储路径可为各个厂商默认的本地下载路径,例如,第二终端的存储路径可为Android/data/hls/downloa d/001.F96F5BF317E1CE14F1082BE149FCE8A4.ts,本公开实施例对比不做具体限定。
在本公开的一个实施例中,第二映射表可如下表所示:
表2
在本公开的一个实施例中,索引文件可为M3U8格式的索引文件。相应的索引文件的文件名后缀为m3u8,索引文件也可以是其他格式的文件,则相应的生成其他文件名,本公开实施例对此不做具体限定。
图5示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图,如图5所示,该方法包括如下步骤:
S502,为待传输流媒体数据的每个传输流TS分片生成相应的分片标识。
S504,根据生成的分片标识修改待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片。
S506,响应于第一终端的流媒体数据请求,向第一终端返回待传输流媒体数据的索引文件,以使第一终端从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,进而使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
由上述可知,本公开实施例中流媒体服务器为每个待传输TS分片生成相应的分片标识,并根据分片标识修改待传输流媒体数据的索引文件,响应第一终端的流媒体数据请求后,向第一终端返回索引文件。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验。
在本公开的一个实施例中,在第二终端上不存在相应TS分片的情况下,接收第一终端发送的相应TS分片的分片请求;向第一终端发送TS分片。
在本公开的一个实施例中,索引文件可包括主索引文件和二级索引文件。其中,主索引文件可为网页中的链接,例如,http://www.hls.com/a.m3u8;主索引文件中写明二级索引文件的URL。例如a.m3u8中文本内容可为:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=600000
http://www.hls.com/low/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2500000
http://www.hls.com/high/index.m3u8
在本公开的一个实施例中,流媒体服务器根据MD5算法为TS分片生成唯一分片标识后,将该标识写入TS分片文件名,同时修改M3U8索引文件。例如001.ts修改为001.F96F5BF317E1CE14F1082BE149FCE8A4.ts;二级索引文件http://www.hls.com/low/001.ts修改为http://www.hls.co m/low/001.F96F5BF317E1CE14F1082BE149FCE8A4.ts。此时,M3U8格式的索引文件可看做一个TXT文本,服务器可以随时编辑该文件。
在本公开的一个实施例中,索引文件可为M3U8格式的索引文件。相应的索引文件的文件名后缀为m3u8,索引文件也可以是其他格式的文件,则相应的生成其他文件名后缀,本公开实施例对此不做具体限定。
图6示出本公开实施例中一种优化后HLS文件结构及索引示意图,服务器为每个TS分片生成唯一标识,将该表示写入TS分片的名称,此时修改TS文件名和M3U8索引文件。由于MD5算法是目前较为通用的字符串加密算法,该算法较为科学、稳定、快速,可为每个文件生成32位16进制字符串用于标识,且重复率低,因此本公开实施例中可以MD5算法为例生成标识,需要说明的是,可采用任意摘要算法生成TS分片的分片标识,本公开实施例对此不做具体限定。
如图6所示,以001.ts文件为例,云端服务器可生成其对应标识为F96F5BF317E1CE14F1082BE149FCE8A4,则相应地将文件名001.ts修改为001.F96F5BF317E1CE14F1082BE149FCE8A4.ts,将二级索引文件中的文本内容http://www.hls.com/low/001.ts修改为http://www.hls.com/low/001.F96F5BF317E1CE14F1082BE149FCE8A4.ts。
图7示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输方法流程图,如图7所示,该方法包括如下步骤:
S701,根据MD5算法,云端服务器为每个TS分片文件生成唯一标识MD5值,将该标识写入TS文件名,同时修改M3U8索引文件。
需要说明的是,生成文件标识可采用任意摘要算法,本公开实施例对此不做具体限定。
S702,用户终端与邻近终端启动WiFi直连功能。用户终端通过WiFi直连功能感知邻近终端、进行连接,同时在每个终端上建立一张MD5值和本地存储路径的映射表。
需要说明的是,本地存储路径的选择为各个生产厂商默认设置的本地下载路径,本公开实施例对此不做具体限定。
S703,用户终端向云端服务器请求主索引文件,本公开实施例中主索引文件的URL可为http://www.hls.com/a.m3u8。
S704,云端服务器接收到用户终端的请求后,向用户终端发送主索引文件a.m3u8。
S705,用户终端向云端服务器请求二级索引文件,本公开实施例中二级索引文件的URL可为http://www.hls.com/low/index.m3u8。
S706,云端服务器接收到用户终端的请求后,向用户终端发送二级索引文件index.m3u8。
S707,用户终端对接收到的二级索引文件进行解析,本公开实施例中获得第一个TS分片文件的MD5值可为F96F5BF317E1CE14F1082BE149FCE8A4。
S708,将TS分片文件的MD5值通过WiFi直连发给邻近终端。
S709,邻近终端根据接收到的MD5值检索终端上的映射表。
S710,判断接收到的MD5值是否可以匹配邻近终端的映射表。
其中,S710包括,S7101,若接收到的MD5值可以匹配邻近终端的映射表,则证明检索成功,将TS分片文件通过WiFi直连发送给用户终端;若接收到的MD5值不可以匹配邻近终端的映射表,则证明检索失败,向用户终端发送检索失败通知。
S7102,在用户终端接收到检索失败通知后,向云端服务器请求TS分片文件,本公开实施例中TS分片文件对应的URL可为http://www.hls.com/low/001.F96F5BF317E1CE14F1082BE149FCE8A4.ts。
S711,云端服务器接收到用户终端发来的请求后,向用户终端发送TS分片文件001.F96F5BF317E1CE14F1082BE149FCE8A4.ts。
S712,用户终端接收到TS分片文件后,将TS分片文件的MD5值以及本地存储路径写入用户终端的映射表中,实现实时更新。
S713,重复上述S707~S712,根据获取到TS分片文件信息,实时更新用户终端的映射表,直至用户终端更新完002.ts、003.ts……100.ts时,该方案结束。需要说明的是,本公开实施例中以http://www.hls.com/low/index.m3u8中有100个TS分片文件为例,在实际应用中对TS分片文件的个数不做具体限定。
在本公开的一个实施例中,若二级索引文件下有多个目录,本公开实施例对其他目录下TS分片传输过程同样适用。由于一个HLS节目会包含多个码率及其对应的多个TS分片,用户终端将根据带宽变化动态地选择合适的TS分片下载播放。
图8示出本公开实施例中一种基于邻近服务通信协议的流媒体数据传输系统示意图,如图8所示,该系统80包括:第一终端801、第二终端802和流媒体服务器803。
其中,流媒体服务器803用于为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;根据生成的分片标识修改待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片。
第一终端801用于向流媒体服务器发送流媒体数据请求,其中,流媒体数据请求用于请求流媒体服务器返回待传输流媒体数据,待传输流媒体数据包括:待传输的多个传输流TS分片。
其中,流媒体服务器803还用于响应于第一终端的流媒体数据请求,向第一终端返回待传输流媒体数据的索引文件,以使第一终端从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,进而使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
其中,第一终端801还用于接收流媒体服务器根据流媒体数据请求返回待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片。
其中,第一终端801还用于从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,以使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
第二终端802用于接收第一终端发送的分片标识,其中,分片标识为第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,索引文件为流媒体服务器为根据第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,索引文件用于第一终端从流媒体服务器上获取各个TS分片;根据第一终端发送的分片标识,查询第二终端上是否存在相应的TS分片;在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片;其中,第一终端还用于接收第二终端返回的TS分片。
由上述可知,本公开实施例中的基于邻近服务通信协议的流媒体数据传输系统可用于先为每个TS分片生成相应的分片标识,根据分片标识修改待传输流媒体数据的索引文件,第一终端接收流媒体服务器返回的索引文件,从中解析出待传输的TS分片的分片标识,发送到第二终端,查询第二终端上是否存在TS分片,若存在,则第二终端向第一终端返回相应的TS分片。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验。
基于同一发明构思,本公开实施例中还提供了一种基于邻近服务通信协议的流媒体数据传输装置,如下面的实施例所述。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图9示出本公开实施例中一种终端结构示意图,如图9所示,该终端包括:流媒体数据请求模块901、索引文件接收模块902、分片标识发送模块903以及分片文件接收模块904。
流媒体数据请求模块901,用于向流媒体服务器发送流媒体数据请求,其中,流媒体数据请求用于请求流媒体服务器返回待传输流媒体数据,待传输流媒体数据包括:待传输的多个传输流TS分片。
索引文件接收模块902,用于接收流媒体服务器根据流媒体数据请求返回待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片。
分片标识发送模块903,用于从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,以使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
分片文件接收模块904,用于接收第二终端返回的TS分片。
由上述可知,本公开实施例中的终端可以是图8中的第一终端801,用于向流媒体服务器发送接收数据请求,接收待传输流媒体数据的索引文件,对索引文件进行解析并得到待传输的TS分片的分片标识,将其发送至第二终端进行查询,在第二终端存在相应TS分片的情况下,接收第二终端返回的TS分片。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验。
图10示出本公开实施例中另一种终端结构示意图,如图10所示,该终端包括:分片标识接收模块1001、分片文件查询模块1002以及分片文件发送模块1003。
分片标识接收模块1001,用于接收第一终端发送的分片标识,其中,分片标识为第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,索引文件为流媒体服务器为根据第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,索引文件用于第一终端从流媒体服务器上获取各个TS分片。
分片文件查询模块1002,用于根据第一终端发送的分片标识,查询第二终端上是否存在相应的TS分片。
分片文件发送模块1003,用于在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
由上述可知,本公开实施例中的终端可以是图8中的第二终端802,用于在接收到第一终端发送的分片标识后,根据分片标识查询第二终端上是否存在相应的TS分片,若存在,则向第一终端返回相应的TS分片。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验,
图11示出本公开实施例中一种流媒体服务器结构示意图,如图11所示,该流媒体服务器包括:分片标识生成模块1101、索引文件修改模块1102以及索引文件发送模块1103。
分片标识生成模块1101,用于为待传输流媒体数据的每个传输流TS分片生成相应的分片标识。
索引文件修改模块1102,用于根据生成的分片标识修改待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片。
索引文件发送模块1103,用于响应于第一终端的流媒体数据请求,向第一终端返回待传输流媒体数据的索引文件,以使第一终端从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,进而使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
由上述可知,本公开实施例中的流媒体服务器可以是图8中的流媒体服务器803,用于为每个待传输TS分片生成相应的分片标识,并根据分片标识修改待传输流媒体数据的索引文件,响应第一终端的流媒体数据请求后,向第一终端返回索引文件。本公开实施例基于邻近服务通信协议实现的流媒体数据传输方法,有效利用了邻近终端的存储和网络资源,节省服务器开销,缩短了网络链路传输长度,提升了用户的使用体验。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图12来描述根据本公开的这种实施方式的电子设备1200。图12显示的电子设备1200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
图12示出本公开实施例中一种电子设备的框图。下面参照图12来描述根据本公开的这种实施方式的电子设备1200。图12显示的电子设备1200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备1200以通用计算设备的形式表现。电子设备1200的组件可以包括但不限于:上述至少一个处理单元1210、上述至少一个存储单元1220、连接不同系统组件(包括存储单元1220和处理单元1210)的总线1230。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1210执行,使得所述处理单元1210执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
在一些实施例中,当上述电子设备1200为第一终端的情况下,所述处理单元1210可以执行上述方法实施例的如下步骤:向流媒体服务器发送流媒体数据请求,其中,流媒体数据请求用于请求流媒体服务器返回待传输流媒体数据,待传输流媒体数据包括:待传输的多个传输流TS分片;接收流媒体服务器根据流媒体数据请求返回待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片;从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,以使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片;接收第二终端返回的TS分片。
在一些实施例中,当上述电子设备1200为第二终端的情况下,所述处理单元1210可以执行上述方法实施例的如下步骤:接收第一终端发送的分片标识,其中,分片标识为第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,索引文件为流媒体服务器为根据第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,索引文件用于第一终端从流媒体服务器上获取各个TS分片;根据第一终端发送的分片标识,查询第二终端上是否存在相应的TS分片;在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
在一些实施例中,当上述电子设备1200为流媒体服务器的情况下,所述处理单元1210可以执行上述方法实施例的如下步骤:为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;根据生成的分片标识修改待传输流媒体数据的索引文件,其中,索引文件用于第一终端从流媒体服务器上获取各个TS分片;响应于第一终端的流媒体数据请求,向第一终端返回待传输流媒体数据的索引文件,以使第一终端从索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,进而使第二终端根据接收到的分片标识查询第二终端上是否存在相应的TS分片,并在第二终端上存在相应TS分片的情况下,向第一终端返回相应的TS分片。
存储单元1220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)12201和/或高速缓存存储单元12202,还可以进一步包括只读存储单元(ROM)12203。
存储单元1220还可以包括具有一组(至少一个)程序模块12205的程序/实用工具12204,这样的程序模块12205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1200也可以与一个或多个外部设备1240(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1200交互的设备通信,和/或与使得该电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1250进行。并且,电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机程序产品,该计算机程序产品包括:计算机程序,所述计算机程序被处理器执行时实现上述基于邻近服务通信协议的流媒体数据传输方法方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。图13示出本公开实施例中一种计算机可读存储介质示意图,如图13所示,该计算机可读存储介质上存储有能够实现本公开上述方法的程序产品1300。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (14)
1.一种基于邻近服务通信协议的流媒体数据传输方法,其特征在于,应用于第一终端,所述第一终端基于邻近服务通信协议与第二终端通信,该方法包括:
向流媒体服务器发送流媒体数据请求,其中,所述流媒体数据请求用于请求所述流媒体服务器返回待传输流媒体数据,所述待传输流媒体数据包括:待传输的多个传输流TS分片;
接收所述流媒体服务器根据流媒体数据请求返回所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;
从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,以使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;
接收所述第二终端返回的TS分片。
2.根据权利要求1所述的基于邻近服务通信协议的流媒体数据传输方法,其特征在于,所述方法还包括:
在第二终端上不存在相应TS分片的情况下,向流媒体服务器发送相应TS分片的分片请求;
接收所述流媒体服务器返回的TS分片。
3.根据权利要求1所述的基于邻近服务通信协议的流媒体数据传输方法,其特征在于,在接收所述第二终端返回的TS分片之前,所述方法还包括:
建立第一映射表,其中,所述第一映射表包括TS分片的分片标识和所述TS分片在第一终端的存储路径,用于接收所述第二终端返回的TS分片后,保存接收到的TS分片的分片标识和所述接收到的TS分片在第一终端的存储路径。
4.一种基于邻近服务通信协议的流媒体数据传输方法,其特征在于,应用于第二终端,所述第二终端基于邻近服务通信协议与第一终端通信,该方法包括:
接收所述第一终端发送的分片标识,其中,所述分片标识为所述第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,所述索引文件为所述流媒体服务器为根据所述第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;
根据所述第一终端发送的分片标识,查询所述第二终端上是否存在相应的TS分片;
在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
5.根据权利要求4所述的基于邻近服务通信协议的流媒体数据传输方法,其特征在于,在接收所述第一终端发送的分片标识之前,所述方法还包括:
建立第二映射表,其中,所述第二映射表包括TS分片的分片标识和所述TS分片在第二终端的存储路径,用于判断第二终端上是否存在接收到的所述第一终端发送的分片标识。
6.一种基于邻近服务通信协议的流媒体数据传输方法,其特征在于,应用于流媒体服务器,所述流媒体服务器分别与第一终端和第二终端通信,所述第一终端基于邻近服务通信协议与第二终端通信,该方法包括:
为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;
根据生成的分片标识修改所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;
响应于第一终端的流媒体数据请求,向所述第一终端返回所述待传输流媒体数据的索引文件,以使所述第一终端从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,进而使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
7.根据权利要求6所述的基于邻近服务通信协议的流媒体数据传输方法,其特征在于,所述方法还包括:
在第二终端上不存在相应TS分片的情况下,接收第一终端发送的相应TS分片的分片请求;
向所述第一终端发送TS分片。
8.根据权利要求1~7中任意一项所述的基于邻近服务通信协议的流媒体数据传输方法,其特征在于,所述索引文件为M3U8格式的索引文件。
9.一种基于邻近服务通信协议的流媒体数据传输系统,其特征在于,包括:第一终端、第二终端以及流媒体服务器;
其中,所述流媒体服务器用于为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;根据生成的分片标识修改所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;
所述第一终端用于向流媒体服务器发送流媒体数据请求,其中,所述流媒体数据请求用于请求所述流媒体服务器返回待传输流媒体数据,所述待传输流媒体数据包括:待传输的多个传输流TS分片;
其中,所述流媒体服务器还用于响应于第一终端的流媒体数据请求,向所述第一终端返回所述待传输流媒体数据的索引文件,以使所述第一终端从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,进而使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;
其中,所述第一终端还用于接收所述流媒体服务器根据流媒体数据请求返回所述待传输流媒体数据的索引文件,其中,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;
其中,所述第一终端还用于从所述索引文件中解析出待传输的TS分片的分片标识,发送至所述第二终端,以使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;
所述第二终端用于接收所述第一终端发送的分片标识,其中,所述分片标识为所述第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,所述索引文件为所述流媒体服务器为根据所述第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;根据所述第一终端发送的分片标识,查询所述第二终端上是否存在相应的TS分片;在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;
其中,所述第一终端还用于接收所述第二终端返回的TS分片。
10.一种终端,其特征在于,包括:
流媒体数据请求模块,用于向流媒体服务器发送流媒体数据请求,其中,所述流媒体数据请求用于请求所述流媒体服务器返回待传输流媒体数据,所述待传输流媒体数据包括:待传输的多个传输流TS分片;
索引文件接收模块,用于接收所述流媒体服务器根据流媒体数据请求返回所述待传输流媒体数据的索引文件,其中,所述索引文件用于第一终端从所述流媒体服务器上获取各个TS分片;
分片标识发送模块,用于从所述索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,以使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片;
分片文件接收模块,用于接收所述第二终端返回的TS分片。
11.一种终端,其特征在于,包括:
分片标识接收模块,用于接收第一终端发送的分片标识,其中,所述分片标识为所述第一终端从流媒体服务器返回的索引文件中解析出的待传输的TS分片的分片标识,所述索引文件为所述流媒体服务器为根据所述第一终端发送的流媒数据请求返回的待传输流媒体数据的索引文件,所述索引文件用于所述第一终端从所述流媒体服务器上获取各个TS分片;
分片文件查询模块,用于根据所述第一终端发送的分片标识,查询第二终端上是否存在相应的TS分片;
分片文件发送模块,用于在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
12.一种流媒体服务器,其特征在于,包括:
分片标识生成模块,用于为待传输流媒体数据的每个传输流TS分片生成相应的分片标识;
索引文件修改模块,用于根据生成的分片标识修改所述待传输流媒体数据的索引文件,其中,所述索引文件用于第一终端从所述流媒体服务器上获取各个TS分片;
索引文件发送模块,用于响应于第一终端的流媒体数据请求,向所述第一终端返回所述待传输流媒体数据的索引文件,以使所述第一终端从所述索引文件中解析出待传输的TS分片的分片标识,发送至第二终端,进而使所述第二终端根据接收到的分片标识查询所述第二终端上是否存在相应的TS分片,并在所述第二终端上存在相应TS分片的情况下,向所述第一终端返回相应的TS分片。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~8中任意一项所述的基于邻近服务通信协议的流媒体数据传输方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~8中任意一项所述的基于邻近服务通信协议的流媒体数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310615230.8A CN116684703A (zh) | 2023-05-26 | 2023-05-26 | 基于邻近服务通信协议的流媒体数据传输方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310615230.8A CN116684703A (zh) | 2023-05-26 | 2023-05-26 | 基于邻近服务通信协议的流媒体数据传输方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116684703A true CN116684703A (zh) | 2023-09-01 |
Family
ID=87782953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310615230.8A Pending CN116684703A (zh) | 2023-05-26 | 2023-05-26 | 基于邻近服务通信协议的流媒体数据传输方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116684703A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117082124A (zh) * | 2023-10-10 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 数据传送方法、装置、设备、介质及产品 |
-
2023
- 2023-05-26 CN CN202310615230.8A patent/CN116684703A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117082124A (zh) * | 2023-10-10 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 数据传送方法、装置、设备、介质及产品 |
CN117082124B (zh) * | 2023-10-10 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 数据传送方法、装置、设备、介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10142434B2 (en) | Method and apparatus for reducing network resource transmission size using delta compression | |
JP4363847B2 (ja) | インタラクティブ・テレビ用のデジタル・テレビ・アプリケーション・プロトコル | |
US10880390B2 (en) | Method and apparatus for reducing network resource transmission size using delta compression | |
US8938502B2 (en) | Subscriber device and subscription management that supports real-time communication | |
US7908317B2 (en) | System and method for URL compression | |
US20150237113A1 (en) | Method and system for file transmission | |
CN107566477B (zh) | 一种在分布式文件系统集群中获取文件的方法和装置 | |
CN110851468A (zh) | 对客户端的测试请求做出模拟响应的方法和装置 | |
CN112416396B (zh) | 一种应用程序更新方法和系统 | |
CN116684703A (zh) | 基于邻近服务通信协议的流媒体数据传输方法及相关设备 | |
JP2004310371A (ja) | ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 | |
JP2017500679A (ja) | メディアリソースフィードバック方法、装置、プログラム及び記録媒体 | |
US20150113101A1 (en) | Method and apparatus for providing streaming content | |
US10044788B2 (en) | Native client multimedia redirection | |
CN111565168B (zh) | 一种对象存储方法、系统、存储介质及电子设备 | |
CN110677443A (zh) | 数据发送和接收方法、发送端、接收端、系统及存储介质 | |
CN109005250B (zh) | 用于访问服务端的方法和装置 | |
CN116800765A (zh) | P2p点对点数据节流加速实现方法、装置和存储介质 | |
CN114840739B (zh) | 信息检索方法、装置、电子设备及存储介质 | |
WO2012163177A1 (zh) | 多媒体文件的处理方法及通信系统中的网络侧设备 | |
KR20210056180A (ko) | 엣지 컴퓨팅 서비스를 이용하여 웹 서비스를 제공하기 위한 방법 및 장치 | |
CN113612811B (zh) | 一种在多通道中客户端挂载的方法、系统、设备及介质 | |
CN116437377A (zh) | 设备控制通信协议通信方法、系统、电子设备及介质 | |
US20130024543A1 (en) | Methods for generating multiple responses to a single request message and devices thereof | |
CN113746851A (zh) | 一种支持实时解析grpc请求的代理系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |