一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在多终端之间实现同步播放的播出系统和方法与流程

2022-03-05 03:09:26 来源:中国专利 TAG:


1.本发明属于流媒体制作与播放技术领域,具体涉及一种在多终端之间实现同步播放的播出系统和方法。


背景技术:

2.在播放同一个节目源时,如果通过多个不同类型的智能终端设备播放,用户往往希望能实现同步播放,即任意时刻在不同播出设备上,看到的画面是同步的。
3.一般来说,要实现终端间的画面同步,每个终端都需要清楚的知道,在共同的参考时钟c时刻,需要播放原始时间戳为t的画面,这样画面就是同步的。原始时间戳指的是在生产环节中,音视频数据生产者按照播放效果而定义共同参考时间轴,如图1所示,音频帧0~音频帧m按时间顺序排列,视频帧0~视频帧n也按时间排列。但实际上,参见图2,由于流媒体的传输往往经过很多环节,包括内容生产(1个音频数据和1个视频数据)、格式封装(2路)、分发渠道(3路)和播放终端(3路)等,面临的问题有:
4.(1)不同终端上,时钟并不能实现精确的同步,也就是说缺乏用于实现同步的共同参考时钟c;如果要实现精确授时,终端的成本会增加。
5.(2)时间戳是当前视频技术中标识视频帧的最重要手段。但在实际使用环境中,同一个内容往往会封装成不同的封装格式再进行分发,由于不同的封装格式对于时间的表达方式往往不一样,也就是说,生产环节时的时间戳为t的帧,到了封装完后,根据封装格式的定义不同,会进行不同形式的变换,举例来说,有的会变成从0开始的递增数字,有的会更改时间单位,有的会因为数据精度的原因产生溢出等等),导致终端无法根据时间戳找到对应的视频帧。
6.(3)分发环节会产生无法预测的延时,导致同一帧数据到达终端的时间先后差别可能很大。
7.以上因素导致在不同终端设备上播出的内容有快有慢,无法实现同步。


技术实现要素:

8.本发明要解决的技术问题是提供一种在多终端之间实现同步播放的播出方法和系统,用于在不需要对终端进行精确授时同步的前提下,尽可能的消除多终端之间的播放时间差。
9.为解决上述技术问题,本发明采用如下的技术方案:
10.本发明实施例一方面提供一种在多终端之间实现同步播放的播出方法,其特征在于,包括以下步骤:
11.s1,源端内容标记参考时间戳步骤,用于确保终端在接收到数据后,对于每一帧音频和视频数据,以直接或者通过转换的方式准确的还原得到音频和视频数据的参考时间戳;
12.s2,连接同步服务器,判断是否连接成功,若没有连接成功,提示错误;若连接成
功,进行终端播放;
13.s3,主终端播放步骤,主终端开始播放后,向同步服务上报当前播放进度和状态信息;
14.s4,从终端播放步骤,从终端开始播放时,先从同步服务拉取主终端当前的播放进度和状态信息,同时拉取媒体流,随后按照与主终端同步播放的目标设定启动播放的数据偏移,开始播放。
15.优选地,s1中,在封装环节,在媒体封装格式中为每一帧音视频数据分别附上其原始的参考时间戳,参考时间戳满足按播出顺序连续递增。
16.优选地,s1中,在码流中周期性的打上参考时间戳,终端利用封装格式本身定义的时间戳计算还原得到某一帧对应的参考时间戳。
17.优选地,s3中,主终端以一定的时间间隔发送状态信息。
18.优选地,s3中,主终端在状态发生变更时发送状态信息。
19.本发明实施例又一方面提供一种在多终端之间实现同步播放的播出系统,包括内容制作端、同步服务器、主终端和至少一个从终端,
20.内容制作端用于进行源端参考时间戳内容标记,确保终端在接收到数据后,对于每一帧音频和视频数据,以直接或者通过转换的方式准确的还原得到音频和视频数据的参考时间戳;
21.同步服务器用于与主终端和从终端进行连接,连接成功后,进行终端播放;
22.主终端用于在开始播放后,向同步服务上报当前播放进度和状态信息;
23.从终端用于在开始播放时,先从同步服务器拉取对应主终端当前的播放进度和状态信息,同时拉取媒体流,随后按照与主终端同步播放的目标设定启动播放的数据偏移,开始播放。
24.优选地,内容制作端中,在封装环节,在媒体封装格式中为每一帧音视频数据分别附上其原始的参考时间戳,参考时间戳满足按播出顺序连续递增。
25.优选地,内容制作端中,在码流中周期性的打上参考时间戳,终端利用封装格式本身定义的时间戳计算还原得到某一帧对应的参考时间戳。
26.优选地,主终端以一定的时间间隔发送状态信息。
27.优选地,主终端在状态发生变更时发送状态信息。
28.采用本发明具有如下的有益效果:
29.(1)可以实现不同类型终端、不同分发渠道的流媒体同步播出;
30.(2)可以实现跨终端的互动(包括但不限于字幕、广告等)。
附图说明
31.图1为现有技术中音视频帧设置参考时间的示意图;
32.图2为现有技术中音视频内容常见的生产、分发、消费流程示意;
33.图3为本发明实施例的在多终端之间实现同步播放的播出方法的步骤流程图;
34.图4为本发明实施例的在多终端之间实现同步播放的播出方法的数据流程图;
35.图5为本发明实施例的在多终端之间实现同步播放的播出系统的结构示意图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.参见图3,所示为本发明实施例的在多终端之间实现同步播放的播出方法,包括以下步骤:
38.s1,源端内容标记时间戳步骤,用于确保终端在接收到数据后,对于每一帧音频和视频数据,以直接或者通过转换的方式准确的还原得到音频和视频数据的参考时间戳;
39.s2,连接同步服务器步骤,判断是否连接成功,若没有连接成功,提示错误;若连接成功,进行终端播放;通过连接同步服务器,使得主终端和从终端可以进行同步播放的调节。
40.s3,主终端播放步骤,主终端开始播放后,向同步服务上报当前播放进度和状态信息;
41.s4,从终端播放步骤,从终端开始播放时,先从同步服务拉取主终端当前的播放进度和状态信息,同时拉取媒体流,随后按照与主终端同步播放的目标设定启动播放的数据偏移,开始播放。
42.在s1中,此时参考间戳将作为不同终端之间的共同参照。生成的内容可以通过常规的内容分发渠道(如cdn)进行分发。对于参考时间戳的设置,可以选择不同的方式。
43.本发明一实施例中,时间戳的设置方式为:在封装环节,在媒体封装格式中为每一帧音视频数据分别附上其原始的参考时间戳t,此时间戳在符合封装格式规范的同时,参考时间戳同时满足按播出顺序连续递增的条件。如果封装格式无法为每一帧都附上参考时间戳,那么也可以用一些优化的方法。
44.本发明又一实施例中,参考时间戳的设置方式为:在码流中周期性的打上参考时间戳t,终端可利用封装格式本身定义的时间戳(为区分原始参考时间戳,下文用p表示)来计算还原得到某一帧对应的参考时间戳。例如,视频帧序列f0,f1,f2,f3,f4,f5,已知f0时间戳为p0且其对应的参考时间戳为t0,那么视频帧f5(时间戳为p5)对应的参考时间戳t5=t0 (p
5-p0)。
45.在s3和s4中,播放进度包括当前播放的音视频帧在封装格式中所对应的标记信息(参考时间戳)和当前终端设备的时钟等。播放状态信息包括播放、缓冲、暂停等对播放进度产生明显影响的事件。
46.本发明实施例中,终端可以选择以一定的时间间隔发送播放状态,以减少与服务器间的数据传输量。在本发明其他实施例中,也可以选择仅当播放状态发生变更(如:播放暂停、播放速度发生变化、播放恢复正常等)时发送,以进一步的减少数据量。
47.本发明实施例中,s4,在进行同步判断的过程中,由于视频处理的每一步都需要消耗一定的时间,并且在不同的终端设备上所耗时有所不同,因此终端需要首先对自身音视频处理流程上各个模块的耗时进行一个性能测试,以取得每个模块的精确耗时数据。根据这些数据,对于任意给定时间戳的数据帧,都可以计算出其处理及渲染的整体耗时,从而为精确定点播放提供了直接依据;每个终端也应取得与同步服务之间的交互耗时;根据这些
因素,在进行定位时,加入对应的提前量处理。参见图4,具体实现过程如下:主终端向同步服务器上报状态,包括:

播放位置p0、本地时钟ta(0)和播放状态s0;

同步服务器将以下信息记录到数据库,包括主播放端、收到消息时的同步服务器本机时钟tb(0)、主终端时钟ta(0)、主终端播放状态s0、主终端延时rtt0;

从终端估算本机的播放延时δ1;

从终端请求主终端的状态,记录当前本机时钟为 tc(0);

同步服务器记录收到请求的时间tb(1);

同步服务器从数据库读取数据,记录发送请求的时间tb(2);

从终端记录收到回复的时间tc(1),计算出从终端延时rtt1=((tc(1)-tc(0))-(tb(2)-tb(1)))/2,同时计算出本从终端应该请求播放的时间点p1=p0 rtt0 (tb(2)-tb(0)) rtt1,播放延时p1’=p1-δ1;

p1’和tc(1)分别作为流时间戳起点和本地时钟的起点用于后续播放过程中校验判断进度是否正确。
48.与本发明方法实施例对应的,参见图5,所示为本发明实施例的一种在多终端之间实现同步播放的播出系统,包括内容制作端、流媒体服务器、同步服务器、主终端和至少一个从终端,其中内容制作端用于进行源端参考时间戳标记,确保终端在接收到数据后,对于每一帧音频和视频数据,以直接或者通过转换的方式准确的还原得到音频和视频数据的参考时间戳;流媒体服务器用于把内容从内容制作端传输到终端;同步服务器用于与主终端和从终端进行连接,连接成功后,进行终端播放;主终端用于在开始播放后,向同步服务上报当前播放进度和状态信息;从终端用于在开始播放时,先从同步服务器拉取对应主终端当前的播放进度和状态信息,同时拉取媒体流,随后按照与主终端同步播放的目标设定启动播放的数据偏移,开始播放。
49.本发明一实施例中,参考时间戳的设置方式为:在封装环节,在媒体封装格式中为每一帧音视频数据分别附上其原始的参考时间戳t,此时间戳在符合封装格式规范的同时,参考时间戳同时满足按播出顺序连续递增的条件。如果封装格式无法为每一帧都附上参考时间戳,那么也可以用一些优化的方法。
50.本发明又一实施例中,参考时间戳的设置方式为:在码流中周期性的打上参考时间戳t,终端可利用封装格式本身定义的时间戳(为区分原始参考时间戳,下文用p表示)来计算还原得到某一帧对应的参考时间戳。例如,视频帧序列f0,f1,f2,f3,f4,f5,已知f0时间戳为p0且其对应的参考时间戳为t0,那么视频帧f5(时间戳为p5)对应的参考时间戳t5=t0 (p
5-p0)。
51.在主终端和从终端中,播放进度包括当前播放的音视频帧在封装格式中所对应的标记信息(参考时间戳)和当前终端设备的时钟等。播放状态信息包括播放、缓冲、暂停等对播放进度产生明显影响的事件。
52.本发明实施例中,终端可以选择以一定的时间间隔发送播放状态,以减少与服务器间的数据传输量。在本发明其他实施例中,也可以选择仅当播放状态发生变更(如:播放暂停、播放速度发生变化、播放恢复正常等)时发送,以进一步的减少数据量。
53.本发明实施例中,从终端播放过程中,在进行同步判断的过程中,由于视频处理的每一步都需要消耗一定的时间,并且在不同的终端设备上所耗时有所不同,因此终端需要首先对自身音视频处理流程上各个模块的耗时进行一个性能测试,以取得每个模块的精确耗时数据。根据这些数据,对于任意给定时间戳的数据帧,都可以计算出其处理及渲染的整体耗时,从而为精确定点播放提供了直接依据;每个终端也应取得与同步服务之间的交互
耗时;根据这些因素,在进行定位时,加入对应的提前量处理。参见图4,具体实现过程如下:主终端向同步服务器上报状态,包括:

播放位置p0、本地时钟ta(0)和播放状态 s0;

同步服务器将以下信息记录到数据库,包括主播放端、收到消息时的同步服务器本机时钟tb(0)、主终端时钟ta(0)、主终端播放状态s0、主终端延时 rtt0;

从终端估算本机的播放延时δ1;

从终端请求主终端的状态,记录当前本机时钟为tc(0);

同步服务器记录收到请求的时间tb(1);

同步服务器从数据库读取数据,记录发送请求的时间tb(2);

从终端记录收到回复的时间tc(1),计算出从终端延时rtt1=((tc(1)-tc(0))-(tb(2)-tb(1)))/2,同时计算出本从终端应该请求播放的时间点p1=p0 rtt0 (tb(2)-tb(0)) rtt1,播放延时 p1’=p1-δ1;

p1’和tc(1)分别作为流时间戳起点和本地时钟的起点用于后续播放过程中校验判断进度是否正确。
54.应用实施例1:先后开始播放
55.终端a开始播放节目源(即a作为主终端),并开始定时向同步服务上报播放进度(包含:当前播放的音视频帧在封装格式中所对应的时间戳;当前终端的系统时钟;当前终端的播放状态等);
56.终端b(b为从终端)选择播放同一个节目源并要求与a同步;
57.b从同步服务器获取到a的播放进度,并且根据a的进度信息计算得到起播点进行播放
58.b播放过程中持续接收来自a的播放进度,并保证与a的音画同步。
59.应用实施例2:播放中途同步
60.两个终端(a、b)独立开始播放同一个直播节目源,并开始定时向同步服务器上报播放进度(包含:当前播放的音视频帧在封装格式中所对应的时间戳;当前终端的系统时钟;当前终端的播放状态等);
61.其中b终端(从终端)中途设定为跟随a终端(主终端);
62.b从同步服务器获取到a的播放进度,并且根据a的进度信息对当前播放进度进行调整,以保证与a的音画同步;
63.b播放过程中持续接收来自a的播放进度,并保证与a的音画同步。
64.应用实施例3:播放过程中,a的播放出现中断或者其它形式的变化
65.两个终端(a为主终端、b为从终端)同步播放同一个节目源,并开始定时向同步服务上报播放进度(包含:当前播放的音视频帧在封装格式中所对应的时间戳;当前终端的系统时钟;当前终端的播放状态等);
66.终端a上播放暂停,a向同步服务器上报播放状态为暂停;
67.同步服务器通知终端b,b也立即暂停;
68.终端a上播放恢复,b向同步服务器上报播放状态;
69.同步服务器通知终端b,b再根据当前a的播放进度,从指定位置开始播放。
70.应用实施例4:多个从终端
71.终端a、b独立开始播放同一个直播节目源,并开始定时向同步服务器上报播放进度(包含:当前播放的音视频帧在封装格式中所对应的时间戳;当前终端的系统时钟;当前终端的播放状态等);
72.终端b中途设定为跟随终端a的从终端,从同步服务器获取到a的播放进度,并且持
续的根据a的进度信息对当前播放进度进行调整,以保证与a的音画同步;
73.终端c设定为跟随终端a,从同步服务器获取到a的播放进度,并且根据 a的进度信息设定开始播放的位置,以保证与a的音画同步;播放过程中,持续保持同步操作。
74.应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献