CN105721920A - 一种媒体在多设备上协同播放的方法、装置及终端 - Google Patents
一种媒体在多设备上协同播放的方法、装置及终端 Download PDFInfo
- Publication number
- CN105721920A CN105721920A CN201410736353.8A CN201410736353A CN105721920A CN 105721920 A CN105721920 A CN 105721920A CN 201410736353 A CN201410736353 A CN 201410736353A CN 105721920 A CN105721920 A CN 105721920A
- Authority
- CN
- China
- Prior art keywords
- stream
- media
- media stream
- reference medium
- playback equipment
- 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
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种媒体在多设备上协同播放的方法,包括:将媒体文件的多个媒体流分别传输至对应的播放设备;根据各媒体流的类型,动态确定参考媒体流;在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。本发明同时还公开了一种媒体在多设备上协同播放的装置及终端。
Description
技术领域
本发明涉及媒体播放领域,尤其涉及一种媒体在多设备上协同播放的方法、装置及终端。
背景技术
目前,媒体在多个设备上协同播放时,一般需要将同一个或者多个媒体文件同步到多个设备上。
同时,对于协同播放的方法,一般由用户或者控制模块简单指定一个参考媒体流,控制模块获取参考媒体流的播放时间并发送给其他媒体流,其他媒体流自我调整,使得与参考媒体流的播放时间一致。
上述技术方案存在一定缺陷:参考媒体流的选择策略过于简单,一旦参考媒体流的传输条件较差,会导致其他与参考媒体流同步的媒体流都会出现卡顿;另外,其他媒体流的调整策略过于简单,可能会出现不能真正意义上的同步。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种媒体在多设备上协同播放的方法、装置及终端。
本发明实施例提供了一种媒体在多设备上协同播放的方法,包括:
将媒体文件的多个媒体流分别传输至对应的播放设备;
根据各媒体流的类型,动态确定参考媒体流;
在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。
上述方案中,所述将媒体文件的多个媒体流分别传输至对应的播放设备之前,所述方法还包括:
会话连接建立后,获取各播放设备当前的网络时延;
根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间。
上述方案中,所述根据各媒体流的类型,动态确定参考媒体流,包括:
当各媒体流中有一个音频流时,将所述音频流作为参考流媒体;或者,
当各媒体流中有两个以上音频流时,根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体;或者,
当各媒体流中未有音频流时,根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体。
上述方案中,所述根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体,包括:
定时获取所述两个以上音频流中各音频流的传输速率;
当未设置参考媒体流时,将所述两个以上音频流中传输速率最高的音频流作为参考媒体流;
当设置有参考媒体流时,将所述两个以上音频流中除设置的参考媒体流外的其它各音频流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,确定差值超过设置的阈值时,选择所述其它各音频流中传输速率最高的音频流作为参考媒体流。
上述方案中,所述根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体,包括:
定时获取各媒体流的传输速率;
当未设置参考媒体流时,将各媒体流中传输速率最高的媒体流作为参考媒体流;
当设置有参考媒体流时,将所述各媒体流中除设置的参考媒体流外的其它各媒体流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,确定差值超过设置的阈值时,选择所述其它各媒体流中传输速率最高的媒体流作为参考媒体流。
上述方案中,所述根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
定时获取各媒体流当前的相对播放时间;所述相对播放时间为相对于播放起始位置的时间;
将所述其它各媒体流的相对播放时间减去参考媒体流的相对播放时间,得到同步误差时间;
根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间。
上述方案中,当所述其它各媒体流中包含视频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
当视频流对应的同步误差时间大于第一值且小于等于第二值时,控制相应的播放设备视频流播放完当前帧后,将视频流停留所述对应的同步误差时间后再播放下一帧;所述第一值小于所述第二值;或者,
当视频流对应的同步误差时间大于所述第二值且小于等于所述第三值时,控制相应的播放设备重复播放视频流的当前帧直至下一次获取传输速率;所述第二值小于所述第三值;或者,
当视频流对应的同步误差时间大于所述第三值时,控制相应的播放设备将视频流跳回到获取的参考媒体流的相对播放时间进行播放。
上述方案中,当所述其它各媒体流中包含音频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
当音频流对应的同步误差时间小于第四值或大于第五值时,控制相应的播放设备将音频流跳回到获取的参考媒体流的相对播放时间进行播放;同时,对调整前后的声音之间进行差值;所述第四值小于所述第五值。
上述方案中,当所述其它各媒体流中包含字幕流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
当参考媒体流的相对播放时间在第六值至第七值范围内,且字幕流对应的同步误差时间不在第六值至第七值范围内时,控制相应的播放设备将字幕流调整到获取的参考媒体流的相对播放时间进行播放;所述第六值为当前显示的字幕的起始播放时间,所述第六值为当前显示的字幕的终止播放时间。
上述方案中,所述将媒体文件的多个媒体流分别传输至对应的播放设备之前,所述方法还包括:
将所述媒体文件解析为多个媒体流;
为解析的每个媒体流指定关联的播放设备;
并将关联的播放设备绑定为设备组。
本发明实施例还提供了一种媒体在多设备上协同播放的装置,包括:媒体流发送模块、参考媒体流选择模块以及同步控制模块;其中,
所述媒体流发送模块,用于将媒体文件的多个媒体流分别传输至对应的播放设备;
所述参考媒体流选择模块,用于根据各媒体流的类型,动态确定参考媒体流;
所述同步控制模块,用于在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。
上述方案中,所述同步控制模块,还用于会话连接建立后,获取各播放设备当前的网络时延;并根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间。
上述方案中,所述参考媒体流选择模块,具体用于:
当各媒体流中有一个音频流时,将所述音频流作为参考流媒体;或者,
当各媒体流中有两个以上音频流时,根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体;或者,
当各媒体流中未有音频流时,根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体。
上述方案中,所述同步控制模块,具体用于:
定时获取各媒体流当前的相对播放时间;所述相对播放时间为相对于播放起始位置的时间;将所述其它各媒体流的相对播放时间减去参考媒体流的相对播放时间,得到同步误差时间;并根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间。
上述方案中,所述装置还包括:媒体解析模块,用于将所述媒体文件解析为多个媒体流;
所述媒体流发送模块,还用于为解析的每个媒体流指定关联的播放设备;并将关联的播放设备绑定为设备组。
本发明实施例又提供了一种终端,包括上述的媒体在多设备上协同播放的装置。
本发明实施例提供的媒体在多设备上协同播放的方法、装置及终端,将媒体文件的多个媒体流分别传输至对应的播放设备;根据各媒体流的类型,动态确定参考媒体流;在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间,如此,有效地提高媒体在多设备上协同播放的精度,提升用户体验。
另外,由于是将媒体文件的多个媒体流分别传输至对应的播放设备,如此,能有效地节约网络资源。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例一媒体在多设备上协同播放的方法流程示意图;
图2为本发明实施例二媒体在多设备上协同播放的装置结构示意图;
图3为本发明实施例三的架构示意图;
图4为本发明实施例三媒体在多设备上协同播放的方法流程示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细地描述。
在描述本申请的实施例之前,先介绍一下目前媒体在多个设备上协同播放所存在的问题:
首先,协同播放的方法,一般是由用户或者控制模块简单指定一个参考媒体流,控制模块获取参考媒体流的播放时间并发送给其他媒体流,其他媒体流自我调整,使得与参考媒体流的播放时间一致。但是,由于参考媒体流的选择策略过于简单,所以一旦参考媒体流的传输条件较差时,会导致其他与参考媒体流同步的媒体流都会出现卡顿。
其次,其它媒体流的同步控制策略过于简单,可能会出现不能真正意义上的同步。
第三,媒体在多个设备上协同播放时,一般需要将同一个或多个媒体文件同步到多个设备上,由于每个播放设备只需要播放媒体文件中的对应媒体流,所以将整个媒体文件同步到多个设备上,会造成资源的浪费。
在本发明的各种实施例中:将媒体文件的多个媒体流分别传输至对应的播放设备;根据各媒体流的类型,动态确定参考媒体流;在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。
实施例一
本实施例的媒体在多设备上协同播放的方法,如图1所示,包括以下步骤:
步骤101:将媒体文件的多个媒体流分别传输至对应的播放设备;
这里,所述媒体流可以视频流、不同声道的音频流、或字幕流等。
在执行本步骤之前,该方法还可以包括:
会话连接建立后,获取各播放设备当前的网络时延;
根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间,由于各播放设备采用对应的系统时间,如此,能进一步提升同步的精度,提升用户体验。
在执行本步骤之前,该方法还可以包括:
将所述媒体文件解析为多个媒体流;
为解析的每个媒体流指定关联的播放设备;
并将关联的播放设备绑定为设备组,以便在媒体流的播放过程中更好地控制各播放设备。
其中,事先已获知已与哪些播放设备建立了会话连接,从而再根据需要指定每个媒体流所关联的播放设备。
步骤102:根据各媒体流的类型,动态确定参考媒体流;
这里,所述根据各媒体流的类型,动态确定参考媒体流,具体包括:
当各媒体流中有一个音频流时,将所述音频流作为参考流媒体;或者,
当各媒体流中有两个以上音频流时,根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体;或者,
当各媒体流中未有音频流时,根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体。
其中,由于音频的跳跃播放可能导致尖锐刺耳的声音,因此,当各媒体流中有音频流时,要首先选择音频流作为参考媒体流。
所述根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体,具体包括:
定时获取所述两个以上音频流中各音频流的传输速率;
当未设置参考媒体流时,将所述两个以上音频流中传输速率最高的音频流作为参考媒体流;
当设置有参考媒体流时,将所述两个以上音频流中除设置的参考媒体流外的其它各音频流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,若差值未超过设置的阈值,则维持现有的参考媒体流不变;若差值超过设置的阈值,则选择所述其它各音频流中传输速率最高的音频流作为参考媒体流。
其中,定时的周期长度可以根据网络实际情况设置;可以根据网络实际情况设置阈值。
所述根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体,具体包括:
定时获取各媒体流的传输速率;
当未设置参考媒体流时,将各媒体流中传输速率最高的媒体流作为参考媒体流;
当设置有参考媒体流时,将所述各媒体流中除设置的参考媒体流外的其它各媒体流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,若差值未超过设置的阈值,则维持现有的参考媒体流不变;若差值超过设置的阈值,则选择所述其它各媒体流中传输速率最高的媒体流作为参考媒体流。
其中,定时的周期长度可以根据网络实际情况设置;同时,可以根据网络实际情况设置阈值。
步骤103:在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。
具体地,定时获取各媒体流当前的相对播放时间;所述相对播放时间为相对于播放起始位置的时间;
将所述其它各媒体流的相对播放时间减去参考媒体流的相对播放时间,得到同步误差时间;
根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间。
当所述其它各媒体流中包含视频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,具体包括:
当视频流对应的同步误差时间大于第一值且小于等于第二值时,控制相应的播放设备视频流播放完当前帧后,将视频流停留所述对应的同步误差时间后再播放下一帧;当视频流对应的同步误差时间大于所述第二值且小于等于所述第三值时,控制相应的播放设备重复播放视频流的当前帧直至下一次获取传输速率;当视频流对应的同步误差时间大于所述第三值时,控制相应的播放设备将视频流跳回到获取的参考媒体流的相对播放时间进行播放;所述第一值小于所述第二值;所述第二值小于所述第三值。
其中,由于人的眼睛对图像有暂留时间效应(即图片消失后在人的大脑中会暂留100-400ms),因此,可以设置所述第一值为0,所述第二值为250ms,所述第三值为3000ms。
当所述其它各媒体流中包含音频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,具体包括:
当音频流对应的同步误差时间小于第四值或大于第五值时,控制相应的播放设备将音频流跳回到获取的参考媒体流的相对播放时间进行播放;同时,对调整前后的声音之间进行插值,以避免产生尖锐的杂音;所述第四值小于所述第五值。
其中,由于人耳分辨出前后两个声音的条件是前后两个声音到达人耳相差0.1s以上,因此,当音频流对应的同步误差时间大于等于-100ms且小于等于100ms时,认为不同音频流的声音是同步的,因此,可以设置所述第四值为-100ms,设置所述第五值为100ms。
所述进行插值是指:对调整前后的声音数据之间插入平滑过渡的值,使音频流平滑播放。
当所述其它各媒体流中包含字幕流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,具体包括:
当参字幕流对应的同步误差时间在第六值至第七值范围内时,认为与其它媒体流的播放是同步的,无需当前调整;当字幕流对应的同步误差时间不在第六值至第七值范围内时,控制相应的播放设备将字幕流调整到获取的参考媒体流的相对播放时间进行播放,即显示参考媒体流的相对播放时间对应的字幕;所述第六值为当前显示的字幕的起始播放时间,所述第六值为当前显示的字幕的终止播放时间。
其中,由于字幕流具有长时间静态的特点,因此可以利用上述处理方式来使得字幕流与其它媒体流同步。
本实施例提供的媒体在多设备上协同播放的方法,将媒体文件的多个媒体流分别传输至对应的播放设备;根据各媒体流的类型,动态确定参考媒体流;在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间,如此,有效地提高媒体在多设备上协同播放的精度,提升用户体验。
另外,由于是将媒体文件的多个媒体流分别传输至对应的播放设备,如此,能有效地节约网络资源。
除此以外,会话连接建立后,获取各播放设备当前的网络时延;根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间,由于各播放设备采用对应的系统时间,如此,能进一步提升同步的精度,提升用户体验。
实施例二
为实现实施例一的方法,本实施例提供一种媒体在多设备上协同播放的装置,如图2所示,该装置可以包括:媒体流发送模块21、参考媒体流选择模块22以及同步控制模块23;其中,
所述媒体流发送模块21,用于将媒体文件的多个媒体流分别传输至对应的播放设备;
所述参考媒体流选择模块22,用于根据各媒体流的类型,动态确定参考媒体流;
所述同步控制模块23,用于在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。
其中,所述多个媒体流可以视频流、不同声道的音频流、或字幕流等。
所述同步控制模块23,还用于会话连接建立后,获取各播放设备当前的网络时延;并根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间,由于各播放设备采用对应的系统时间,如此,能进一步提升同步的精度,提升用户体验。
所述参考媒体流选择模块22,具体用于:
当各媒体流中有一个音频流时,将所述音频流作为参考流媒体;或者,
当各媒体流中有两个以上音频流时,根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体;或者,
当各媒体流中未有音频流时,根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体。
其中,由于音频的跳跃播放可能导致尖锐刺耳的声音,因此,当各媒体流中有音频流时,要首先选择音频流作为参考媒体流。
所述根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体,具体包括:
所述参考媒体流选择模块22定时获取所述两个以上音频流中各音频流的传输速率;
当未设置参考媒体流时,参考媒体流选择模块22将所述两个以上音频流中传输速率最高的音频流作为参考媒体流;
当设置有参考媒体流时,参考媒体流选择模块22将所述两个以上音频流中除设置的参考媒体流外的其它各音频流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,若差值未超过设置的阈值,则维持现有的参考媒体流不变;若差值超过设置的阈值,则选择所述其它各音频流中传输速率最高的音频流作为参考媒体流。
这里,定时的周期长度可以根据网络实际情况设置;同时,可以根据网络实际情况设置阈值。
所述根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体,具体包括:
参考媒体流选择模块22定时获取各媒体流的传输速率;
当未设置参考媒体流时,参考媒体流选择模块22将各媒体流中传输速率最高的媒体流作为参考媒体流;
当设置有参考媒体流时,参考媒体流选择模块22将所述各媒体流中除设置的参考媒体流外的其它各媒体流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,若差值未超过设置的阈值,则维持现有的参考媒体流不变;若差值超过设置的阈值,则选择所述其它各媒体流中传输速率最高的媒体流作为参考媒体流。
其中,定时的周期长度可以根据网络实际情况设置;可以根据网络实际情况设置阈值。
该装置还可以包括:媒体解析模块,用于将所述媒体文件解析为多个媒体流;
所述媒体流发送模块21,还用于为解析的每个媒体流指定关联的播放设备;并将关联的播放设备绑定为设备组,以便在媒体流的播放过程中更好地控制各播放设备。
其中,所述媒体流发送模块21事先已获知已与哪些播放设备建立了会话连接,从而再根据需要指定每个媒体流所关联的播放设备。
所述同步控制模块23,具体用于:
定时获取各媒体流当前的相对播放时间;所述相对播放时间为相对于播放起始位置的时间;将所述其它各媒体流的相对播放时间减去参考媒体流的相对播放时间,得到同步误差时间;并根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间。
当所述其它各媒体流中包含视频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,具体包括:
当视频流对应的同步误差时间大于第一值且小于等于第二值时,视频流播放完当前帧后,所述同步控制模块23控制相应的播放设备将视频流停留所述对应的同步误差时间后再播放下一帧;当视频流对应的同步误差时间大于所述第二值且小于等于所述第三值时,所述同步控制模块23控制相应的播放设备重复播放视频流的当前帧直至下一次获取传输速率;当视频流对应的同步误差时间大于所述第三值时,所述同步控制模块23控制相应的播放设备将视频流跳回到获取的参考媒体流的相对播放时间进行播放;所述第一值小于所述第二值;所述第二值小于所述第三值。
其中,由于人的眼睛对图像有暂留时间效应(即图片消失后在人的大脑中会暂留100-400ms),因此,可以设置所述第一值为0,所述第二值为250ms,所述第三值为3000ms。
当所述其它各媒体流中包含音频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,具体包括:
当音频流对应的同步误差时间小于第四值或大于第五值时,所述同步控制模块23控制相应的播放设备将音频流跳回到获取的参考媒体流的相对播放时间进行播放;同时,对调整前后的声音之间进行插值,以避免产生尖锐的杂音;所述第四值小于所述第五值。
其中,由于人耳分辨出前后两个声音的条件是前后两个声音到达人耳相差0.1s以上,因此,当音频流对应的同步误差时间大于等于-100ms且小于等于100ms时,认为不同音频流的声音是同步的,因此,可以设置所述第四值为-100ms,设置所述第五值为100ms。
所述进行插值是指:对调整前后的声音数据之间插入平滑过渡的值,使音频流平滑播放。
当所述其它各媒体流中包含字幕流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,具体包括:
当字幕流对应的同步误差时间在第六值至第七值范围内时,所述同步控制模块23认为与其它媒体流的播放是同步的,无需当前调整;当字幕流对应的同步误差时间不在第六值至第七值范围内时,所述同步控制模块23控制相应的播放设备将字幕流调整到获取的参考媒体流的相对播放时间进行播放,即显示参考媒体流的相对播放时间对应的字幕;所述第六值为当前显示的字幕的起始播放时间,所述第六值为当前显示的字幕的终止播放时间。
其中,由于字幕流具有长时间静态的特点,因此可以利用上述处理方式来使得字幕流与其它媒体流同步。
实际应用时,所述媒体流发送模块21、所述参考媒体流选择模块22以及所述同步控制模块23可由媒体在多设备上协同播放的装置中的中央处理器(CPU,CentralProcessingUnit)、微处理器(MCU,MicroControlUnit)、数字信号处理器(DSP,DigitalSignalProcessor)或可编程逻辑阵列(FPGA,Field-ProgrammableGateArray)结合收发机实现;所述媒体解析模块,可由媒体在多设备上协同播放的装置中的CPU、MCU、DSP或FPGA实现。
本实施例提供的媒体在多设备上协同播放的装置,所述媒体流发送模块21将媒体文件的多个媒体流分别传输至对应的播放设备;所述参考媒体流选择模块22根据各媒体流的类型,动态确定参考媒体流;在各媒体流的播放过程中,所述同步控制模块23根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间,如此,有效地提高媒体在多设备上协同播放的精度,提升用户体验。
另外,由于是将媒体文件的多个媒体流分别传输至对应的播放设备,如此,能有效地节约网络资源。
除此以外,会话连接建立后,所述同步控制模块23获取各播放设备当前的网络时延;根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间,由于各播放设备采用对应的系统时间,如此,能进一步提升同步的精度,提升用户体验。
本发明实施例还提供了一种终端,包括图2所示的媒体在多设备上协同播放的装置的基本结构及其各种变形和等同替换,不做赘述。
实施例三
图3为本实施例的架构。如图3所示,本实施例的系统包括:媒体源设备及多个接收设备(即播放设备);其中,
媒体源设备包括:媒体解析模块31、设备组管理与会话连接管理模块32、参考媒体流动态选择模块33以及同步控制模块34,来实现连接、媒体推送、管理、同步策略选择、控制等功能;
接收设备播放媒体源设备发送的媒体流,可以是多种媒体播放设备,如显示屏、音响等。多个接收设备在媒体源设备的管理下可以组成设备组,对用户显示统一的身份标识(ID)。
在媒体源设备中,媒体解析模块31将媒体文件解析为多个媒体流;设备组管理与会话连接管理模块32(与实施例二中的媒体流发送模块的功能相同)为多个媒体流指定对应的接收设备,并将一组指定的接收设备绑定为设备组;当需要推送媒体时,该模块控制媒体源设备与设备组中的接收设备进行连接,并将指定的媒体流传送至相应的接收设备;参考媒体流动态选择模块33动态监听各媒体流的传输质量,选择最优的参考媒体流;同步控制模块34动态获取各媒体流的播放进度,根据其它媒体流与参考媒体流播放进度的差值,计算调整策略,并将各其它媒体流的调整策略反馈给相应的接收设备。
本实施例媒体在多设备上协同播放的方法,如图4所示,主要包括以下步骤:
步骤401:媒体解析、连接管理与会话管理流程;
具体地,媒体解析模块31将媒体解析为多个媒体流;
设备组管理与会话连接管理模块32为每个媒体流指定关联的接收设备;并将媒体流关联的多个接收设备绑定为设备组;
当确定需要媒体推送时,用户通过设备组中的相应接收设备发起媒体推送请求,设备组管理与会话连接管理模块32将媒体源设备分别与设备组的每个设备进行连接;连接成功后,设备组管理与会话连接管理模块32将各媒体流传输至相应的接收设备。
步骤402:参考媒体流动态选择流程;
具体地,由于音频的跳跃播放可能导致尖锐刺耳的声音,因此在有音频流的情况下,参考媒体流动态选择模块33以音频流作为参考媒体流;当有多个音频流时,仅在多个音频流中根据动态选择策略选择最优的音频流作为参考媒体流;没有音频流时,在所有的媒体流中根据动态选择策略选择最优的媒体流作为参考媒体流;其中,动态选择策略如下:
参考媒体流动态选择模块33定时向各接收设备询问各媒体流的传输速率,收到各接收设备的反馈后将各媒体流的传输速率进行对比;
若为第一次查询各媒体流的传输速率,由于此时尚未设置参考媒体流,因此参考媒体流动态选择模块33指定传输速率最高的媒体流作为初始的参考媒体流;
此后每次查询各媒体流的传输速率后,将反馈回来的最高的媒体流传输速率与当前设置的参考媒体流的传输速率作对比,若差值没有超过设定的阈值,则维持现有的参考媒体流不变;若差值超过设定的阈值,则选择传输速率最快的媒体流为参考媒体流。
其中,可以根据需要设置参考媒体流动态选择模块33向各接收设备询问各媒体流的传输速率的周期长度。
每次选择完参考媒体流后,参考媒体流动态选择模块33将选择的参考媒体流的相关信息反馈给同步控制模块34。
这里,需要说明的是:当在多个音频流中选择参考媒体流时,上述动态选择策略中的各媒体流是指:各音频流。
步骤403:同步控制流程。
具体地,同步控制模块34定时(比如3s)向相应的接收设备询问各媒体流当前的相对播放时间(相对于播放起始位置的时间);将其它媒体流的相对播放时间T与参考媒体流的相对播放时间T’进行对比,计算同步误差时间,公式为P=T-T’,并根据同步误差时间,对于不同的其它媒体流,采取不同的调整策略,具体包括:
对于视频流,由于人的眼睛对图像有暂留效时间应(图片消失后在人的大脑中暂留100-400ms),因此若0ms<P≤250ms(去中间值)时,视频流播放完当前帧后,同步控制模块34控制相应的接收设备将视频流停留Pms后再播放下一帧;若250ms<P≤3000ms时,同步控制模块34控制相应的接收设备重复播放视频流的当前帧,直到下一次查询进行对比;若3000ms<P时,同步控制模块34控制相应的接收设备跳回到T’时刻进行播放。
对于音频流,由于人耳分辨出前后两个声音的条件是前后两个声音到达人耳相差0.1s以上,因此当-100ms≤P≤100ms时,认为不同音频流的声音是同步的;当P<-100ms或P>100ms时,同步控制模块34控制相应的接收设备将音频流调整到T’时间进行播放,同时为了避免产生尖锐的杂音,同步控制模块34控制相应的接收设备对调整前后的声音之间进行插值。
对于字幕流,由于字幕流具有长时间静态的特点,因此假设某句字幕的起止相对播放时间为N和N’,参考媒体流的相对播放时间已在N到N’的区间内,则若T在N到N’的区间内,则不调整,等待下一次对比;若T不在此区间内,同步控制模块34控制相应的接收设备调整到T’时间进行播放,以显示相应的字幕。
其中,同步控制模块34询问各媒体流当前的相对播放时间时所发送的查询命令和向相应的接收设备发送的调整策略命令在发送时,附加时间戳a(命令发送时的系统时间);接收设备接收到命令后,首先计算命令的发送时延,计算公式为t’=a’(命令接收时的系统时间)-a。若t’<1s,则认为接收的命令有效;若t’>1s,则认为接收的命令无效,等待下一次命令。
这里,在会话连接建立后,同步控制模块34首先会给每个接收设备发送一条ping命令,查询各接收设备当前的网络时延t;
收到接收设备的反馈后,同步控制模块34立即将基准系统时间S’发送给相应的接收设备,以校准接收设备的系统时间。其中,S’=S(发送此条命令时本机的系统时间)+t/2(媒体源设备命令发送到该接收设备的网络时延,由于无法精确计算,这里只能假设ping命令的上下行链路网络时延一样);接收设备接收到此命令后,将系统时间设置为S’。此时接收设备的系统时间与媒体源设备的系统时间误差在毫秒级,可忽略不计,即所有的接收设备进行了系统时间校准,这样,进一步提升同步的精度,提升用户体验。
本实施例提供的方案,能实现同一媒体文件中的多个媒体流分别在多个接收设备上进行同步播放;并且,由于参考媒体流的动态选择策略以及除参考媒体流外的其它媒体流的调整的优化,使得同步的精度大大提高,从而大大提升了用户体验。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种媒体在多设备上协同播放的方法,其特征在于,所述方法包括:
将媒体文件的多个媒体流分别传输至对应的播放设备;
根据各媒体流的类型,动态确定参考媒体流;
在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。
2.根据权利要求1所述的方法,其特征在于,所述将媒体文件的多个媒体流分别传输至对应的播放设备之前,所述方法还包括:
会话连接建立后,获取各播放设备当前的网络时延;
根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间。
3.根据权利要求1所述的方法,其特征在于,所述根据各媒体流的类型,动态确定参考媒体流,包括:
当各媒体流中有一个音频流时,将所述音频流作为参考流媒体;或者,
当各媒体流中有两个以上音频流时,根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体;或者,
当各媒体流中未有音频流时,根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体。
4.根据权利要求3所述的方法,其特征在于,所述根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体,包括:
定时获取所述两个以上音频流中各音频流的传输速率;
当未设置参考媒体流时,将所述两个以上音频流中传输速率最高的音频流作为参考媒体流;
当设置有参考媒体流时,将所述两个以上音频流中除设置的参考媒体流外的其它各音频流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,确定差值超过设置的阈值时,选择所述其它各音频流中传输速率最高的音频流作为参考媒体流。
5.根据权利要求3所述的方法,其特征在于,所述根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体,包括:
定时获取各媒体流的传输速率;
当未设置参考媒体流时,将各媒体流中传输速率最高的媒体流作为参考媒体流;
当设置有参考媒体流时,将所述各媒体流中除设置的参考媒体流外的其它各媒体流传输速率中的最高传输速率与所述设置的参考媒体流的传输速率进行对比,确定差值超过设置的阈值时,选择所述其它各媒体流中传输速率最高的媒体流作为参考媒体流。
6.根据权利要求1所述的方法,其特征在于,所述根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
定时获取各媒体流当前的相对播放时间;所述相对播放时间为相对于播放起始位置的时间;
将所述其它各媒体流的相对播放时间减去参考媒体流的相对播放时间,得到同步误差时间;
根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间。
7.根据权利要求6所述的方法,其特征在于,当所述其它各媒体流中包含视频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
当视频流对应的同步误差时间大于第一值且小于等于第二值时,控制相应的播放设备视频流播放完当前帧后,将视频流停留所述对应的同步误差时间后再播放下一帧;所述第一值小于所述第二值;或者,
当视频流对应的同步误差时间大于所述第二值且小于等于所述第三值时,控制相应的播放设备重复播放视频流的当前帧直至下一次获取传输速率;所述第二值小于所述第三值;或者,
当视频流对应的同步误差时间大于所述第三值时,控制相应的播放设备将视频流跳回到获取的参考媒体流的相对播放时间进行播放。
8.根据权利要求6所述的方法,其特征在于,当所述其它各媒体流中包含音频流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
当音频流对应的同步误差时间小于第四值或大于第五值时,控制相应的播放设备将音频流跳回到获取的参考媒体流的相对播放时间进行播放;同时,对调整前后的声音之间进行差值;所述第四值小于所述第五值。
9.根据权利要求6所述的方法,其特征在于,当所述其它各媒体流中包含字幕流时,所述根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间,包括:
当参考媒体流的相对播放时间在第六值至第七值范围内,且字幕流对应的同步误差时间不在第六值至第七值范围内时,控制相应的播放设备将字幕流调整到获取的参考媒体流的相对播放时间进行播放;所述第六值为当前显示的字幕的起始播放时间,所述第六值为当前显示的字幕的终止播放时间。
10.根据权利要求1所述的方法,其特征在于,所述将媒体文件的多个媒体流分别传输至对应的播放设备之前,所述方法还包括:
将所述媒体文件解析为多个媒体流;
为解析的每个媒体流指定关联的播放设备;
并将关联的播放设备绑定为设备组。
11.一种媒体在多设备上协同播放的装置,其特征在于,所述装置包括:媒体流发送模块、参考媒体流选择模块以及同步控制模块;其中,
所述媒体流发送模块,用于将媒体文件的多个媒体流分别传输至对应的播放设备;
所述参考媒体流选择模块,用于根据各媒体流的类型,动态确定参考媒体流;
所述同步控制模块,用于在各媒体流的播放过程中,根据确定的参考媒体流以及除参考媒体流外的其它各媒体流的类型,控制相应的播放设备调整所述其它各媒体流的播放时间。
12.根据权利要求11所述的装置,其特征在于,所述同步控制模块,还用于会话连接建立后,获取各播放设备当前的网络时延;并根据所述网络时延,确定各播放设备的基准系统时间,以使各播放设备校准自身的系统时间。
13.根据权利要求11所述的装置,其特征在于,所述参考媒体流选择模块,具体用于:
当各媒体流中有一个音频流时,将所述音频流作为参考流媒体;或者,
当各媒体流中有两个以上音频流时,根据所述两个以上音频流的传输速率,确定所述两个以上音频流中的一个音频流为参考流媒体;或者,
当各媒体流中未有音频流时,根据各媒体流的传输速率,确定各媒体流中的一个媒体流为参考流媒体。
14.根据权利要求11所述的装置,其特征在于,所述同步控制模块,具体用于:
定时获取各媒体流当前的相对播放时间;所述相对播放时间为相对于播放起始位置的时间;将所述其它各媒体流的相对播放时间减去参考媒体流的相对播放时间,得到同步误差时间;并根据所述其它各媒体流的类型及对应的同步误差时间,控制相应的播放设备调整所述其它各媒体流的播放时间。
15.根据权利要求11所述的装置,其特征在于,所述装置还包括:媒体解析模块,用于将所述媒体文件解析为多个媒体流;
所述媒体流发送模块,还用于为解析的每个媒体流指定关联的播放设备;并将关联的播放设备绑定为设备组。
16.一种终端,其特征在于,所述终端包括如权利要求11至15任一项所述的媒体在多设备上协同播放的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410736353.8A CN105721920B (zh) | 2014-12-04 | 2014-12-04 | 一种媒体在多设备上协同播放的方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410736353.8A CN105721920B (zh) | 2014-12-04 | 2014-12-04 | 一种媒体在多设备上协同播放的方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721920A true CN105721920A (zh) | 2016-06-29 |
CN105721920B CN105721920B (zh) | 2019-04-02 |
Family
ID=56144118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410736353.8A Active CN105721920B (zh) | 2014-12-04 | 2014-12-04 | 一种媒体在多设备上协同播放的方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105721920B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411447A (zh) * | 2016-10-08 | 2017-02-15 | 广东欧珀移动通信有限公司 | 播放控制方法、装置及终端 |
CN109804353A (zh) * | 2016-09-16 | 2019-05-24 | 谷歌有限责任公司 | 用于音频和视频内容的管理系统 |
CN115314327A (zh) * | 2021-05-07 | 2022-11-08 | 海信集团控股股份有限公司 | 一种电子设备、智能设备以及智能设备控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1767601A (zh) * | 2005-10-21 | 2006-05-03 | 西安交通大学 | 一种支持多源流媒体的同步播放控制方法 |
US7486658B2 (en) * | 2005-07-29 | 2009-02-03 | Cisco Technology, Inc. | Method and system for media synchronization in QoS-enabled wireless networks |
CN101887739A (zh) * | 2010-06-25 | 2010-11-17 | 华为技术有限公司 | 媒体播放同步的方法及装置 |
CN102883197A (zh) * | 2012-09-28 | 2013-01-16 | 卢泳 | 一种一机多路的模块化电视机 |
-
2014
- 2014-12-04 CN CN201410736353.8A patent/CN105721920B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7486658B2 (en) * | 2005-07-29 | 2009-02-03 | Cisco Technology, Inc. | Method and system for media synchronization in QoS-enabled wireless networks |
CN1767601A (zh) * | 2005-10-21 | 2006-05-03 | 西安交通大学 | 一种支持多源流媒体的同步播放控制方法 |
CN101887739A (zh) * | 2010-06-25 | 2010-11-17 | 华为技术有限公司 | 媒体播放同步的方法及装置 |
CN102883197A (zh) * | 2012-09-28 | 2013-01-16 | 卢泳 | 一种一机多路的模块化电视机 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109804353A (zh) * | 2016-09-16 | 2019-05-24 | 谷歌有限责任公司 | 用于音频和视频内容的管理系统 |
KR20210035345A (ko) * | 2016-09-16 | 2021-03-31 | 구글 엘엘씨 | 오디오 및 비주얼 콘텐츠 관리 시스템 |
KR102338240B1 (ko) * | 2016-09-16 | 2021-12-10 | 구글 엘엘씨 | 오디오 및 비주얼 콘텐츠 관리 시스템 |
US11303591B2 (en) | 2016-09-16 | 2022-04-12 | Google Llc | Management system for audio and visual content |
CN106411447A (zh) * | 2016-10-08 | 2017-02-15 | 广东欧珀移动通信有限公司 | 播放控制方法、装置及终端 |
CN115314327A (zh) * | 2021-05-07 | 2022-11-08 | 海信集团控股股份有限公司 | 一种电子设备、智能设备以及智能设备控制方法 |
CN115314327B (zh) * | 2021-05-07 | 2024-02-06 | 海信集团控股股份有限公司 | 一种电子设备、智能设备以及智能设备控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105721920B (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101971792B1 (ko) | 동영상 플레이 방법 및 장치 | |
CN111418215B (zh) | 媒体客户端、方法、非暂时性数据存储装置 | |
EP2947932B1 (en) | A method and device for synchronizing video live broadcast | |
CN108366283B (zh) | 多设备间的媒体同步播放方法 | |
US10298901B2 (en) | Method for synchronous playback by multiple smart devices, and apparatus | |
CN104269182A (zh) | 一种音频同步播放的方法、装置和系统 | |
US11146611B2 (en) | Lip synchronization of audio and video signals for broadcast transmission | |
CN103686342A (zh) | 网络影片播放的方法及其电子装置 | |
KR102566550B1 (ko) | 복수의 커넥티드 장치 간 디지털 콘텐츠의 재생 동기화를 맞추는 방법 및 이를 이용한 장치 | |
CN109379619A (zh) | 音画同步方法及装置 | |
CN105721920A (zh) | 一种媒体在多设备上协同播放的方法、装置及终端 | |
CN104581340B (zh) | 客户端、流媒体数据接收方法和流媒体数据传输系统 | |
WO2017071670A1 (zh) | 音视频同步方法、装置及系统 | |
WO2017080191A1 (zh) | 基于多屏互动的图片处理方法及系统 | |
CN107959874B (zh) | 音画同步自动校正方法和装置 | |
WO2018188365A1 (zh) | 同步播放方法、装置和系统 | |
JP2020174378A (ja) | 異種ネットワーキング環境におけるメディアレンダリングの同期化 | |
KR102150675B1 (ko) | 시간 정보 변경을 이용한 미디어 서비스 채널 전환 방법 및 장치 | |
JP4364619B2 (ja) | 複数映像時刻同期表示端末、複数映像時刻同期表示方法、プログラム、および記録媒体 | |
CN105263033A (zh) | 一种音视频数据的发送方法、接收方法及装置 | |
US10972878B2 (en) | Method and apparatus for providing unicast based multimedia service | |
TWI660628B (zh) | 多設備間的媒體同步播放方法 | |
KR102150669B1 (ko) | 시간 정보 매칭을 이용한 미디어 서비스 채널 전환 방법 및 장치 | |
US11621023B2 (en) | Media recording system | |
JP2018014683A (ja) | 再生装置、再生指示装置、再生システム、再生装置の制御方法、再生指示装置の制御方法、及び、再生システムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |