CN113691886B - 流媒体文件的下载方法和装置 - Google Patents
流媒体文件的下载方法和装置 Download PDFInfo
- Publication number
- CN113691886B CN113691886B CN202110980865.9A CN202110980865A CN113691886B CN 113691886 B CN113691886 B CN 113691886B CN 202110980865 A CN202110980865 A CN 202110980865A CN 113691886 B CN113691886 B CN 113691886B
- Authority
- CN
- China
- Prior art keywords
- downloading
- granularity
- data
- segment
- code rate
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000012634 fragment Substances 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims description 12
- 238000000547 structure data Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical group C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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
-
- 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/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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/84—Generation or processing of descriptive data, e.g. content descriptors
-
- 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/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种流媒体文件的下载方法和装置,其中方法包括:当需要下载流媒体文件的片段时,确定第一下载粒度,以所述第一下载粒度为单次请求下载的数据量,下载所述片段的片段描述数据,并基于所述片段描述数据,构建数据帧索引表;确定第二下载粒度,以所述第二下载粒度为单次请求下载的数据量,下载所述数据帧索引表指示的内容数据帧。本申请通过将流媒体文件的每个片段按照一定的下载粒度进行拆分下载,可以提高流媒体文件的下载和播放性能。
Description
技术领域
本发明涉及流媒体下载技术,特别是涉及一种流媒体文件的下载方法和装置。
背景技术
目前基于HTTP的动态自适应流(DASH)广泛应用于互联网视频流。音视频流以fragment Mp4格式进行传输,服务器端以片段为单位进行分发,客户端播放器以片段为单位申请下载音视频内容片段,从而进行视频内容边下载边播放。
发明人在实现本发明的过程中发现:采用上述以片段为单位申请下载音视频内容片段的方法,来下载高清晰度视频时,会存在流媒体文件的下载和播放性能较差的问题,包括:下载速度慢、内存开销大、音视频下载同步性差、播放流畅性差以及直播流延迟大等问题,通过研究分析发现其具体原因如下:
现有的视频下载方案是客户端播放器根据媒体索引文件(MPD)的描述,查找到每个片段的片段文件所在的地址,根据该地址向服务器端申请整段地下载该片段。而随着用户对视频清晰度的要求越来越高,4K及8K分辨率的DASH视频随之而来,高分辨率视频对应的片段也越来越大,从而使得单个片段的下载时长变长,进而需要同步播放的两个音、视频片段的下载总时长也会变长。而在流媒体播放时,需要将时间相匹配的视频片段和音频片段全部下载完成后,才能进行同步播放,这样,当一个音频或视频片段下载完成后,还需要等待时间匹配的另一视频或音频片段的下载完成。因此,当单个片段的下载时长变长时,上述等待相应同步片段的时长也会变长,如此,一方面会需要较多的缓存空间来存放已下载但无法同步播放的数据,另一方面也会由于上述等待使得接收到的视频片段或音频片段不能得到及时播放,从而使得音视频下载的同步性变差,进而影响播放流畅性,并会使得直播流延迟加大。
发明内容
有鉴于此,本发明的主要目的在于提供一种流媒体文件的下载方法和装置,有利于提高音视频文件下载的同步性和播放性能。
为了达到上述目的,本发明提出的技术方案为:
一种流媒体文件的下载方法,包括:
当需要下载流媒体文件的片段时,确定第一下载粒度,以所述第一下载粒度为单次请求下载的数据量,下载所述片段的片段描述数据,并基于所述片段描述数据,构建数据帧索引表;
确定第二下载粒度,以所述第二下载粒度为单次请求下载的数据量,下载所述数据帧索引表指示的内容数据帧。
较佳地,所述确定第一下载粒度包括:
将所述第一下载粒度,设置为预设的片段描述数据下载粒度值;
或者,根据当前带宽和预设的第一粒度时长,计算得到所述第一下载粒度;
所述确定第二下载粒度包括:
将所述第二下载粒度,设置为预设的数据帧下载粒度值;
或者,根据当前带宽和预设的第二粒度时长,计算得到所述第二下载粒度。
较佳地,所述方法进一步包括:
在所述下载的过程中,基于下载速度的监测结果,实时确定与当前下载速度相匹配的目标码率;如果所述目标码率与当前下载片段的码率不同,则将请求下载的码率切换为所述目标码率,按照所述目标码率对应的片段请求待下载数据。
较佳地,所述方法进一步包括:
当发生码率切换时,将切换后的码率对应的下载数据,加载至当前处于解码停止状态的第一解码器,并在当前处于解码开启状态的第二解码器完成对当前所播放解码单元的解码时,将所述第二解码器切换至解码停止状态,以停止所述第二解码器进行解码,并将所述第一解码器切换至解码开启状态,以启动所述第一解码器进行解码。
本发明实施例还提供了一种流媒体文件的下载装置,包括:
第一下载单元,用于在需要下载流媒体文件的片段时,确定第一下载粒度,以所述第一下载粒度为单次请求下载的数据量,下载所述片段的片段描述数据,并基于所述片段描述数据,构建数据帧索引表;
第二下载单元,用于确定第二下载粒度,以所述第二下载粒度为单次请求下载的数据量,下载所述数据帧索引表指示的内容数据帧。
较佳地,所述第一下载单元,具体用于确定所述第一下载粒度,包括:将所述第一下载粒度,设置为预设的片段描述数据下载粒度值;或者,根据当前带宽和预设的第一粒度时长,计算得到所述第一下载粒度;
所述第二下载单元,具体用于确定第二下载粒度,包括:将所述第二下载粒度,设置为预设的数据帧下载粒度值;或者,根据当前带宽和预设的第二粒度时长,计算得到所述第二下载粒度。
较佳地,所述装置进一步包括:
码率切换单元,用于在所述下载的过程中,基于下载速度的监测结果,实时确定与当前下载速度相匹配的目标码率;如果所述目标码率与当前下载片段的码率不同,则确定当前需要进行码率切换,触发所述第一下载单元和所述第二下载单元,按照所述目标码率对应的片段请求待下载数据。
较佳地,所述装置进一步包括:
解码控制单元,用于当发生码率切换时,将切换后的码率对应的下载数据,加载至当前处于解码停止状态的第一解码器,并在当前处于解码开启状态的第二解码器完成对当前所播放解码单元的解码时,将所述第二解码器切换至解码停止状态,以停止所述第二解码器进行解码,并将所述第一解码器切换至解码开启状态,以启动所述第一解码器进行解码。
本发明实施例还公开了一种下载流媒体文件的电子设备,包括处理器和存储器;
所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如上所述的流媒体文件的下载方法。
本发明实施例还公开了一种计算机可读存储介质,其中存储有计算机可读指令,该计算机可读指令用于执行如上所述的流媒体文件的下载方法。
综上所述,本发明实施例提出的流媒体文件的下载方案中,对需要下载的流媒体文件的每个片段,客户端不再一次请求下载整个片段,而是按照一定的下载粒度,对每个片段进行切分,以更小粒度的请求下载单位,请求下载流媒体文件,如此,通过细化片段的下载粒度,可以大幅度减少单次请求下载数据的传输时长,从而可以减少进行同步的音、视频数据的下载时长,使得下载的音视频数据可以得到及时播放,因此,可以有效提高音视频下载的同步性、保障视频播放的流畅性,尤其是可以有效避免直播流延迟。另外,上述方案考虑到片段文件所包含的不同功能数据的结构类型不同,不同结构类型的可拆分的基本数据单元不同,具体而言,对于片段描述类数据,基本数据单位是比特,对于实际的媒体数据而言,其基本数据单元则是数据帧,为此,通过区分片段文件中不同结构类型的数据,为不同结构类型的数据分别设置下载粒度(即第一下载粒度和第二下载粒度),有效保障了对片段进行切分下载的合理性。
附图说明
图1为本发明实施例的方法流程示意图;
图2为本发明实施例的片段切分请求下载与现有方案的整个片段请求下载的效果对比示意图;
图3为本发明实施例的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
图1为本发明实施例的流媒体文件的下载方法流程示意图,如图1所示,该实施例主要包括:
步骤101、当需要下载流媒体文件的片段时,确定第一下载粒度,以所述第一下载粒度为单次请求下载的数据量,下载所述片段的片段描述数据,并基于所述片段描述数据,构建数据帧索引表。
本步骤中,对于流媒体文件的每个片段,客户端需要按照第一下载粒度,控制每次请求下载的片段描述数据的数据量,依次切分下载该片段中的片段描述数据。这样,通过以相比于片段更小的请求下载粒度,实现片段描述数据的下载,可以减少片段描述数据的下载处理时延。
这里需要说明的是,每个视频片段文件由片段描述数据和内容数据帧两部分组成。其中,片段描述数据即片段的描写叙述信息,内容数据帧即片段中需要解码播放的媒体数据。对于DASH片段而言,所述片段描述数据具体为片段中的moof结构数据,所述内容数据帧即为片段中的mdat结构数据。所述内容数据帧由若干数据帧构成。
在实际应用中,可以按照预设的粒度值或者结合当前的带宽,确定第一下载粒度,具体如下:
方法一:将所述第一下载粒度,设置为预设的片段描述数据下载粒度值。
这里,当片段描述数据下载粒度值过大时,会导致单次请求下载数据量过多,无法有效地发挥对片段切分下载的优势,反之,当片段描述数据下载粒度值过小时,会导致单次请求下载数据量过少,进而导致下载请求开销过多,具体地,可由用户或本领域技术人员基于上述规律,根据经验或实际下载需求设置合适的片段描述数据下载粒度值。
考虑到片段描述数据的结构特点,较佳地,为了便于对片段描述数据进行切分下载,片段描述数据下载粒度值的单位为Byte。例如,可以设置为500Byte,但不限于此。
方法二:根据当前带宽和预设的第一粒度时长,计算得到所述第一下载粒度。
具体地,可以计算当前带宽和第一粒度时长的乘积,得到第一下载粒度。
这里,通过基于当前的下载带宽和预设的粒度时长,来计算第一下载粒度,如此,每次请求下载的数据的下载时长将与第一粒度时长相同或接近,从而可以利用第一粒度时长,使得单次请求下载的数据下载时长具有可控性,进而可以保障片段下载和处理的流畅性,有效发挥对片段描述数据进行细粒度切分下载的优势。
当第一粒度时长过大时,会导致单次请求下载数据量过多,无法有效地发挥对片段切分下载的优势,反之,当第一粒度时长过小时,会导致单次请求下载数据量过少,进而导致下载请求开销过多。具体的,所述第一粒度时长可由用户或本领域技术人员根据实际应用场景的网络情况和播放需要,结合上述规律,设置合适取值。
在步骤101中,为了便于在后续步骤中进一步实现对片段的内容数据帧的下载,需要基于所述片段描述数据,构建数据帧索引表。所述数据帧索引表中将包括相应片段中的每个媒体数据帧的相关信息。这样,在后续下载片段的内容数据帧时,可以基于该数据帧索引表,按照第二下载粒度,依次下载表中的数据帧。具体地,可以在检测到片段描述数据中的trun结构数据下载完成时,即可立即基于该trun结构数据,构建数据帧索引表。所述trun结构(Track Fragment Run Box)用来描述当前片段的一组连续数据帧信息,它给出了片段中所有数据帧的具体信息包括:在文件中的位置偏移、数据帧大小、数据帧时长、关键帧标志等信息。具体构建数据帧索引表的方法为本领域技术人员所掌握,在此不再赘述。
步骤102、确定第二下载粒度,以所述第二下载粒度为单次请求下载的数据量,下载所述数据帧索引表指示的内容数据帧。
本步骤中,对于流媒体文件的每个片段,客户端需要按照第一下载粒度,控制每次请求下载的片段内容数据量,依次切分下载该片段的实际内容数据帧。这样,通过以相比于片段更小的请求下载粒度,实现片段的内容数据帧的下载,可以减少实际内容数据帧的下载和等待处理时延,减少了缓存数据量,因此,可以提高流媒体文件播放的流畅性、减少存储开销。
在实际应用中,可以按照预设的粒度值或者结合当前的带宽,确定第二下载粒度,具体如下:
方法一、将所述第二下载粒度,设置为预设的数据帧下载粒度值。
这里,当数据帧下载粒度值过大时,会导致单次请求下载数据量过多,无法有效地发挥对片段切分下载的优势,反之,当数据帧下载粒度值过小时,会导致单次请求下载数据量过少,进而导致下载请求开销过多,具体地,可由用户或本领域技术人员基于上述规律,根据经验或实际下载需求设置合适的数据帧下载粒度值。
考虑到内容数据帧是由若干帧构成的结构特点,较佳地,为了简化运算开销,便于对内容数据帧进行切分下载,数据帧下载粒度值的单位为帧,即为若干个帧。当然,也可以设置数据帧下载粒度值的单位为Byte。在基于该数据帧下载粒度值请求下载时,再基于数据帧索引表中提供的当前待下载数据帧的数据量,将该数据帧下载粒度值转换为最接近的数据帧数量,基于该数量请求下载内容数据。如此,可以确保每次所下载数据帧的完整性,便于后续的解码处理。
另外,在一种实施方式中,为了方便后续对下载数据的解码,还可以基于单个解码单元的数据帧数量,设置数据帧下载粒度值,使得每次请求下载的数据帧数量为单个解码单元中的数据帧数量的整数倍。
方法二、根据当前带宽和预设的第二粒度时长,计算得到所述第二下载粒度。
具体地,可以计算当前带宽和第二粒度时长的乘积,得到第二下载粒度。
方法二中将基于当前带宽动态的设置第二下载粒度,以使得每次请求下载的数据下载时长将与第二粒度时长相同或接近,从而可以利用第二粒度时长,使得单次请求下载的数据下载时长具有可控性,进而可以保障片段下载和处理的流畅性,有效发挥对片段描述数据进行细粒度切分下载的优势。
当第二粒度时长过大时,会导致单次请求下载数据量过多,无法有效地发挥对片段切分下载的优势,反之,当第二粒度时长过小时,会导致单次请求下载数据量过少,进而导致下载请求开销过多。具体的,所述第二粒度时长可由用户或本领域技术人员根据实际应用场景的网络情况和播放需要,设置合适取值,如500ms,但不限于此。
步骤101和102中,在具体请求下载每个粒度的数据时,需要基于当前片段文件的地址和当前请求下载数据对应的数据区间,向服务器请求下载当前片段中该数据区间对应的数据。其中,片段文件的地址可以通过对流媒体文件中的索引文件(如MPD)进行解析,并根据解析结果构建得到,具体方法为本领域技术人员所掌握,以此不再赘述。
采用上述步骤101和102,对于客户端需要下载的流媒体文件的每个片段,客户端不再一次请求下载整个片段,而是按照一定的下载粒度,对每个片段进行切分,以更小粒度的请求下载单位,请求下载流媒体文件。图2给出了本发明实施例的片段切分请求下载与现有方案的整个片段请求下载的对比示意图,如图2所示,本发明实施例的下载粒度更小,如此,可以大幅度减少单次请求下载数据的传输时长,从而可以减少进行同步的音、视频数据的下载时长,使得下载的音视频数据可以得到及时解码播放,因此,可以有效提高音视频下载的同步性、保障视频播放的流畅性,尤其是可以有效避免直播启动延迟。
在一种实施方式中,考虑到实际应用中网络带宽是动态变化的,可以在下载过程中及时地根据实际测量的带宽,触发码率切换,以使得片段的码率与实际带宽相匹配,即在带宽大的情况下,可以下载清晰度高的片段文件,在带宽小的情况下,可以下载清晰度低的片段文件,这样,可以在确保下载速度的前提下获得更高播放质量的流媒体文件,以尽可能地提高流媒体播放效果。具体地,可以采用下述方法实现上述目的:
在步骤101和102的所述下载的过程中,基于下载速度的监测结果,实时确定与当前下载速度相匹配的目标码率;如果所述目标码率与当前下载片段的码率不同,则将请求下载的码率切换为所述目标码率,按照所述目标码率对应的片段请求待下载数据。
需要说明的是,为了满足用户的不同播放需求,对于同一片段,服务器中会保存对应于不同清晰度的不同码率数据。采用上述方法,如果在片段下载过程中需要进行码率切换,则可以根据及时切换到新码率数据的获取,而不需要等待当前整个片段下载完成后才切换到新码率数据的获取,因此,采用上述方法可以根据带宽的变化,快速切换到与当前带宽相匹配的码率数据的获取。
在一种实施方式中,考虑到实际下载过程中,可能会存在服务器尚未生成好所请求数据的情况,此时,服务器可以返回下载失败的消息给客户端,客户端接收到下载失败消息后,重新请求下载相应数据。
在一种实施方式中,考虑到当发生码率切换时,解码器需要针对新的码率重新设置预处理,会增加解码时延,进而产生播放卡顿,为此,可以在发生码率切换时,利用多个解码器协同处理的方式,减少码率切换时间,具体可以采用下述方法实现:
当发生码率切换时,将切换后的码率对应的下载数据,加载至当前处于解码停止状态的第一解码器,并在当前处于解码开启状态的第二解码器完成对当前所播放解码单元的解码时,将所述第二解码器切换至解码停止状态,以停止所述第二解码器进行解码,并将所述第一解码器切换至解码开启状态,以启动所述第一解码器进行解码。
在上述方法中,当将解码器切换至解码停止状态时,将断开该解码器与显示单元的连接,当将解码器切换至解码开启状态时,该解码器将接入显示单元与其连接。
采用上述方法,在发生码率切换时,将下载的新码率的解码单元数据预加载至其他未启动解码的解码器中,以提前针对新的码率重新设置预处理,当当前解码器处理完旧码率的解码单元数据时,即启用已完成数据预加载的解码器进行解码,这样,通过利用解码单元的预加载,减少新码率片段的等待时间,从而可以有效减少码率切换时间,避免了码率切换对播放流畅性的影响。
在实际的流媒体播放场景中,当服务器端在直播流中插入了新的流媒体数据(如广告流)时,采用上述方法,则可以利用多个解码器的协同处理实现该新的流媒体的无卡顿插入。具体过程如下:
当客户端接收到服务器端在直播流中插入的新的流媒体文件的媒体索引文件(MPD)时,对该MPD解析,获取相应的码率,按照该码率下载新的流媒体文件,如果该码率与当前解码数据的码率不同,则将所下载的新的流媒体文件,加载至当前处于解码停止状态的第一解码器,并在当前处于解码开启状态的第二解码器完成对当前所播放解码单元的解码时,将所述第二解码器切换至解码停止状态,以停止所述第二解码器进行解码,并将所述第一解码器切换至解码开启状态,以启动所述第一解码器进行解码。
与上述方法实施例相对应,本发明实施例还提供了一种流媒体文件的下载装置,如图3所示包括:
第一下载单元,用于在需要下载流媒体文件的片段时,确定第一下载粒度,以所述第一下载粒度为单次请求下载的数据量,下载所述片段的片段描述数据,并基于所述片段描述数据,构建数据帧索引表;
第二下载单元,用于确定第二下载粒度,以所述第二下载粒度为单次请求下载的数据量,下载所述数据帧索引表指示的内容数据帧。
在一种实施方式中,所述第一下载单元,具体用于确定所述第一下载粒度,包括:将所述第一下载粒度,设置为预设的片段描述数据下载粒度值;或者,根据当前带宽和预设的第一粒度时长,计算得到所述第一下载粒度;
所述第二下载单元,具体用于确定第二下载粒度,包括:将所述第二下载粒度,设置为预设的数据帧下载粒度值;或者,根据当前带宽和预设的第二粒度时长,计算得到所述第二下载粒度。
在一种实施方式中,所述装置进一步包括:
码率切换单元,用于在所述下载的过程中,基于下载速度的监测结果,实时确定与当前下载速度相匹配的目标码率;如果所述目标码率与当前下载片段的码率不同,则确定当前需要进行码率切换,触发所述第一下载单元和所述第二下载单元,按照所述目标码率对应的片段请求待下载数据。
在一种实施方式中,所述装置进一步包括:
解码控制单元,用于当发生码率切换时,将切换后的码率对应的下载数据,加载至当前处于解码停止状态的第一解码器,并在当前处于解码开启状态的第二解码器完成对当前所播放解码单元的解码时,将所述第二解码器切换至解码停止状态,以停止所述第二解码器进行解码,并将所述第一解码器切换至解码开启状态,以启动所述第一解码器进行解码。
根据上述流媒体文件的下载方法实施例,本申请实施例实现了一种下载流媒体文件的设备,包括处理器和存储器;所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如上所述的流媒体文件的下载方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施方式的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。此外,还可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述流媒体文件的下载方法实施方式中任一实施方式的功能。
其中,存储器具体可以实施为电可擦可编程只读存储器(EEPROM)、快闪存储器(Flash memory)、可编程程序只读存储器(PROM)等多种存储介质。处理器可以实施为包括一或多个中央处理器或一或多个现场可编程门阵列,其中现场可编程门阵列集成一或多个中央处理器核。具体地,中央处理器或中央处理器核可以实施为CPU或MCU。
本申请实施例实现了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上所述的流媒体文件的下载的步骤。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施方式中的硬件模块可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。为使图面简洁,各图中的只示意性地表示出了与本发明相关部分,而并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”并不表示将本发明相关部分的数量限制为“仅此一个”,并且“一个”不表示排除本发明相关部分的数量“多于一个”的情形。在本文中,“上”、“下”、“前”、“后”、“左”、“右”、“内”、“外”等仅用于表示相关部分之间的相对位置关系,而非限定这些相关部分的绝对位置。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种流媒体文件的下载方法,其特征在于,包括:
对于流媒体文件的每个片段,当需要下载该片段时,确定第一下载粒度,以所述第一下载粒度为单次请求下载的数据量,依次切分下载该片段中的片段描述数据,并在检测到所述片段描述数据中的trun结构数据下载完成时,基于所述片段描述数据中的所述trun结构数据构建数据帧索引表;所述数据帧索引表包含了所述片段中的每个内容数据帧的相关信息;所述流媒体文件的类型为基于HTTP的动态自适应流(DASH),所述流媒体文件的每个片段由所述片段描述数据和内容数据帧组成,所述片段描述数据为片段的描写叙述信息,所述内容数据帧为片段中需解码播放的媒体数据,所述trun结构数据用于描述当前片段的一组连续数据帧信息;
确定第二下载粒度,以所述第二下载粒度为单次请求下载的数据量,依次切分下载所述数据帧索引表指示的所述内容数据帧;
所述确定第一下载粒度包括:
将所述第一下载粒度,设置为预设的片段描述数据下载粒度值;
或者,根据当前带宽和预设的第一粒度时长,计算得到所述第一下载粒度;
所述确定第二下载粒度包括:
将所述第二下载粒度,设置为预设的数据帧下载粒度值;
或者,根据当前带宽和预设的第二粒度时长,计算得到所述第二下载粒度。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在所述下载的过程中,基于下载速度的监测结果,实时确定与当前下载速度相匹配的目标码率;如果所述目标码率与当前下载片段的码率不同,则将请求下载的码率切换为所述目标码率,按照所述目标码率对应的片段请求待下载数据。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当发生码率切换时,将切换后的码率对应的下载数据,加载至当前处于解码停止状态的第一解码器,并在当前处于解码开启状态的第二解码器完成对当前所播放解码单元的解码时,将所述第二解码器切换至解码停止状态,以停止所述第二解码器进行解码,并将所述第一解码器切换至解码开启状态,以启动所述第一解码器进行解码。
4.一种流媒体文件的下载装置,其特征在于,包括:
第一下载单元,用于对于流媒体文件的每个片段,在需要下载该片段时,确定第一下载粒度,以所述第一下载粒度为单次请求下载的数据量,依次切分下载该片段中的片段描述数据,并在检测到所述片段描述数据中的trun结构数据下载完成时,基于所述片段描述数据中的所述trun结构数据,构建数据帧索引表;所述数据帧索引表包含了所述片段中的每个内容数据帧的相关信息;所述流媒体文件的类型为基于HTTP的动态自适应流(DASH),所述流媒体文件的每个片段由所述片段描述数据和内容数据帧组成,所述片段描述数据为片段的描写叙述信息,所述内容数据帧为片段中需解码播放的媒体数据,所述trun结构数据用于描述当前片段的一组连续数据帧信息;
第二下载单元,用于确定第二下载粒度,以所述第二下载粒度为单次请求下载的数据量,第二下载粒度是比所述片段更小的请求下载粒度,依次切分下载所述数据帧索引表指示的所述内容数据帧;
所述第一下载单元,具体用于确定所述第一下载粒度,包括:将所述第一下载粒度,设置为预设的片段描述数据下载粒度值;或者,根据当前带宽和预设的第一粒度时长,计算得到所述第一下载粒度;
所述第二下载单元,具体用于确定第二下载粒度,包括:将所述第二下载粒度,设置为预设的数据帧下载粒度值;或者,根据当前带宽和预设的第二粒度时长,计算得到所述第二下载粒度。
5.根据权利要求4所述的下载装置,其特征在于,所述装置进一步包括:
码率切换单元,用于在所述下载的过程中,基于下载速度的监测结果,实时确定与当前下载速度相匹配的目标码率;如果所述目标码率与当前下载片段的码率不同,则确定当前需要进行码率切换,触发所述第一下载单元和所述第二下载单元,按照所述目标码率对应的片段请求待下载数据。
6.根据权利要求4所述的下载装置,其特征在于,所述装置进一步包括:
解码控制单元,用于当发生码率切换时,将切换后的码率对应的下载数据,加载至当前处于解码停止状态的第一解码器,并在当前处于解码开启状态的第二解码器完成对当前所播放解码单元的解码时,将所述第二解码器切换至解码停止状态,以停止所述第二解码器进行解码,并将所述第一解码器切换至解码开启状态,以启动所述第一解码器进行解码。
7.一种下载流媒体文件的电子设备,其特征在于,包括处理器和存储器;
所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如权利要求1至3中任一项所述的流媒体文件的下载方法。
8.一种计算机可读存储介质,其特征在于,其中存储有计算机可读指令,该计算机可读指令用于执行如权利要求1至3中任一项所述的流媒体文件的下载方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110980865.9A CN113691886B (zh) | 2021-08-25 | 2021-08-25 | 流媒体文件的下载方法和装置 |
PCT/KR2022/012065 WO2023027399A1 (en) | 2021-08-25 | 2022-08-12 | Method and device for downloading streaming media file |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110980865.9A CN113691886B (zh) | 2021-08-25 | 2021-08-25 | 流媒体文件的下载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113691886A CN113691886A (zh) | 2021-11-23 |
CN113691886B true CN113691886B (zh) | 2024-05-07 |
Family
ID=78582524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110980865.9A Active CN113691886B (zh) | 2021-08-25 | 2021-08-25 | 流媒体文件的下载方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113691886B (zh) |
WO (1) | WO2023027399A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691886B (zh) * | 2021-08-25 | 2024-05-07 | 三星电子(中国)研发中心 | 流媒体文件的下载方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1670256A2 (en) * | 2004-12-10 | 2006-06-14 | Microsoft Corporation | A system and process for controlling the coding bit rate of streaming media data |
CN102073494A (zh) * | 2010-12-30 | 2011-05-25 | 用友软件股份有限公司 | 缓存数据管理方法和装置 |
CN104768051A (zh) * | 2015-03-06 | 2015-07-08 | 深圳市九洲电器有限公司 | 多编码格式节目流的自适应切换方法及系统 |
CN106231440A (zh) * | 2016-07-22 | 2016-12-14 | 华为技术有限公司 | 一种流媒体文件分片下载方法、装置及终端 |
CN106792112A (zh) * | 2016-12-07 | 2017-05-31 | 北京小米移动软件有限公司 | 视频播放方法及装置 |
US10356159B1 (en) * | 2016-06-27 | 2019-07-16 | Amazon Technologies, Inc. | Enabling playback and request of partial media fragments |
CN111526089A (zh) * | 2020-04-14 | 2020-08-11 | 北京交通大学 | 一种基于变长粒度的数据融合传输与调度的装置 |
CN112104885A (zh) * | 2020-09-09 | 2020-12-18 | 海看网络科技(山东)股份有限公司 | 一种直播中加快m3u8起始播放速度的系统及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379851B2 (en) * | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
KR20170083641A (ko) * | 2012-07-10 | 2017-07-18 | 브이아이디 스케일, 인크. | 품질 주도형 스트리밍 |
US10270823B2 (en) * | 2015-02-10 | 2019-04-23 | Qualcomm Incorporated | Low latency video streaming |
KR101946471B1 (ko) * | 2015-07-21 | 2019-02-11 | 주식회사 이노피아테크 | 비디오와 오디오를 동기화 하는 장치 및 방법 |
CN112866730B (zh) * | 2020-12-31 | 2022-09-13 | 广州博冠信息科技有限公司 | 流媒体数据传输方法及装置、系统、电子设备、存储介质 |
CN113691886B (zh) * | 2021-08-25 | 2024-05-07 | 三星电子(中国)研发中心 | 流媒体文件的下载方法和装置 |
-
2021
- 2021-08-25 CN CN202110980865.9A patent/CN113691886B/zh active Active
-
2022
- 2022-08-12 WO PCT/KR2022/012065 patent/WO2023027399A1/en unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1670256A2 (en) * | 2004-12-10 | 2006-06-14 | Microsoft Corporation | A system and process for controlling the coding bit rate of streaming media data |
CN102073494A (zh) * | 2010-12-30 | 2011-05-25 | 用友软件股份有限公司 | 缓存数据管理方法和装置 |
CN104768051A (zh) * | 2015-03-06 | 2015-07-08 | 深圳市九洲电器有限公司 | 多编码格式节目流的自适应切换方法及系统 |
US10356159B1 (en) * | 2016-06-27 | 2019-07-16 | Amazon Technologies, Inc. | Enabling playback and request of partial media fragments |
CN106231440A (zh) * | 2016-07-22 | 2016-12-14 | 华为技术有限公司 | 一种流媒体文件分片下载方法、装置及终端 |
CN106792112A (zh) * | 2016-12-07 | 2017-05-31 | 北京小米移动软件有限公司 | 视频播放方法及装置 |
CN111526089A (zh) * | 2020-04-14 | 2020-08-11 | 北京交通大学 | 一种基于变长粒度的数据融合传输与调度的装置 |
CN112104885A (zh) * | 2020-09-09 | 2020-12-18 | 海看网络科技(山东)股份有限公司 | 一种直播中加快m3u8起始播放速度的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113691886A (zh) | 2021-11-23 |
WO2023027399A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9961398B2 (en) | Method and device for switching video streams | |
US11622134B2 (en) | System and method for low-latency content streaming | |
US11825034B2 (en) | Bullet screen delivery method for live broadcast playback and live video bullet screen playback method | |
US9076493B2 (en) | Video processing method apparatus | |
CN110933517B (zh) | 码率切换方法、客户端和计算机可读存储介质 | |
WO2020155964A1 (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
CN105187896B (zh) | 多分段的媒体文件播放方法和系统 | |
JP7182727B2 (ja) | セッションのメディア・データを受信する方法、装置及びコンピュータ・プログラム | |
WO2022095528A1 (zh) | 一种播放视频的方法、装置、设备、及可读存储介质 | |
CN111726641A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN107690093B (zh) | 一种视频播放方法及装置 | |
JP2023520651A (ja) | メディア・ストリーミング方法及び装置 | |
CN113691886B (zh) | 流媒体文件的下载方法和装置 | |
CN105187897B (zh) | 多分段的媒体文件跨段播放方法和系统 | |
WO2020155961A1 (zh) | 视频请求方法、系统、计算机设备及计算机可读存储介质 | |
CN106331763B (zh) | 无缝播放分片媒体文件的方法及实现该方法的装置 | |
CN113079386B (zh) | 一种视频在线播放方法、装置、电子设备及存储介质 | |
CN112243136B (zh) | 内容播放方法、视频存储方法和设备 | |
CN112118309A (zh) | 音频翻译方法和系统 | |
US10863179B1 (en) | Overlapped rate control for high-quality segmented video encoding | |
CN113364728B (zh) | 媒体内容接收方法、装置、存储介质和计算机设备 | |
US20230239328A1 (en) | Computer implemented method for processing streaming requests and responses | |
CN110636348B (zh) | 视频播放方法、装置及系统 | |
US20230239534A1 (en) | Systems and methods for just in time transcoding of video on demand | |
CN112887774A (zh) | 一种无缝播放内容的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |