CN112565877A - 投屏方法、系统、电子设备及存储介质 - Google Patents
投屏方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112565877A CN112565877A CN202011455208.4A CN202011455208A CN112565877A CN 112565877 A CN112565877 A CN 112565877A CN 202011455208 A CN202011455208 A CN 202011455208A CN 112565877 A CN112565877 A CN 112565877A
- Authority
- CN
- China
- Prior art keywords
- screen
- bullet screen
- resource
- file
- bullet
- 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
Links
Images
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/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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
-
- 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- 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/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种投屏方法、系统、电子设备及存储介质,方法包括:获取投屏接收端发送的弹幕请求,其中,所述弹幕请求中携带弹幕地址;根据所述弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;将所述目标弹幕分段文件返回给所述投屏接收端,通过所述投屏接收端显示所述目标弹幕分段文件中的弹幕。本申请用以解决现有投屏过程中无法支持弹幕投屏的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种投屏方法、系统、电子设备及存储介质。
背景技术
弹幕文化已经被越来越多的人接受,弹幕功能已经成为播放器的基本功能之一。
应用客户端(APP)投屏,是小屏播放转大屏播放的一种重要手段,用户对投屏支持弹幕的需求也越来越强烈。但是,弹幕通常是播放器的定制功能,普通支持数字生活网络联盟(Digital Living Network Alliance,DLNA)功能的家用电视或盒子,生产厂家不会对弹幕功能进行定制,也就无法支持弹幕投屏功能。
发明内容
本申请提供了一种投屏方法、系统、电子设备及存储介质,用以解决现有投屏过程中无法支持弹幕投屏的问题。
第一方面,本申请实施例提供了一种投屏方法,应用于投屏发送端,包括:
获取投屏接收端发送的弹幕请求,其中,所述弹幕请求中携带弹幕地址;
根据所述弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;
将所述目标弹幕分段文件返回给所述投屏接收端,通过所述投屏接收端显示所述目标弹幕分段文件中的弹幕。
可选地,所述获取投屏接收端发送的弹幕请求之前,所述方法还包括:
获取在投屏过程中产生的新的弹幕信息,其中,所述弹幕信息中包括生成时间戳和弹幕;
获取本地保存的媒体资源各弹幕分段文件中,与所述生成时间戳对应的所述目标弹幕分段文件;
将所述弹幕写入所述目标弹幕分段文件中。
可选地,所述弹幕地址为所述目标弹幕分段文件在所述投屏发送端的绝对访问地址。
可选地,所述获取投屏接收端发送的弹幕请求之前,所述方法还包括:
向所述投屏接收端发送推片请求,其中,所述推片请求中携带所述媒体资源的资源标识以及所述投屏发送端的设备标识,所述资源标识以及所述设备标识用于所述投屏接收端从媒体资源服务器中获取第一索引列表文件;
所述第一索引列表文件中包括所述媒体资源各资源分段的资源地址,以及所述各资源分段对应的各弹幕分段文件的所述弹幕地址。
可选地,所述获取在投屏过程中产生的新的弹幕信息之后,所述方法还包括:
将所述新的弹幕信息传输给所述弹幕后台服务器,由所述弹幕后台服务器对所述新的弹幕信息进行审核,并在审核通过后写入到对应的所述弹幕分段文件。
可选地,所述向所述投屏接收端发送推片请求之前,所述方法还包括:
从弹幕后台服务器下载所述媒体资源的各弹幕分段文件,并生成每个所述弹幕分段文件各自的绝对访问地址;
将每个所述弹幕分段文件各自的所述绝对访问地址,所述媒体资源的资源标识,以及所述投屏发送端的设备标识,发送给所述弹幕后台服务器或所述媒体资源服务器;
其中,所述弹幕后台服务器或所述媒体资源服务器,获取所述设备标识以及所述媒体资源对应的所述第一索引列表文件,将所述绝对访问地址,作为所述第一索引列表文件中对应的、所述弹幕分段文件的弹幕地址。
可选地,所述获取本地保存的媒体资源各弹幕分段文件中,与所述生成时间戳对应的所述目标弹幕分段文件,包括:
获取所述投屏接收端预计加载弹幕分段文件的第一时间点;
若所述生成时间戳对应的时间点早于所述第一时间点,将所述第一时间点所属弹幕分段文件之后的第一个弹幕分段文件,作为所述目标弹幕分段文件;
若所述生成时间戳对应的时间点晚于所述第一时间点,将所述第一时间点所属弹幕分段文件之后的第二个弹幕分段文件,作为所述目标弹幕分段文件。
可选地,所述将所述第一时间点所属弹幕分段文件之后的第一个弹幕分段文件,作为所述目标弹幕分段文件之后,所述方法还包括:
确定所述新的弹幕信息的显示时间为:所述目标弹幕分段文件的起始时刻累加弹幕时间差后所得的和值,所述弹幕时间差为所述新的弹幕信息的生成时间戳,与当前投屏的弹幕分段文件中上次加入的弹幕信息的显示时刻之间的差值。
可选地,所述方法还包括:
在投屏过程中,每间隔设定时长从弹幕后台服务器重新下载所述各弹幕分段文件;
采用重新下载的所述各弹幕分段文件,替换本地保存的所述各弹幕分段文件。
第二方面,本申请实施例提供了一种投屏方法,应用于投屏接收端,包括:
从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址;
向媒体资源服务器发送携带所述资源地址的资源请求,并获取所述媒体资源服务器根据所述资源地址获取资源分段后,返回的资源响应,所述资源响应中携带所述资源分段;
向投屏发送端发送携带所述弹幕地址的弹幕请求,并获取所述投屏发送端根据所述弹幕请求返回的弹幕响应,所述弹幕响应中携带所述投屏发送端根据所述弹幕地址,从本地保存的各弹幕分段文件中获取的目标弹幕分段文件;
播放所述资源分段,并显示所述目标弹幕分段文件包含的弹幕。
可选地,所述从第一索引列表文件中,获取待投屏资源分段的资源地址以及弹幕地址之前,所述方法还包括:
获取来自于所述投屏发送端的推片指令,其中,所述推片指令中携带所述媒体资源的资源标识和所述投屏发送端的设备标识;
从所述媒体资源服务器中,获取所述资源标识和所述设备标识对应的所述第一索引列表文件。
第三方面,本申请实施例提供了一种投屏方法,应用于弹幕后台服务器,包括:
获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,所述投屏发送端的设备标识,以及所述媒体资源的资源标识;其中,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
生成包括所述各弹幕分段文件的弹幕地址的第二索引列表文件,将所述第二索引列表文件、所述资源标识以及所述设备标识,发送给媒体资源服务器,由所述媒体资源服务器生成与所述设备标识和所述资源标识对应的第一索引列表文件。
第四方面,本申请实施例提供了一种投屏方法,应用于媒体资源服务器,包括:
获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,所述投屏发送端的设备标识,以及所述媒体资源的资源标识;其中,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
获取所述资源标识对应的第一索引列表文件,将所述第一索引列表文件中各弹幕分段文件的地址更改为所述弹幕地址;
保存所述资源标识、所述设备标识以及更改后的所述第一索引列表文件三者之间的对应关系。
第五方面,本申请实施例提供了一种投屏方法,应用于媒体资源服务器,包括:
获取弹幕后台服务器发送的媒体资源的资源标识、投屏发送端的设备标识以及第二索引列表文件;其中,所述第二索引列表文件中包括所述媒体资源各弹幕分段文件的弹幕地址,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
将所述第二索引列表文件保存至第三索引列表文件中,得到第一索引列表文件,其中,所述第三索引列表文件中包括所述媒体资源各资源分段的资源地址;
保存所述资源标识、所述设备标识以及所述第一索引列表文件之间的对应关系。
可选地,所述第一索引列表文件为m3u8播放列表文件,包括主m3u层和嵌套在所述主m3u层中的子m3u层;
所述主m3u层中包括所述媒体资源各资源分段的资源地址,以及每个所述资源分段的持续时长;
所述子m3u层中包括所述各弹幕分段文件的弹幕地址。
第六方面,本申请实施例提供了一种投屏系统,包括投屏发送端、投屏接收端和媒体资源服务器;
所述投屏接收端,用于从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址;向媒体资源服务器发送携带所述资源地址的资源请求,并获取所述媒体资源服务器根据所述资源地址获取资源分段后,返回的资源响应,所述资源响应中携带所述资源分段;向投屏发送端发送携带所述弹幕地址的弹幕请求,并获取所述投屏发送端根据所述弹幕地址从本地保存的各弹幕分段文件中获取目标弹幕分段文件后,返回的弹幕响应,所述弹幕响应中携带所述目标弹幕分段文件;播放所述资源分段,并显示所述目标弹幕分段文件包含的弹幕;
所述投屏发送端,用于获取所述投屏接收端发送的弹幕请求,其中,所述弹幕请求中携带弹幕地址;根据所述弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;将所述目标弹幕分段文件返回给所述投屏接收端;
所述媒体资源服务器,用于获取所述投屏接收端发送的资源请求,其中,所述资源请求中携带资源地址;根据所述资源地址获取资源分段后,向所述投屏接收端返回资源响应,其中,所述资源响应中携带所述资源分段。
可选地,还包括弹幕后台服务器;
所述投屏发送端,还用于从所述弹幕后台服务器下载所述媒体资源的各弹幕分段文件,并生成每个所述弹幕分段文件各自的绝对访问地址;将每个所述弹幕分段文件各自的所述绝对访问地址,所述媒体资源的资源标识,以及所述投屏发送端的设备标识,发送给所述弹幕后台服务器或所述媒体资源服务器;
所述弹幕后台服务器或所述媒体资源服务器,用于获取所述设备标识以及所述媒体资源对应的所述第一索引列表文件,将所述绝对访问地址,作为所述第一索引列表文件中对应的、所述弹幕分段文件的弹幕地址。
第七方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的投屏方法,或者,实现第二方面所述的投屏方法,或者,实现第三方面所述的投屏方法,或者,实现第四方面所述的投屏方法,或者,实现第五方面所述的投屏方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的投屏方法,或者,实现第二方面所述的投屏方法,或者,实现第三方面所述的投屏方法,者,实现第四方面所述的投屏方法,或者,实现第五方面所述的投屏方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,投屏接收端向投屏发送端发送弹幕请求,投屏发送端根据弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件,并将目标弹幕分段文件返回给投屏接收端,投屏接收端即可显示该目标弹幕分段文件中的弹幕。从而能够在投屏过程中支持弹幕功能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请实施例中投屏系统架构示意图;
图2为本申请第一实施例中投屏发送端执行的投屏过程示意图;
图3为本申请第二实施例中投屏接收端执行的投屏过程示意图;
图4为本申请第三实施例中弹幕后台服务器执行的投屏过程示意图;
图5为本申请第四实施例中媒体资源服务器执行的投屏过程示意图;
图6为本申请第五实施例中媒体资源服务器执行的另一投屏过程示意图;
图7A为本申请第六实施例中投屏过程交互流程示意图;
图7B为本申请第六实施例中另一投屏过程交互流程示意图;
图8为本申请第七实施例中系统交互流程示意图;
图9为本申请第八实施例中投屏装置结构示意图;
图10为本申请第九实施例中投屏装置结构示意图;
图11为本申请第十实施例中投屏装置结构示意图;
图12为本申请第十一实施例中投屏装置结构示意图;
图13为本申请第十二实施例中投屏装置结构示意图;
图14为本申请第十三实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例中提供了一种投屏系统,如图1所示,该系统主要包括:投屏发送端10、投屏接收端11和媒体资源服务器12。
其中,投屏接收端11具体可以是电视等大屏设备。
投屏发送端10具体可以是手机、平板、笔记本电脑等设备,该设备中安装有视频播放客户端软件(APP)。
投屏接收端11,用于从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址;向媒体资源服务器12发送携带资源地址的资源请求,并获取媒体资源服务器12根据资源地址获取资源分段后,返回的资源响应,资源响应中携带资源分段;向投屏发送端10发送携带弹幕地址的弹幕请求,并获取投屏发送端10根据该弹幕地址从本地保存的各弹幕分段文件中获取目标弹幕分段文件后,返回的弹幕响应,该弹幕响应中携带该目标弹幕分段文件;播放该资源分段,并显示该目标弹幕分段文件包含的弹幕;
投屏发送端10,用于获取投屏接收端11发送的弹幕请求,其中,该弹幕请求中携带弹幕地址;根据该弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;将该目标弹幕分段文件返回给投屏接收端11;
媒体资源服务器12,用于获取投屏接收端11发送的资源请求,其中,该资源请求中携带资源地址;根据该资源地址获取资源分段后,向投屏接收端11返回资源响应,其中,该资源响应中携带该资源分段。
本实施例中,通过在投屏发送端10保存媒体资源各弹幕分段文件,投屏接收端11根据第一索引列表文件中弹幕地址,向投屏发送端10请求弹幕分段文件,并根据第一索引列表文件中的资源地址,向媒体资源服务器12请求资源分段。投屏接收端11在播放请求到的资源分段时,显示请求到的弹幕分段文件,从而使得在投屏过程中支持弹幕功能。
一个具体实施例中,该投屏系统还包括弹幕后台服务器13;
投屏发送端10,还用于从弹幕后台服务器13下载媒体资源的各弹幕分段文件,并生成每个弹幕分段文件各自的绝对访问地址;将每个弹幕分段文件各自的绝对访问地址,媒体资源的资源标识,以及投屏发送端10的设备标识,发送给弹幕后台服务器13或媒体资源服务器12;
弹幕后台服务器13或媒体资源服务器12,用于获取该设备标识以及该媒体资源对应的第一索引列表文件,将该绝对访问地址,作为第一索引列表文件中对应的、弹幕分段文件的弹幕地址。
本申请各实施例中,投屏过程中采用基于HTTP的流媒体网络传输协议进行媒体资源的传输以及播放,例如,采用HLS(HTTP Live Streaming)协议进行视频资源的传输及播放。
m3u8是HLS协议的部分内容,在一个媒体资源的m3u8播放列表文件中会保存可用的媒体流的可下载资源地址。在针对一个媒体资源进行流媒体会话时,客户端(如投屏接收端或投屏发送端)会下载该m3u8播放列表文件,以从该m3u8播放列表文件中包含的可下载资源地址,下载流媒体并播放。
以HLS协议为例,在HLS协议中,字幕流默认支持Webvtt格式,全称为web视频文本跟踪格式,是一种显示定时文本轨道的格式,一般用于外挂字幕。在Webvtt格式中定义了文本的显示时间、位置和区域,同时支持层叠样式表(css)的样式设定。借助于Webvtt格式字幕显示能力,可以将弹幕分段文件的格式确定为后缀名为vtt的Webvtt格式,从而满足弹幕显示的需求。但是,这并不意味着弹幕分段文件的格式必须采用Webvtt格式,根据流媒体传输具体所采用的协议的不同,可以采用相适配的字幕流格式作为弹幕分段文件的格式。
一个具体实施例中,第一索引列表文件为第一m3u8播放列表文件。这里能够直接利用HLS协议中m3u8播放列表文件中已经保存的媒体资源各资源分段的资源地址,在媒体资源原有的m3u8播放列表文件中增加弹幕分段文件的弹幕地址,即可得到同时包含资源地址和弹幕地址的索引列表文件,实现过程简便。
第一m3u8播放列表文件包括主m3u层和嵌套在主m3u层中的子m3u层。主m3u层中包括媒体资源各资源分段的资源地址,以及每个资源分段的持续时长;子m3u层中包括弹幕分段文件的弹幕地址。
其中,子m3u层在第一m3u8播放列表文件中的分段类型为TYPE=SUBTITLE。在m3u8协议的规定中,通过定义分段类型为TYPE=SUBTITLE,在一个m3u8播放列表中增加一个子m3u层,本申请实施例中在增加的一个子m3u层中包括弹幕分段文件的弹幕地址。
资源分段的持续时长与弹幕分段文件的持续时长相同,例如均为10秒。
投屏接收端11通过在开始投屏时加载一次第一m3u8播放列表文件,在子m3u层中保存有弹幕地址,使得能够被投屏接收端11中的播放器识别为字幕流,达到显示弹幕的目的。并且,每次读取与待投屏资源分段对应的弹幕地址,从该弹幕地址获取弹幕分段文件并显示,使得弹幕地址中保存的弹幕分段文件能够随时更新,并且投屏接收端11能够获取随时更新后的弹幕分段文件,满足弹幕交互的实时性要求。
需要说明的是,本申请实施例所提供的弹幕投屏系统及方法,除了能够应用于通用的支持DLNA协议的设备投屏之外,还可以扩展应用于其他私有协议,本申请的保护范围并不以投屏过程中采用的具体协议为限制。
基于以上系统架构,分别从投屏接收端11、投屏发送端10、弹幕后台服务器13和媒体资源服务器12的角度,对本申请实施例提出的投屏过程进行说明。
需要说明的是,以下各实施例中,设备标识是能够唯一用于标识设备的信息,例如可以是设备的UUID,资源标识是能够唯一标识媒体资源的信息,例如媒体资源的名称等。
本申请第一实施例中,投屏发送端10可以是DLNA协议的客户端(也称为Client端),例如终端上安装的APP,如图2所示,投屏发送端10在投屏过程中主要执行以下步骤:
步骤201,获取投屏接收端11发送的弹幕请求,其中,该弹幕请求中携带弹幕地址。
一个具体实施例中,投屏发送端10在获取投屏接收端11发送的弹幕请求之前,向投屏接收端11发送推片请求,其中,该推片请求中携带待投屏媒体资源的资源标识和该投屏发送端10的设备标识,投屏发送端10根据该资源标识和该设备标识,从媒体资源服务器12中获取第一索引列表文件,该第一索引列表文件与投屏发送端10的设备标识以及媒体资源的资源标识对应;该第一索引列表文件中包括该媒体资源各资源分段的资源地址,以及各资源分段对应的各弹幕分段文件的弹幕地址。
其中,该推片指令,可以是该投屏发送端10在向投屏接收端11发起投屏时发送。
其中,发起投屏的具体过程可以是,作为投屏发送端10的APP在检测到用户点击投屏的操作时,确定发起投屏过程。
一个具体实施例中,第一索引列表文件中的弹幕地址被写入的过程大致为:投屏发送端10向投屏接收端11发送推片请求之前,从弹幕后台服务器13下载媒体资源的各弹幕分段文件,并生成每个弹幕分段文件各自的绝对访问地址。投屏发送端10将每个弹幕分段文件各自的绝对访问地址,媒体资源的资源标识,以及投屏发送端10的设备标识,发送给弹幕后台服务器13或媒体资源服务器12。其中,弹幕后台服务器13或媒体资源服务器12,获取该设备标识以及该媒体资源对应的第一索引列表文件,将该绝对访问地址,作为第一索引列表文件中对应的、弹幕分段文件的弹幕地址。
步骤202,根据弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件。
其中,弹幕地址为目标弹幕分段文件在投屏发送端10的绝对访问地址。
步骤203,将目标弹幕分段文件返回给投屏接收端,通过投屏接收端显示目标弹幕分段文件中的弹幕。
一个具体实施例中,投屏发送端10在获取投屏接收端发送的弹幕请求之前,获取在投屏过程中产生的新的弹幕信息,其中,弹幕信息中包括生成时间戳和弹幕;投屏发送端10获取本地保存的媒体资源各弹幕分段文件中,与该生成时间戳对应的目标弹幕分段文件;投屏发送端10将该弹幕写入该目标弹幕分段文件中。
该实施例中,投屏发送端10直接将本地产生的新的弹幕信息写入到目标弹幕分段文件,使得在投屏过程中,能够及时显示该新的弹幕信息,而不需要等到弹幕后台服务器13审核通过后再显示,避免了用户无法即时看到自己发送的弹幕,导致用户体验差的问题,保证了投屏发送端10本地产生的弹幕在投屏时能够实时显示。
并且,投屏发送端10获取在投屏过程中产生的新的弹幕信息之后,将该新的弹幕信息传输给弹幕后台服务器13,由弹幕后台服务器13对该新的弹幕信息进行审核,并在审核通过后写入到对应的弹幕分段文件。
该实施例中,投屏发送端10本地产生的新的弹幕信息,直接写入本地的目标弹幕分段文件中,保证弹幕的实时显示,同时发送给弹幕后台服务器13进行审核,并在审核通过后写入到弹幕后台服务器中对应的弹幕分段文件中,使得其它终端在播放或投屏时能显示该弹幕。
一个具体实施例中,弹幕信息所加入的目标弹幕分段文件的具体选取过程包括:获取投屏接收端11预计加载弹幕分段文件的第一时间点。投屏接收端11在对当前资源分段投屏过程中,加载下一个待投屏的资源分段以及对应的弹幕分段文件,即在第一时间点加载下一个待投屏的资源分段以及对应的弹幕分段文件。
情况1,若新的弹幕的生成时间戳对应的时间点早于该第一时间点,将该第一时间点所属弹幕分段文件之后的第一个弹幕分段文件,作为目标弹幕分段文件。
也就是说,在新的弹幕生成时,投屏接收端11尚未加载下一弹幕分段文件,则投屏发送端10直接将该下一弹幕分段文件作为目标弹幕分段文件,将该新的弹幕直接写入该目标弹幕分段文件。从而能够使用户尽快看到自己发出的弹幕,提高用户体验,避免了直接将弹幕写入当前正在投屏的弹幕分段文件,导致投屏接收端加载的弹幕分段文件中未包含该新的弹幕,导致该新的弹幕无法及时显示的问题。
假设新的弹幕的生成时间戳表示为Ts,当前投屏的弹幕分段文件的起始时间点表示为Tc,投屏接收端11预计加载该下一弹幕分段文件的第一时间点表示为T_delta,T_delta小于一个弹幕分段文件的持续时长,例如小于10秒。
若Ts-Tc<T_delta,则表明新的弹幕生成的时间点早于第一时间点,发送弹幕时未错过下一条弹幕分段文件的加载时间,直接将下一弹幕分段文件作为目标弹幕分段文件即可。即,该新的弹幕的显示时间Tp为Tc+1个弹幕分段文件的持续时长。
情况2,若该生成时间戳对应的时间点晚于该第一时间点,将该第一时间点所属弹幕分段文件之后的第二个弹幕分段文件,作为该目标弹幕分段文件。
也就是说,在新的弹幕生成时,投屏接收端11已经加载下一弹幕分段文件,则投屏接收端10将位于该下一弹幕分段文件之后的第一个弹幕分段文件,作为目标弹幕分段文件,将该新的弹幕写入该目标弹幕分段文件。从而使得在下一弹幕分段文件已经被加载的情况下,用户也能够尽快看到自己发出的弹幕,提高用户体验,避免了直接弹幕写入当前正在投屏的弹幕分段文件,或者直接写入下一弹幕分段文件,导致投屏接收端本次投屏过程中加载的弹幕分段文件中均不包含该新的弹幕,导致该新的弹幕无法及时显示的问题。
并且,对于情况2,确定该新的弹幕信息的显示时间为:目标弹幕分段文件的起始时刻累加弹幕时间差后所得的和值,该弹幕时间差为该新的弹幕信息的生成时间戳与上一条加入的弹幕信息的显示时间的差。
假设条件同上,若Ts-Tc>=T_delta,则表明新的弹幕的生成的时间点晚于该第一时间点,发送弹幕时已经错过下一弹幕分段文件的加载时间。此时,需要延长显示弹幕的时间,即将当前投屏的弹幕分段文件之后的第二个弹幕分段文件作为目标弹幕分段文件。
如果直接将该第二弹幕分段文件的起始时间(表示为Tc+2,2表示两个弹幕分段文件的持续时长)作为该新的弹幕的显示时间,则会导致Ts到当前弹幕分段文件的终止时刻,这一时间段内产生的弹幕集中在Tc+2这一时刻。
为了避免弹幕过于集中的问题,也可以将该新的弹幕的显示时间确定为Ts+2,但这会加大该新的弹幕的生成到显示的滞后时长。
为了进一步优化新的弹幕的显示时间,将该新的弹幕的显示时间确定为:Tc+2个弹幕分段文件的持续时长+两条弹幕的时间差,该两条弹幕的时间差:为该新的弹幕的生成时间戳,与当前投屏的弹幕分段文件中上次加入的弹幕的显示时刻之间的差值。从而使得能够在目标弹幕分段文件中及时显示该新的弹幕,并且能够避免该目标弹幕分段文件起始阶段的弹幕过于集中的问题,使得弹幕分段文件中的弹幕能够呈稀疏分布的状态。
其中,投屏接收端11预计加载弹幕分段文件的第一时间点,一般设置在当前投屏的资源分段已经播放至一半的时刻,或当前投屏的资源分段即将播放结束的时刻,如距离播放结束还有2秒种的时刻等。当然,根据实际设计需要,预计加载弹幕分段文件的第一时间点也可以设置在当前投屏的资源分段播放过程中的任意时刻,只需要投屏接收端11和投屏发送端10互相约定好即可,此处不做具体限制。
一个具体实施例中,为了避免投屏发送端10上保存的各弹幕分段文件长期不更新,导致投屏过程中无法显示最近一段时间收集到的弹幕的问题,本申请实施例中,投屏发送端10在投屏过程中,每间隔设定时长从弹幕后台服务器13重新下载各弹幕分段文件;采用重新下载的各弹幕分段文件,替换本地保存的各弹幕分段文件。从而使得能够在投屏过程中显示最近一段时间收集到的弹幕,进一步提高用户体验。
该第一实施例中,投屏发送端10按照投屏接收端11请求的弹幕地址,为该投屏接收端11提供弹幕分段文件,使得投屏接收端11在投屏过程中能够显示该弹幕分段文件,实现投屏过程中的弹幕功能。
并且,对于该投屏发送端新产生的弹幕,投屏接收端能够及时显示,不需要等待弹幕后台服务器进行审核后才显示,实现了投屏过程中弹幕的实时显示,进一步提高了用户体验。
同时,由于该投屏发送端新产生的弹幕,在未审核通过时不会写入弹幕后台服务器的弹幕分段文件中,其他用户不会看到,仅供从该投屏发送端请求弹幕资源的投屏接收端进行显示,保证了向所有用户展示的弹幕能够符合审核要求,比如不会出现低俗、暴力等违规内容。
本申请第二实施例中,投屏接收端11,也称为DLNA协议的Render端(或称为R端),用于接收投屏发送端10的推片指令,并根据该推片指令调用播放器播放媒体资源以及弹幕。
如图3所示,投屏接收端11在投屏过程中主要执行以下步骤:
步骤301,从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址。
一个具体实施例中,从第一索引列表文件中,获取待投屏资源分段的资源地址以及弹幕地址之前,投屏接收端11获取来自于投屏发送端10的推片指令,其中,该推片指令中携带媒体资源的资源标识和投屏发送端10的设备标识;投屏接收端11从媒体资源服务器12中,获取该资源标识和该设备标识对应的第一索引列表文件。
其中,该推片指令,可以是该投屏发送端10在向投屏接收端11发起投屏时发送。
步骤302,向媒体资源服务器12发送携带该资源地址的资源请求,并获取媒体资源服务器12根据该资源地址获取资源分段后,返回的资源响应,该资源响应中携带该资源分段。
第一索引列表文件中包括媒体资源各资源分段的资源地址,投屏接收端11从第一索引列表文件中获取待投屏的资源分段的资源地址后,将携带该资源地址的资源请求发送给媒体资源服务器12。媒体资源服务器12获取该资源地址对应的资源分段后,返回资源响应至该投屏接收端11。投屏接收端11从该资源响应中提取该资源分段。
步骤303,向投屏发送端10发送携带该弹幕地址的弹幕请求,并获取投屏发送端10根据该弹幕请求返回的弹幕响应,该弹幕响应中携带投屏发送端10根据该弹幕地址,从本地保存的各弹幕分段文件中获取的目标弹幕分段文件。
步骤304,播放该资源分段,并显示该目标弹幕分段文件包含的弹幕。
该第二实施例中,投屏接收端11在投屏过程中,按照获得的第一索引列表文件获取资源地址和弹幕地址,按照该资源地址从媒体资源服务器获取资源分段,以及按照该弹幕地址,从发起投屏的投屏发送端10获取弹幕分段文件,实现了投屏过程中的弹幕功能。并且,弹幕分段文件从投屏发送端10获取的方式,避免了无法及时观看到该投屏发送端在投屏过程中新产生的弹幕的问题,为实现投屏发送端产生弹幕的实时显示提供了可能性。
关于第一索引列表文件的建立过程,参见以下第三、第四实施例的描述,或者,参见以下第五实施例的描述。
本申请第三实施例中,弹幕后台服务器13,主要用于提供弹幕消息上传接口,对上传接口传入的弹幕信息进行鉴权,对鉴权通过后的弹幕信息进行内容审核服务,以及生成弹幕分段文件,以供下载。
如图4所示,弹幕后台服务器13在投屏过程中主要执行以下步骤:
步骤401,获取投屏发送端10发送的媒体资源各弹幕分段文件的弹幕地址,投屏发送端10的设备标识,以及媒体资源的资源标识;其中,弹幕地址由投屏发送端10根据本地保存的各弹幕分段文件生成,并指向投屏发送端10。
其中,投屏发送端10预先从弹幕后台服务器13下载媒体资源的各弹幕分段文件,在本地生成每个弹幕分段文件各自的绝对访问地址后,将该绝对访问地址作为弹幕分段文件的弹幕地址,发送给弹幕后台服务器13。
步骤402,生成包括各弹幕分段文件的弹幕地址的第二索引列表文件,将该第二索引列表文件、该资源标识以及该设备标识,发送给媒体资源服务器12,由媒体资源服务器12生成与该设备标识和该资源标识对应的第一索引列表文件。
第二索引列表文件中保存的各弹幕分段文件的弹幕地址,即为该弹幕分段文件在投屏发送端11中的绝对访问地址。
具体地,第二索引列表文件为第二m3u8播放列表文件,该第二m3u8播放列表文件的主m3u层中包括媒体资源各资源分段的资源地址。
其中,弹幕后台服务器13提供弹幕消息上传接口,通过该弹幕消息上传接口,获取各投屏发送端11或其它终端发送的弹幕信息,对该弹幕信息进行鉴权,对鉴权通过后的弹幕信息进行内容审核服务后,将该弹幕信息加入到对应的弹幕分段文件中。
投屏发送端10定期到弹幕后台服务器13下载最新的弹幕分段文件,以保证投屏发送端10中保存的弹幕分段文件能够定期更新,使得能够及时对新增的弹幕进行显示。
该第三实施例中,弹幕后台服务器13根据投屏发送端10提供的弹幕地址,生成第二索引列表文件,并将该第二索引列表文件提供给媒体资源服务器12,使得媒体资源服务器12能够生成第一索引列表文件,在该第一索引列表文件中包括资源分段的资源地址和弹幕分段文件的弹幕地址。使得投屏接收端11能够根据该第一索引列表文件进行投屏,并在投屏过程中显示弹幕。
本申请第四实施例中,与第三实施例相对应,如图5所示,媒体资源服务器12在投屏过程中主要执行以下步骤:
步骤501,获取弹幕后台服务器13发送的媒体资源的资源标识、投屏发送端10的设备标识以及第二索引列表文件;其中,该第二索引列表文件中包括该媒体资源各弹幕分段文件的弹幕地址,该弹幕地址由投屏发送端10根据本地保存的该媒体资源的各弹幕分段文件生成,并指向该投屏发送端10。
步骤502,将该第二索引列表文件保存至第三索引列表文件中,得到第一索引列表文件,其中,该第三索引列表文件中包括媒体资源各资源分段的资源地址。
该第三索引列表文件是媒体资源服务器12对媒体资源划分各资源分段后,根据各资源分段的资源生成。
该第三索引列表文件为第三m3u8播放列表文件,该第三m3u8播放列表文件的主m3u层中包括媒体资源各资源分段的资源地址。将第二m3u8播放列表文件的主m3u层中各弹幕分段文件的弹幕地址,写入到第三m3u8播放列表文件的子m3u层中,保持第二m3u8播放列表文件主m3u层中的内容不变,即可得到第一m3u8播放列表文件,也就是第一索引列表文件。
步骤503,保存该资源标识、该设备标识以及该第一索引列表文件之间的对应关系。
该第四实施例中,媒体资源服务器12根据弹幕后台服务器13提供的媒体资源各弹幕分段文件的弹幕地址,结合本地生成的该媒体资源各资源分段的资源地址,生成第一索引列表文件,以便于投屏接收端11下载后进行投屏,为实现投屏过程中的弹幕显示提供了可能性。
本申请第五实施例中,媒体资源服务器12,主要用于媒体资源(例如视频流)的编解码、格式封装以及播放地址的分发等。
具体地,如图6所示,媒体资源服务器12在投屏过程中主要执行以下步骤:
步骤601,获取投屏发送端10发送的媒体资源各弹幕分段文件的弹幕地址,投屏发送端10的设备标识,以及该媒体资源的资源标识;其中,弹幕地址由投屏发送端10根据本地保存的各弹幕分段文件生成,并指向投屏发送端10。
步骤602,获取该资源标识对应的第一索引列表文件,将该第一索引列表文件中各弹幕分段文件的地址更改为该弹幕地址。
其中,原始的第一索引列表文件中包括媒体资源各资源分段的地址,以及各弹幕分段文件在弹幕后台服务器中的地址。
该弹幕分段文件在弹幕后台服务中的地址,是由弹幕后台服务器对弹幕文件进行划分后,得到各弹幕分段文件,并生成各弹幕分段文件各自的地址。
将原始的第一索引列表文件中各弹幕分段文件在弹幕后台服务器中的地址,替换为指向投屏发送端10的弹幕地址,得到最终用于投屏的媒体资源的第一索引列表文件。
步骤603,保存该资源标识、该设备标识以及更改后的该第一索引列表文件三者之间的对应关系。
该第五实施例中,媒体资源服务器12直接根据投屏发送端10提供的各弹幕分段文件的弹幕地址,生成最终的第一索引列表文件,以供投屏接收端11下载后进行投屏,为实现投屏过程中的弹幕显示提供了可能性。
本申请第六实施例中,基于以上各实施例的描述,提供一个具体的投屏过程交互流程,如图7A所示,主要包括以下步骤:
步骤701,投屏发送端根据本地保存的媒体资源各弹幕分段文件生成弹幕地址,该弹幕地址指向该投屏发送端;
步骤702,弹幕后台服务器获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,投屏发送端的设备标识,以及媒体资源的资源标识;
步骤703,弹幕后台服务器生成包括各弹幕分段文件的弹幕地址的第二索引列表文件,将第二索引列表文件、该资源标识以及该设备标识,发送给媒体资源服务器;
步骤704,媒体资源服务器将第二索引列表文件保存至第三索引列表文件中,得到第一索引列表文件,其中,第三索引列表文件中包括媒体资源各资源分段的资源地址;
步骤705,媒体资源服务器保存该资源标识、该设备标识以及该第一索引列表文件之间的对应关系;
步骤706,投屏接收端从媒体资源服务器中获取该资源标识和该设备标识对应的第一索引列表文件;
步骤707,投屏接收端从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址;
步骤708,投屏接收端向媒体资源服务器发送携带资源地址的资源请求;
步骤709,媒体资源服务器根据资源请求中资源地址获取资源分段;
步骤710,投屏接收端获取媒体资源服务器返回的资源响应,资源响应中携带资源分段;
步骤711,投屏接收端向投屏发送端发送携带弹幕地址的弹幕请求;
步骤712,投屏发送端根据弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;
步骤713,投屏接收端获取投屏发送端根据弹幕请求返回的弹幕响应,弹幕响应中携带目标弹幕分段文件;
步骤714,投屏接收端播放资源分段,并显示目标弹幕分段文件包含的弹幕。
其中,如图7B所示,步骤701至步骤704,也可以替换为以下步骤715至步骤717:
步骤715,投屏发送端根据本地保存的媒体资源各弹幕分段文件生成弹幕地址,该弹幕地址指向该投屏发送端;
步骤716,媒体资源服务器获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,投屏发送端的设备标识,以及媒体资源的资源标识;
步骤717,媒体资源服务器获取该资源标识对应的第一索引列表文件,将该第一索引列表文件中各弹幕分段文件的地址更改为该弹幕地址。
执行步骤717之后,依次执行步骤705至步骤714。
本申请第七实施例中,基于以上各实施例的描述,其中一个具体的系统交互流程,可参见图8所示,具体如下:
弹幕后台服务器,包括弹幕审核模块、弹幕文件管理模块和生成模块。其中弹幕文件管理模块中保存有视频的各弹幕分段文件,例如,segmen0.vtt,segment1.vtt,segment2.vtt等。生成模块用于从弹幕文件管理模块中获取同一视频的各弹幕分段文件,并结合从APP获得的各弹幕分段文件的弹幕地址,生成webvtt.m3u8文件。
安装APP的终端,APP从弹幕后台服务器下载弹幕分段文件后,将弹幕分段文件保存在本地,搭建http服务,生成本地保存的每个弹幕分段文件各自的http访问地址,将生成的http访问地址作为弹幕地址,发送给弹幕后台服务器。
视频云服务器,从弹幕后台服务器中获取webvtt.m3u8文件,从安装APP的终端获取设备UUID,根据视频各视频分段的资源地址,即video.m3u8文件中保存的资源地址,以及webvtt.m3u8文件中保存的弹幕地址,生成main.m3u8文件,并根据设备UUID生成该main.m3u8文件的URL地址,并将该URL地址发送给安装APP的终端。
安装APP的终端,在触发投屏时,通过DLNADMC(数字媒体控制器,Digital MediaController)向电视端发送携带该URL地址的推片请求。
电视端,通过DLNADMR获取该推片请求,根据该推片请求中携带的URL地址,从该URL地址获取main.m3u8文件,将该main.m3u8文件保存到电视端的播放器中,该播放器从该main.m3u8文件读取资源地址和弹幕地址,按照该资源地址从视频云服务器下载视频分段,以及安装该弹幕地址从安装APP的终端获取弹幕分段文件,在播放该视频分段的同时显示该弹幕分段文件。
本申请第八实施例中,基于同一构思,本申请实施例中提供了一种投屏装置,该装置主要应用于投屏发送端,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述。如图9所示,该装置主要包括:
第一获取模块901,用于获取投屏接收端发送的弹幕请求,其中,所述弹幕请求中携带弹幕地址;
第二获取模块902,用于根据所述弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;
处理模块903,用于将所述目标弹幕分段文件返回给所述投屏接收端,通过所述投屏接收端显示所述目标弹幕分段文件中的弹幕。
本申请第九实施例中,基于同一构思,本申请实施例中提供了一种投屏装置,该装置主要应用于投屏接收端,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述。如图10所示,该装置主要包括:
第一获取模块1001,用于从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址;
第二获取模块1002,用于向媒体资源服务器发送携带所述资源地址的资源请求,并获取所述媒体资源服务器根据所述资源地址获取资源分段后,返回的资源响应,所述资源响应中携带所述资源分段;
第三获取模块1003,用于向投屏发送端发送携带所述弹幕地址的弹幕请求,并获取所述投屏发送端根据所述弹幕请求返回的弹幕响应,所述弹幕响应中携带所述投屏发送端根据所述弹幕地址,从本地保存的各弹幕分段文件中获取的目标弹幕分段文件;
播放模块1004,用于播放所述资源分段,并显示所述目标弹幕分段文件包含的弹幕。
本申请第十实施例中,基于同一构思,本申请实施例中提供了一种投屏装置,该装置主要应用于弹幕后台服务器,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述。如图11所示,该装置主要包括:
获取模块1101,用于获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,所述投屏发送端的设备标识,以及所述媒体资源的资源标识;其中,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
处理模块1102,用于生成包括所述各弹幕分段文件的弹幕地址的第二索引列表文件,将所述第二索引列表文件、所述资源标识以及所述设备标识,发送给媒体资源服务器,由所述媒体资源服务器生成与所述设备标识和所述资源标识对应的第一索引列表文件。
本申请第十一实施例中,基于同一构思,本申请实施例中提供了一种投屏装置,该装置主要应用于媒体资源服务器,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述。如图12所示,该装置主要包括:
第一获取模块1201,用于获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,所述投屏发送端的设备标识,以及所述媒体资源的资源标识;其中,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
第二获取模块1202,用于获取所述资源标识对应的第一索引列表文件,将所述第一索引列表文件中各弹幕分段文件的地址更改为所述弹幕地址;
存储模块1203,用于保存所述资源标识、所述设备标识以及更改后的所述第一索引列表文件三者之间的对应关系。
本申请第十二实施例中,基于同一构思,本申请实施例中提供了一种投屏装置,该装置主要应用于媒体资源服务器,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述。如图13所示,该装置主要包括:
获取模块1301,用于获取弹幕后台服务器发送的媒体资源的资源标识、投屏发送端的设备标识以及第二索引列表文件;其中,所述第二索引列表文件中包括所述媒体资源各弹幕分段文件的弹幕地址,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
处理模块1302,用于将所述第二索引列表文件保存至第三索引列表文件中,得到第一索引列表文件,其中,所述第三索引列表文件中包括所述媒体资源各资源分段的资源地址;
存储模块1303,用于保存所述资源标识、所述设备标识以及所述第一索引列表文件之间的对应关系。
本申请第十三实施例中,基于同一构思,本申请实施例中还提供了一种电子设备,如图14所示,该电子设备主要包括:处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401、通信接口1402和存储器1403通过通信总线1404完成相互间的通信。其中,存储器1403中存储有可被至处理器1401执行的程序,处理器1401执行存储器1403中存储的程序,实现如以上任意一个方法实施例所描述的方法流程。
上述电子设备中提到的通信总线1404可以时外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线1404可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1402用于上述电子设备与其他设备之间的通信。
存储器1403可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器1401的存储装置。
上述的处理器1401可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述任意一个方法实施例中所描述的投屏方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (19)
1.一种投屏方法,其特征在于,应用于投屏发送端,包括:
获取投屏接收端发送的弹幕请求,其中,所述弹幕请求中携带弹幕地址;
根据所述弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;
将所述目标弹幕分段文件返回给所述投屏接收端,通过所述投屏接收端显示所述目标弹幕分段文件中的弹幕。
2.根据权利要求1所述的投屏方法,其特征在于,所述获取投屏接收端发送的弹幕请求之前,所述方法还包括:
获取在投屏过程中产生的新的弹幕信息,其中,所述弹幕信息中包括生成时间戳和弹幕;
获取本地保存的媒体资源各弹幕分段文件中,与所述生成时间戳对应的所述目标弹幕分段文件;
将所述弹幕写入所述目标弹幕分段文件中。
3.根据权利要求1或2所述的投屏方法,其特征在于,所述弹幕地址为所述目标弹幕分段文件在所述投屏发送端的绝对访问地址。
4.根据权利要求3所述的投屏方法,其特征在于,所述获取投屏接收端发送的弹幕请求之前,所述方法还包括:
向所述投屏接收端发送推片请求,其中,所述推片请求中携带所述媒体资源的资源标识以及所述投屏发送端的设备标识,所述资源标识以及所述设备标识用于所述投屏接收端从媒体资源服务器中获取第一索引列表文件;
所述第一索引列表文件中包括所述媒体资源各资源分段的资源地址,以及所述各资源分段对应的各弹幕分段文件的所述弹幕地址。
5.根据权利要求2所述的投屏方法,其特征在于,所述获取在投屏过程中产生的新的弹幕信息之后,所述方法还包括:
将所述新的弹幕信息传输给所述弹幕后台服务器,由所述弹幕后台服务器对所述新的弹幕信息进行审核,并在审核通过后写入到对应的所述弹幕分段文件。
6.根据权利要求4所述的投屏方法,其特征在于,所述向所述投屏接收端发送推片请求之前,所述方法还包括:
从弹幕后台服务器下载所述媒体资源的各弹幕分段文件,并生成每个所述弹幕分段文件各自的绝对访问地址;
将每个所述弹幕分段文件各自的所述绝对访问地址,所述媒体资源的资源标识,以及所述投屏发送端的设备标识,发送给所述弹幕后台服务器或所述媒体资源服务器;
其中,所述弹幕后台服务器或所述媒体资源服务器,获取所述设备标识以及所述媒体资源对应的所述第一索引列表文件,将所述绝对访问地址,作为所述第一索引列表文件中对应的、所述弹幕分段文件的弹幕地址。
7.根据权利要求2所述的投屏方法,其特征在于,所述获取本地保存的媒体资源各弹幕分段文件中,与所述生成时间戳对应的所述目标弹幕分段文件,包括:
获取所述投屏接收端预计加载弹幕分段文件的第一时间点;
若所述生成时间戳对应的时间点早于所述第一时间点,将所述第一时间点所属弹幕分段文件之后的第一个弹幕分段文件,作为所述目标弹幕分段文件;
若所述生成时间戳对应的时间点晚于所述第一时间点,将所述第一时间点所属弹幕分段文件之后的第二个弹幕分段文件,作为所述目标弹幕分段文件。
8.根据权利要求7所述的投屏方法,其特征在于,所述将所述第一时间点所属弹幕分段文件之后的第一个弹幕分段文件,作为所述目标弹幕分段文件之后,所述方法还包括:
确定所述新的弹幕信息的显示时间为:所述目标弹幕分段文件的起始时刻累加弹幕时间差后所得的和值,所述弹幕时间差为所述新的弹幕信息的生成时间戳,与当前投屏的弹幕分段文件中上次加入的弹幕信息的显示时刻之间的差值。
9.根据权利要求1所述的投屏方法,其特征在于,所述方法还包括:
在投屏过程中,每间隔设定时长从弹幕后台服务器重新下载所述各弹幕分段文件;
采用重新下载的所述各弹幕分段文件,替换本地保存的所述各弹幕分段文件。
10.一种投屏方法,其特征在于,应用于投屏接收端,包括:
从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址;
向媒体资源服务器发送携带所述资源地址的资源请求,并获取所述媒体资源服务器根据所述资源地址获取资源分段后,返回的资源响应,所述资源响应中携带所述资源分段;
向投屏发送端发送携带所述弹幕地址的弹幕请求,并获取所述投屏发送端根据所述弹幕请求返回的弹幕响应,所述弹幕响应中携带所述投屏发送端根据所述弹幕地址,从本地保存的各弹幕分段文件中获取的目标弹幕分段文件;
播放所述资源分段,并显示所述目标弹幕分段文件包含的弹幕。
11.根据权利要求10所述的投屏方法,其特征在于,所述从第一索引列表文件中,获取待投屏资源分段的资源地址以及弹幕地址之前,所述方法还包括:
获取来自于所述投屏发送端的推片指令,其中,所述推片指令中携带所述媒体资源的资源标识和所述投屏发送端的设备标识;
从所述媒体资源服务器中,获取所述资源标识和所述设备标识对应的所述第一索引列表文件。
12.一种投屏方法,其特征在于,应用于弹幕后台服务器,包括:
获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,所述投屏发送端的设备标识,以及所述媒体资源的资源标识;其中,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
生成包括所述各弹幕分段文件的弹幕地址的第二索引列表文件,将所述第二索引列表文件、所述资源标识以及所述设备标识,发送给媒体资源服务器,由所述媒体资源服务器生成与所述设备标识和所述资源标识对应的第一索引列表文件。
13.一种投屏方法,其特征在于,应用于媒体资源服务器,包括:
获取投屏发送端发送的媒体资源各弹幕分段文件的弹幕地址,所述投屏发送端的设备标识,以及所述媒体资源的资源标识;其中,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
获取所述资源标识对应的第一索引列表文件,将所述第一索引列表文件中各弹幕分段文件的地址更改为所述弹幕地址;
保存所述资源标识、所述设备标识以及更改后的所述第一索引列表文件三者之间的对应关系。
14.一种投屏方法,其特征在于,应用于媒体资源服务器,包括:
获取弹幕后台服务器发送的媒体资源的资源标识、投屏发送端的设备标识以及第二索引列表文件;其中,所述第二索引列表文件中包括所述媒体资源各弹幕分段文件的弹幕地址,所述弹幕地址由所述投屏发送端根据本地保存的所述各弹幕分段文件生成,并指向所述投屏发送端;
将所述第二索引列表文件保存至第三索引列表文件中,得到第一索引列表文件,其中,所述第三索引列表文件中包括所述媒体资源各资源分段的资源地址;
保存所述资源标识、所述设备标识以及所述第一索引列表文件之间的对应关系。
15.根据权利要求14所述的投屏方法,其特征在于,所述第一索引列表文件为m3u8播放列表文件,包括主m3u层和嵌套在所述主m3u层中的子m3u层;
所述主m3u层中包括所述媒体资源各资源分段的资源地址,以及每个所述资源分段的持续时长;
所述子m3u层中包括所述各弹幕分段文件的弹幕地址。
16.一种投屏系统,其特征在于,包括投屏发送端、投屏接收端和媒体资源服务器;
所述投屏接收端,用于从第一索引列表文件中,获取媒体资源待投屏资源分段的资源地址以及弹幕地址;向媒体资源服务器发送携带所述资源地址的资源请求,并获取所述媒体资源服务器根据所述资源地址获取资源分段后,返回的资源响应,所述资源响应中携带所述资源分段;向投屏发送端发送携带所述弹幕地址的弹幕请求,并获取所述投屏发送端根据所述弹幕地址从本地保存的各弹幕分段文件中获取目标弹幕分段文件后,返回的弹幕响应,所述弹幕响应中携带所述目标弹幕分段文件;播放所述资源分段,并显示所述目标弹幕分段文件包含的弹幕;
所述投屏发送端,用于获取所述投屏接收端发送的弹幕请求,其中,所述弹幕请求中携带弹幕地址;根据所述弹幕请求中携带的弹幕地址,从本地保存的各弹幕分段文件中获取目标弹幕分段文件;将所述目标弹幕分段文件返回给所述投屏接收端;
所述媒体资源服务器,用于获取所述投屏接收端发送的资源请求,其中,所述资源请求中携带资源地址;根据所述资源地址获取资源分段后,向所述投屏接收端返回资源响应,其中,所述资源响应中携带所述资源分段。
17.根据权利要求16所述的投屏系统,其特征在于,还包括弹幕后台服务器;
所述投屏发送端,还用于从所述弹幕后台服务器下载所述媒体资源的各弹幕分段文件,并生成每个所述弹幕分段文件各自的绝对访问地址;将每个所述弹幕分段文件各自的所述绝对访问地址,所述媒体资源的资源标识,以及所述投屏发送端的设备标识,发送给所述弹幕后台服务器或所述媒体资源服务器;
所述弹幕后台服务器或所述媒体资源服务器,用于获取所述设备标识以及所述媒体资源对应的所述第一索引列表文件,将所述绝对访问地址,作为所述第一索引列表文件中对应的、所述弹幕分段文件的弹幕地址。
18.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至9任一项所述的投屏方法,或者,实现权利要求10至11任一项所述的投屏方法,或者,实现权利要求12所述的投屏方法,或者,实现权利要求13所述的投屏方法,或者,实现权利要求14至15任一项所述的投屏方法。
19.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的投屏方法,或者,实现权利要求10至11任一项所述的投屏方法,或者,实现权利要求12所述的投屏方法,或者,实现权利要求13所述的投屏方法,或者,实现权利要求14至15任一项所述的投屏方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011455208.4A CN112565877B (zh) | 2020-12-10 | 2020-12-10 | 投屏方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011455208.4A CN112565877B (zh) | 2020-12-10 | 2020-12-10 | 投屏方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112565877A true CN112565877A (zh) | 2021-03-26 |
CN112565877B CN112565877B (zh) | 2022-10-18 |
Family
ID=75061885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011455208.4A Active CN112565877B (zh) | 2020-12-10 | 2020-12-10 | 投屏方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112565877B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434105A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 投屏控制方法、装置、存储介质及电子设备 |
WO2022237379A1 (zh) * | 2021-05-10 | 2022-11-17 | 花瓣云科技有限公司 | 一种投屏方法及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160316272A1 (en) * | 2013-12-23 | 2016-10-27 | Le Holdings (Beijing) Co., Ltd. | Method and device for same-screen interaction |
CN106804009A (zh) * | 2017-02-09 | 2017-06-06 | 百度在线网络技术(北京)有限公司 | 弹幕加载方法及系统 |
CN110708571A (zh) * | 2019-10-18 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 视频片段的播放控制方法及相关产品 |
CN111432284A (zh) * | 2020-04-30 | 2020-07-17 | 成都新潮传媒集团有限公司 | 一种多媒体终端的弹幕交互方法及多媒体终端 |
CN111526374A (zh) * | 2019-02-01 | 2020-08-11 | 广州虎牙信息科技有限公司 | 基于直播的弹幕处理方法、拉流的方法及装置 |
CN111901674A (zh) * | 2020-07-13 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种视频播放控制及装置 |
-
2020
- 2020-12-10 CN CN202011455208.4A patent/CN112565877B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160316272A1 (en) * | 2013-12-23 | 2016-10-27 | Le Holdings (Beijing) Co., Ltd. | Method and device for same-screen interaction |
CN106804009A (zh) * | 2017-02-09 | 2017-06-06 | 百度在线网络技术(北京)有限公司 | 弹幕加载方法及系统 |
CN111526374A (zh) * | 2019-02-01 | 2020-08-11 | 广州虎牙信息科技有限公司 | 基于直播的弹幕处理方法、拉流的方法及装置 |
CN110708571A (zh) * | 2019-10-18 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 视频片段的播放控制方法及相关产品 |
CN111432284A (zh) * | 2020-04-30 | 2020-07-17 | 成都新潮传媒集团有限公司 | 一种多媒体终端的弹幕交互方法及多媒体终端 |
CN111901674A (zh) * | 2020-07-13 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种视频播放控制及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022237379A1 (zh) * | 2021-05-10 | 2022-11-17 | 花瓣云科技有限公司 | 一种投屏方法及电子设备 |
CN113434105A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 投屏控制方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112565877B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11539989B2 (en) | Media content redirection | |
US9883251B2 (en) | Method and apparatus for managing connection between broadcast receiving device and another device connected by network | |
US7720986B2 (en) | Method and system for media adaption | |
WO2021185302A1 (zh) | 基于云手机的直播和配置方法以及相关装置和系统 | |
CN112584200B (zh) | 投屏方法、系统、电子设备及存储介质 | |
CN104539977A (zh) | 直播预览方法及装置 | |
US10554745B2 (en) | Method and apparatus for managing connection between broadcasting reception device and another device which are connected through network | |
CN102255951A (zh) | 资产可解析书签 | |
US20160294903A1 (en) | Method and device for pushing resources to mobile communication terminal by smart television | |
CN112565877B (zh) | 投屏方法、系统、电子设备及存储介质 | |
CA2925967A1 (en) | Run-time sdk integration for connected video players | |
CN111901695B (zh) | 视频内容截取方法、装置和设备及计算机存储介质 | |
CN110113655B (zh) | 一种视频播放的方法、装置及用户终端 | |
CN102598622A (zh) | 将流传输的内容进行组装以供点播演示 | |
JP2020017954A (ja) | リアルタイムライブ映像とイベントの同期化のための方法、システム、および非一時的なコンピュータ読み取り可能な記録媒体 | |
WO2012094432A1 (en) | System and method for interfacing content playback devices with network sites to supplement content playback | |
KR101770094B1 (ko) | 이미지 기반 동영상 콘텐츠 제공 방법 및 그 시스템 | |
US20150268808A1 (en) | Method, Device and System for Multi-Speed Playing | |
CN113542904A (zh) | 一种视频投屏播放方法、装置、电子设备及存储介质 | |
CN112243158B (zh) | 媒体文件处理方法、装置、计算机可读介质及电子设备 | |
CN106886583B (zh) | 用于在电子设备中管理多媒体文件播放的方法和设备 | |
CN116261021B (zh) | 一种视频流播放方法、装置、电子设备及存储介质 | |
US10165082B2 (en) | Method and apparatus for managing connection between plurality of devices over network | |
CN111356006B (zh) | 视频播放方法、装置、服务器及存储介质 | |
CN112135199B (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 |