CN109218809A - 一种流媒体的播放方法和装置 - Google Patents

一种流媒体的播放方法和装置 Download PDF

Info

Publication number
CN109218809A
CN109218809A CN201710527417.7A CN201710527417A CN109218809A CN 109218809 A CN109218809 A CN 109218809A CN 201710527417 A CN201710527417 A CN 201710527417A CN 109218809 A CN109218809 A CN 109218809A
Authority
CN
China
Prior art keywords
streaming
medium content
streaming medium
streaming media
media address
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.)
Granted
Application number
CN201710527417.7A
Other languages
English (en)
Other versions
CN109218809B (zh
Inventor
李从章
陈少杰
张文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Floating Point Intelligent Computing Digital Technology Co ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710527417.7A priority Critical patent/CN109218809B/zh
Publication of CN109218809A publication Critical patent/CN109218809A/zh
Application granted granted Critical
Publication of CN109218809B publication Critical patent/CN109218809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供了一种流媒体的播放方法和装置,涉及计算机技术领域,所述方法包括:通过获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间;判断当前的流媒体地址播放是否满足预定条件;当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;将所述目标流媒体内容替换为正在播放的流媒体内容。解决由于网络不稳定,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。达到了从多路流地址动态选择一路进行转播的以提高用户体验的同时,极大降低系统复杂度及系统出错可能性的效果。

Description

一种流媒体的播放方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种流媒体的播放方法和装置。
背景技术
最近几年网络直播行业风生水起,网络直播的内容一般来自主播,另外一部分从合作方转播,也有从电视台转播的。随着市场的需求,对直播平台内容精益求精的要求越来越高,所以直播平台对某些游戏赛事、娱乐、体育的转播会越来越多。
但本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
由于网络的不稳定性,如果直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验。
发明内容
本发明实施例提供了一种流媒体的播放方法和装置,解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。
鉴于上述问题,提出了本申请实施例以便提供一种流媒体的播放方法和装置。
第一方面,本发明提供了一种流媒体的播放方法,所述方法包括:获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;判断当前的流媒体地址播放是否满足预定条件;当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;将所述目标流媒体内容替换为正在播放的流媒体内容。
优选的,在所述将所述目标流媒体内容替换为正在播放的流媒体内容之后,所述方法还包括:获得所述目标流媒体内容所对应的流媒体地址;将所述目标流媒体内容所对应的流媒体地址作为正在播放的流媒体内容的流媒体地址。
优选的,所述从上述M个不同的本地空间中确定一个为目标流媒体内容,具体为:获得直播延时时间;根据直播延时时间,获得所述直播延时时间内,所述M个流媒体内容的缓存量;
优选的,所述方法还包括:比较所述M个流媒体内容的缓存量,获得所述缓存量最大的流媒体内容;当所述缓存量最大的流媒体内容满足预定条件时,确定所述缓存量最大的流媒体内容为目标流媒体内容。
优选的,所述方法还包括当所述缓存量最大的流媒体内容不满足预定条件时,确定本地备用流媒体内容为目标流媒体内容。
优选的,所述方法还包括:当所述流媒体内容播放结束后,清除所述流媒体内容的本地缓存。
优选的,所述将所述目标流媒体内容替换为正在播放的流媒体内容,具体包括:获得所述当前的流媒体内容的最终播放位置;从所述目标流媒体内容的同一播放位置开始,替换为正在播放的流媒体内容。
第二方面,本发明提供了一种流媒体的播放装置,所述装置包括:
第一获得单元,所述第一获得单元用于获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;
第一缓存单元,所述第一缓存单元用于从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;
第一判断单元,所述第一判断单元用于判断当前的流媒体地址播放是否满足预定条件;
第一确定单元,所述第一确定单元用于当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;
第一替换单元,所述第一替换单元用于将所述目标流媒体内容替换为正在播放的流媒体内容。
优选的,所述装置还包括:
第二获得单元,所述第二获得单元用于获得所述目标流媒体内容所对应的流媒体地址;
第二替换单元,所述第二替换单元用于将所述目标流媒体内容所对应的流媒体地址替换为正在播放的流媒体内容的流媒体地址。
优选的,所述装置还包括:
第三获得单元,所述第三获得单元用于获得直播延时时间;
第四获得单元,所述第四获得单元用于根据直播延时时间,获得所述直播延时时间内,所述M个流媒体内容的缓存量;
优选的,所述装置还包括:
第一比较单元,所述第一比较单元用于比较所述M个流媒体内容的缓存量,获得所述缓存量最大的流媒体内容;
第二确定单元,所述第二确定单元用于当所述缓存量最大的流媒体内容满足预定条件时,确定所述缓存量最大的流媒体内容为目标流媒体内容。
优选的,所述装置还包括
第三确定单元,所述第三确定单元用于当所述缓存量最大的流媒体内容不满足预定条件时,确定本地备用流媒体内容为目标流媒体内容。
优选的,所述装置还包括:
第一清除单元,所述第一清除单元用于当所述流媒体内容播放结束后,清除所述流媒体内容的本地缓存。
优选的,所述装置包括:
第五获得单元,所述第五获得单元用于获得所述当前的流媒体内容的最终播放位置;
第三替换单元,所述第三替换单元用于从所述目标流媒体内容的同一播放位置开始,替换为正在播放的流媒体内容。
第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;判断当前的流媒体地址播放是否满足预定条件;当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;将所述目标流媒体内容替换为正在播放的流媒体内容。
第四方面,本发明提供了一种流媒体的播放装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;判断当前的流媒体地址播放是否满足预定条件;当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;将所述目标流媒体内容替换为正在播放的流媒体内容。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
1.本申请实施例提供的一种流媒体的播放方法和装置,通过获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;判断当前的流媒体地址播放是否满足预定条件;当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;将所述目标流媒体内容替换为正在播放的流媒体内容。解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。达到了从多路流地址动态选择一路进行转播的以提高用户体验的同时,极大的降低了系统的复杂度以及系统出错的可能性的技术效果。
2.本申请实施例通过获得所述目标流媒体内容所对应的流媒体地址;将所述目标流媒体内容所对应的流媒体地址替换为正在播放的流媒体内容的流媒体地址。解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。进一步达到了内存中并不需要保存流媒体数据,而是把媒体数据保存到本地文件中临时缓存,所以消耗内存较少,极大的降低了系统的复杂度,并且由于流媒体数据不需要经过编解码,减少cpu和内存等系统资源的消耗的同时,也大大降低了系统出错的可能性的技术效果。
3.本申请实施例通过获得直播延时时间;根据直播延时时间,获得所述直播延时时间内,所述M个流媒体内容的缓存量;比较所述M个流媒体内容的缓存量,获得所述缓存量最大的流媒体内容;当所述缓存量最大的流媒体内容满足预定条件时,确定所述缓存量最大的流媒体内容为目标流媒体内容;当所述缓存量最大的流媒体内容不满足预定条件时,确定本地备用流媒体内容为目标流媒体内容。进一步解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。进一步达到了提高用户体验的同时,保证视频播放的流畅度,大大降低了系统出错的可能性的技术效果。
4.本申请实施例通过获得所述当前的流媒体内容的最终播放位置;从所述目标流媒体内容的同一播放位置开始,替换为正在播放的流媒体内容,进一步达到了消耗内存少,极大的降低了系统的复杂度的技术效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例中一种流媒体的播放方法的流程示意图;
图2为本发明实施例中一种流媒体的播放装置的结构示意图;
图3为本发明实施例中另一种流媒体的播放装置的结构示意图。
具体实施方式
本发明实施例提供了一种流媒体的播放方法和装置,用于解决现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。为了解决上述技术问题,本发明提供的技术方案总体思路如下:
在本发明实施例的技术方案中,获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;判断当前的流媒体地址播放是否满足预定条件;当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;将所述目标流媒体内容替换为正在播放的流媒体内容。解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。达到了从多路流地址动态选择一路进行转播的以提高用户体验的同时,极大的降低了系统的复杂度以及系统出错的可能性的技术效果。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了更清楚的对本申请进行阐述,下面对本申请所涉及的专业名词进行解释:
1.FLV
FLV(Flash Video)流媒体格式是随着Flash MX的推出而发展而来的一种新兴的视频格式。FLV是被众多新一代视频分享网站所采用,是目前增长最快、最为广泛的视频传播格式。FLV可以同时进行媒体的读写,而不相互影响。
2.AVFormatContext结构
该结构表示一个输入或者输出文件的上下文,AVFormatContext是FFMpeg格式转换过程中实现输入和输出功能、保存相关数据的主要结构。
3.avformat_open_input函数
该函数用来打开一个输入文件或者音视频流,返回AVFormatContext结构的上下文,本文中是用来打开直播网站的实时音视频流。
4.av_read_frame函数
该函数用来从输入文件即AVFormatContext结构的上下文中获取音视频流数据,获取的音视频数据,一般是编码过的,因为h264高压缩比少带宽以及广泛性,目前直播网站一般都是使用的h264的视频编码。从数据流读出的数据是保存在AVPacket结构里的。
5.avformat_close_input函数
该函数用来关闭一个输入文件或者音视频流。
6.avformat_alloc_output_context2函数
该函数用来创建一个输出文件,得到该文件的AVFormatContext结构的上下文。
7.timeGetTime
函数以毫秒计的系统时间。该时间为从系统开启算起所经过的时间。
实施例一
图1为本发明实施例中一种流媒体的播放方法的流程示意图。如图1所示,所述方法包括:
步骤110,获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;
具体而言,当直播平台对所述流媒体进行转播的情况下,可能会发生卡顿等情况,所述卡顿可能发生在播放开始后的某个时间,也可能发生在未开始播放时,所述流媒体可以是某些游戏赛事、娱乐、体育的转播等,具体转播内容本申请实施例不做限制。获得N个流媒体地址,所述N个流媒体地址的流媒体内容均为同一流媒体内容,并且与当前直播平台所转播的流媒体内容相同。获得所述流媒体地址的方式可以是通过用户个性化选择日常常用的流媒体地址进行设置,也可以通过系统自动选择进行设置。
步骤120,从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N,M,N均为正整数;
具体而言,从所述N个流媒体地址的流媒体内容中挑选M个流媒体内容,使用avformat_open_input函数根据提供的所述流媒体地址打开所述流媒体地址,利用输入文件的流信息使用avformat_alloc_output_context2函数创建本地FLV文件,也就是说将所述M个流媒体内容缓存到M个本地空间。每个流媒体地址在内存中对应一个该流地址相关描述结构对象,用于记录从该流媒体地址下载的相关FLV文件的详细信息(例如文件路径,录制开始和结束时间),设置N个流地址,即系统添加N个流地址相关描述结构对象。举例来讲,如果后台提供了10个流媒体地址可供选择,可以从上述10个流媒体地址中挑选1-10个地址中的任何地址,可以是1个,2个,也可以是9个,10个。
步骤130,判断当前的流媒体地址播放是否满足预定条件;
具体而言,所述预定条件即为系统预先设定的标准,可以是当播放发生卡顿时,或者是其他不能正常播放的情况等。判断所述当前正在播放的流媒体地址是否满足所述预定条件,即所述流媒体地址是否能够正常播放。
步骤140,当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;
步骤150,将所述目标流媒体内容替换为正在播放的流媒体内容。
具体而言,在步骤140和步骤150中,如果当当前流媒体地址不能正常播放所述流媒体内容时,也就是说在播放时由于网络等原因导致流媒体内容会发生卡顿时,从上述M个不同本地空间中挑选一个为目标流媒体内容,然后将所述目标流媒体内容替换为正在播放的流媒体内容。
进一步来讲,获得所述目标流媒体内容所对应的流媒体地址;将所述目标流媒体内容所对应的流媒体地址替换为正在播放的流媒体内容的流媒体地址。具体的,获得所述当前的流媒体内容的最终播放位置;从所述目标流媒体内容的同一播放位置开始,替换为正在播放的流媒体内容。
具体而言,把所述流媒体内容保存为本地FLV文件,获得所述流媒体内容所对应的所述流媒体地址,将所述流媒体地址替换为正在播放的流媒体地址,也就是说,在所述流媒体地址的替换过程中,传递的是所述流媒体内容的文件路径,而不是流媒体内容本身,所以在转播过程中不需要保存所述流媒体内容数据,也就不需要消耗多少内存,极大的降低了系统的复杂度,并且由于所述流媒体内容数据不需要经过编解码,所以也不需要消耗多少cpu和内存,也大大降低了系统出错的可能。在所述流媒体地址替换当前播放地址过程中,首先获得当前流媒体内容的最终播放位置,即所述当前流媒体内容发生卡顿时的内容,可以是视频帧也可以是音频帧,然后从所述目标流媒体内容的相同位置,即相同的视频帧或者音频帧开始进行替换,从而可以达到使播放更加完整流畅,不会造成播放内容缺失的情况发生。
进一步的,当所述流媒体内容播放结束后,清除所述流媒体内容的本地缓存。
具体而言,当所述流媒体内容播放结束后,将所述本地缓存的流媒体内容全部清除,调用avformat_close_input关闭FLV本地文件,销毁相关FLV文件的AVFormatContext结构资源。
本申请实施例在所述目标流媒体内容替换当前流媒体内容的过程中有两种具体实施方式,具体如下:
具体实施方式一
获得直播延时时间;根据直播延时时间,获得所述直播延时时间内,所述M个流媒体内容的缓存量;
具体而言,获得所述直播延时时间,即观众端收到播放内容与系统发出播放内容的时间差,即所述直播延时时间,所述直播延时时间的长短可以设置为10秒,也可以是根据实际情况增加或减小,具体时间长短本申请实施例不做限制。然后获得所述直播延时时间内所述M个流媒体内容的缓存两,举例来讲,如果直播延时时间为10秒,那么观众端收到的播放内容开始卡顿时的时间比从系统发出的播放内容开始卡顿的时间要晚10秒,在这10秒内,计算出所述M个流媒体内容的缓存量。所述M个流媒体内容从系统端开始卡顿时开始缓存,直到10秒后观众端收到所述流媒体内容卡顿时,停止缓存。
进一步的,比较所述M个流媒体内容的缓存量,获得所述缓存量最大的流媒体内容;当所述缓存量最大的流媒体内容满足预定条件时,确定所述缓存量最大的流媒体内容为目标流媒体内容。
具体而言,所述预定条件即播放不卡顿,也就是说所述目标流媒体文件的缓存量必须大于所述直播延时时间,这样在播放过程中才可以避免卡顿。通过timeGetTime函数获取当前系统时间nBraodcastInterruptSysMS,然后轮询所有流地址相关描述结构对象,即比较所述M个流媒体地址录制的所有文件信息,通过将所述流媒体内容文件的开始录制时间和录制结束时间(如果该文件还在录制,则只需要比较开始录制时间即可)与nBraodcastInterruptSysMS-nDelayMS比较,得到所有可以在nBraodcastInterruptSysMS-nDelayMS时刻播放的流文件,并选择其中一个所述流媒体内容文件还在录制中或者从该时刻开始能够播放最久的所述流媒体内容文件,然后将所述流媒体内容文件跳到合适的位置进行播放,通过avformat_open_input函数打开所述目标流媒体内容FLV文件的AVFormatContext结构上下文,调用av_read_frame函数从所述目标流媒体内容上下文中获取音/视频流数据。使用本地录制的FLV文件中获取的音视频流数据进行直播,从而达到播放不卡顿的技术效果。
具体实施方式二
当所述缓存量最大的流媒体内容不满足预定条件时,确定本地备用流媒体内容为目标流媒体内容。
具体而言,如果在M个所述流媒体内容中,在所述直播延时时间内的缓存量不能达到预定条件时,即所述缓存量的播放时间小于所述直播延时时间时,此时如果使用上述流媒体内容,仍然会使播放发生卡顿,所以在这种情况下,本申请实施例还提供了所述本地备用流媒体内容,所述本地备用流媒体内容可以是广告或者其他,以保证能够稳定播放,同时系统继续定时轮询所述M个流地址相关描述结构对象,当有符合条件的流媒体内容时,需要把所述流媒体内容的当前文件替换为当前流媒体内容,通过avformat_open_input函数打开所述目标流媒体内容FLV文件的AVFormatContext结构上下文,调用av_read_frame函数从所述目标流媒体内容上下文中获取音/视频流数据。使用本地录制的FLV文件中获取的音视频流数据进行直播,从而达到播放不卡顿的技术效果。
实施例2
基于与前述实施例中一种流媒体的播放方法同样的发明构思,本发明还提供一种流媒体的播放装置,如图2所示,包括:
第一获得单元11,所述第一获得单元11用于获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;
第一缓存单元12,所述第一缓存单元12用于从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;
第一判断单元13,所述第一判断单元13用于判断当前的流媒体地址播放是否满足预定条件;
第一确定单元14,所述第一确定单元14用于当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;
第一替换单元15,所述第一替换单元15用于将所述目标流媒体内容替换为正在播放的流媒体内容。
优选的,所述装置还包括:
第二获得单元,所述第二获得单元用于获得所述目标流媒体内容所对应的流媒体地址;
第二替换单元,所述第二替换单元用于将所述目标流媒体内容所对应的流媒体地址替换为正在播放的流媒体内容的流媒体地址。
优选的,所述装置还包括:
第三获得单元,所述第三获得单元用于获得直播延时时间;
第四获得单元,所述第四获得单元用于根据直播延时时间,获得所述直播延时时间内,所述M个流媒体内容的缓存量;
优选的,所述装置还包括:
第一比较单元,所述第一比较单元用于比较所述M个流媒体内容的缓存量,获得所述缓存量最大的流媒体内容;
第二确定单元,所述第二确定单元用于当所述缓存量最大的流媒体内容满足预定条件时,确定所述缓存量最大的流媒体内容为目标流媒体内容。
优选的,所述装置还包括
第三确定单元,所述第三确定单元用于当所述缓存量最大的流媒体内容不满足预定条件时,确定本地备用流媒体内容为目标流媒体内容。
优选的,所述装置还包括:
第一清除单元,所述第一清除单元用于当所述流媒体内容播放结束后,清除所述流媒体内容的本地缓存。
优选的,所述装置包括:
第五获得单元,所述第五获得单元用于获得所述当前的流媒体内容的最终播放位置;
第三替换单元,所述第三替换单元用于从所述目标流媒体内容的同一播放位置开始,替换为正在播放的流媒体内容。
前述图1实施例1中的一种流媒体的播放方法的各种变化方式和具体实例同样适用于本实施例的一种流媒体的播放装置,通过前述对一种流媒体的播放方法的详细描述,本领域技术人员可以清楚的知道本实施例中一种流媒体的播放装置的实施方法,所以为了说明书的简洁,在此不再详述。
实施例3
基于与前述实施例中一种流媒体的播放方法同样的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述一种流媒体的播放方法的任一方法的步骤。
其中,在图3中,总线架构(用总线300来代表),总线300可以包括任意数量的互联的总线和桥,总线300将包括由处理器302代表的一个或多个处理器和存储器304代表的存储器的各种电路链接在一起。总线300还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口306在总线300和接收器301和发送器303之间提供接口。接收器301和发送器303可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。
处理器302负责管理总线300和通常的处理,而存储器304可以被用于存储处理器302在执行操作时所使用的数据。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
1.本申请实施例提供的一种流媒体的播放方法和装置,通过获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;判断当前的流媒体地址播放是否满足预定条件;当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;将所述目标流媒体内容替换为正在播放的流媒体内容。解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。达到了从多路流地址动态选择一路进行转播的以提高用户体验的同时,极大的降低了系统的复杂度以及系统出错的可能性的技术效果。
2.本申请实施例通过获得所述目标流媒体内容所对应的流媒体地址;将所述目标流媒体内容所对应的流媒体地址替换为正在播放的流媒体内容的流媒体地址。解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。进一步达到了内存中并不需要保存流媒体数据,而是把媒体数据保存到本地文件中临时缓存,所以消耗内存较少,极大的降低了系统的复杂度,并且由于流媒体数据不需要经过编解码,减少cpu和内存等系统资源的消耗的同时,也大大降低了系统出错的可能性的技术效果。
3.本申请实施例通过获得直播延时时间;根据直播延时时间,获得所述直播延时时间内,所述M个流媒体内容的缓存量;比较所述M个流媒体内容的缓存量,获得所述缓存量最大的流媒体内容;当所述缓存量最大的流媒体内容满足预定条件时,确定所述缓存量最大的流媒体内容为目标流媒体内容;当所述缓存量最大的流媒体内容不满足预定条件时,确定本地备用流媒体内容为目标流媒体内容。进一步解决了现有技术中由于网络不稳定,直接从该直播内容的某一路流地址转播,可能导致平台的直播不流畅甚至频繁断流,影响用户体验的技术问题。进一步达到了提高用户体验的同时,保证视频播放的流畅度,大大降低了系统出错的可能性的技术效果。
4.本申请实施例通过获得所述当前的流媒体内容的最终播放位置;从所述目标流媒体内容的同一播放位置开始,替换为正在播放的流媒体内容,进一步达到了消耗内存少,极大的降低了系统的复杂度的技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种流媒体的播放方法,其特征在于,所述方法包括:
获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;
从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N,M,N均为正整数;
判断当前的流媒体地址播放是否满足预定条件;
当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;
将所述目标流媒体内容替换为正在播放的流媒体内容。
2.如权利要求1所述的方法,其特征在于,在所述将所述目标流媒体内容替换为正在播放的流媒体内容之后,所述方法还包括:
获得所述目标流媒体内容所对应的流媒体地址;
将所述目标流媒体内容所对应的流媒体地址替换为正在播放的流媒体内容的流媒体地址。
3.如权利要求1所述的方法,其特征在于,所述从上述M个不同的本地空间中确定一个为目标流媒体内容,具体为:
获得直播延时时间;
根据直播延时时间,获得所述直播延时时间内,所述M个流媒体内容的缓存量。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
比较所述M个流媒体内容的缓存量,获得所述缓存量最大的流媒体内容;
当所述缓存量最大的流媒体内容满足预定条件时,
确定所述缓存量最大的流媒体内容为目标流媒体内容。
5.如权利要求4所述的方法,其特征在于,所述方法还包括
当所述缓存量最大的流媒体内容不满足预定条件时,
确定本地备用流媒体内容为目标流媒体内容。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述流媒体内容播放结束后,清除所述流媒体内容的本地缓存。
7.如权利要求2所述的方法,其特征在于,所述将所述目标流媒体内容替换为正在播放的流媒体内容,具体包括:
获得所述当前的流媒体内容的最终播放位置;
从所述目标流媒体内容的同一播放位置开始,替换为正在播放的流媒体内容。
8.一种流媒体的播放装置,其特征在于,所述装置包括:
第一获得单元,所述第一获得单元用于获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;
第一缓存单元,所述第一缓存单元用于从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;
第一判断单元,所述第一判断单元用于判断当前的流媒体地址播放是否满足预定条件;
第一确定单元,所述第一确定单元用于当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;
第一替换单元,所述第一替换单元用于将所述目标流媒体内容替换为正在播放的流媒体内容。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;
从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;
判断当前的流媒体地址播放是否满足预定条件;
当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;
将所述目标流媒体内容替换为正在播放的流媒体内容。
10.一种流媒体的播放装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
获得N个流媒体地址,其中所述N个流媒体地址均获得同一流媒体内容;
从所述N个流媒体地址获得M个流媒体内容,并将所述M个流媒体内容缓存到M个不同的本地空间,其中,所述M小于等于N;
判断当前的流媒体地址播放是否满足预定条件;
当当前的流媒体地址播放不能满足所述预定条件时,从上述M个不同的本地空间中确定一个为目标流媒体内容;
将所述目标流媒体内容替换为正在播放的流媒体内容。
CN201710527417.7A 2017-06-30 2017-06-30 一种流媒体的播放方法和装置 Active CN109218809B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710527417.7A CN109218809B (zh) 2017-06-30 2017-06-30 一种流媒体的播放方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710527417.7A CN109218809B (zh) 2017-06-30 2017-06-30 一种流媒体的播放方法和装置

Publications (2)

Publication Number Publication Date
CN109218809A true CN109218809A (zh) 2019-01-15
CN109218809B CN109218809B (zh) 2021-07-30

Family

ID=64992037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710527417.7A Active CN109218809B (zh) 2017-06-30 2017-06-30 一种流媒体的播放方法和装置

Country Status (1)

Country Link
CN (1) CN109218809B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339364A (zh) * 2021-12-21 2022-04-12 北京达佳互联信息技术有限公司 多媒体数据处理方法、装置、电子设备及存储介质
WO2022166591A1 (zh) * 2021-02-05 2022-08-11 北京金山云网络技术有限公司 直播资源的播放方法、装置、存储介质以及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980040545A (ko) * 1996-11-29 1998-08-17 배순훈 전송 스트림의 스무딩 장치
CN101557464A (zh) * 2009-04-01 2009-10-14 深圳市融创天下科技发展有限公司 一种在视频节目播放中动态嵌入其他媒体片段的方法
US20100199183A1 (en) * 2008-10-08 2010-08-05 Nokia Corporation System and method for storing multi-source multimedia presentations
CN103747297A (zh) * 2014-01-09 2014-04-23 能力天空科技(北京)有限公司 一种视频动态调度方法、装置及视频播放系统
CN105100830A (zh) * 2015-07-23 2015-11-25 中国科学院声学研究所 一种基于视频聚合服务的快速切换视频源的装置和方法
CN105472443A (zh) * 2016-01-13 2016-04-06 杭州当贝网络科技有限公司 一种直播源控制方法及系统
CN106162360A (zh) * 2016-07-28 2016-11-23 武汉合创源科技有限公司 一种视频播放方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980040545A (ko) * 1996-11-29 1998-08-17 배순훈 전송 스트림의 스무딩 장치
US20100199183A1 (en) * 2008-10-08 2010-08-05 Nokia Corporation System and method for storing multi-source multimedia presentations
CN101557464A (zh) * 2009-04-01 2009-10-14 深圳市融创天下科技发展有限公司 一种在视频节目播放中动态嵌入其他媒体片段的方法
CN103747297A (zh) * 2014-01-09 2014-04-23 能力天空科技(北京)有限公司 一种视频动态调度方法、装置及视频播放系统
CN105100830A (zh) * 2015-07-23 2015-11-25 中国科学院声学研究所 一种基于视频聚合服务的快速切换视频源的装置和方法
CN105472443A (zh) * 2016-01-13 2016-04-06 杭州当贝网络科技有限公司 一种直播源控制方法及系统
CN106162360A (zh) * 2016-07-28 2016-11-23 武汉合创源科技有限公司 一种视频播放方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022166591A1 (zh) * 2021-02-05 2022-08-11 北京金山云网络技术有限公司 直播资源的播放方法、装置、存储介质以及电子设备
CN114339364A (zh) * 2021-12-21 2022-04-12 北京达佳互联信息技术有限公司 多媒体数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN109218809B (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
US10855742B2 (en) Buffering in HTTP streaming client
CN105814900B (zh) 用于在自适应流播环境中管理相邻频道的系统和方法
US10986414B1 (en) Resource management for video playback and chat
CN104519372B (zh) 一种流媒体播放的切换方法和系统
CN104967884B (zh) 一种码流切换方法和装置
CN107547940A (zh) 视频播放处理方法、设备及计算机可读存储介质
CN110636346A (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
WO2021159770A1 (zh) 视频播放方法、装置、设备和存储介质
CN105556922B (zh) 网络中的dash表示自适应
KR20150042191A (ko) 적응적 비트레이트 스트리밍에서 대역폭 할당을 위한 방법들 및 디바이스들
CN104394426B (zh) 流媒体倍速播放方法和装置
CN104956683B (zh) 用于流式传输视频的自适应降噪引擎
CN102204272A (zh) 流媒体中播放时间点跳转后的处理方法及装置
US20170214927A1 (en) Video processing workload management
CN109257631A (zh) 视频轮播播放方法、装置、计算机设备及存储介质
CN102790925A (zh) 一种在线流媒体播放的方法及点播终端
CN107920258B (zh) 一种数据处理方法及装置
CN105684390A (zh) 用于为自适应流传输客户端预留带宽的方法和设备
CN106716962A (zh) 向客户端自适应流传输媒体内容的服务器,方法和计算机程序产品
CN107920108A (zh) 一种媒体资源的推送方法、客户端及服务器
CN107690090A (zh) 视频播放方法以及使用所述视频播放方法的电子装置
FR2932938A1 (fr) Procede et dispositif de transmission de donnees
CN109218809A (zh) 一种流媒体的播放方法和装置
CN108200470A (zh) 一种视频码率调整方法及设备
CN110225399A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240129

Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Yami Technology (Guangzhou) Co.,Ltd.

Country or region after: China

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240305

Address after: Room 201-1, North 2nd Floor, Main Building, Shuntian Industrial Park, No. 8, Mount Taishan Road, Jianye District, Nanjing City, Jiangsu Province, 210000

Patentee after: Nanjing Floating Point Intelligent Computing Digital Technology Co.,Ltd.

Country or region after: China

Address before: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: Yami Technology (Guangzhou) Co.,Ltd.

Country or region before: China