一种延时直播方法及系统与流程

文档序号:14253529阅读:835来源:国知局
一种延时直播方法及系统与流程

本发明涉及音视频直播领域,更具体地,涉及一种延时直播方法及系统。



背景技术:

嵌入式录播一体机是为中小型会议提供视频直播、录制和点播的一个设备,会议室空间有限不能容纳所有人参加会议,而某些政府部分、企事业单位的会议很重要,需要把会议精神传达给单位所有人或部分人,就需要录播设备辅助会议录制、直播和点播功能。为了保障会议直播的严肃性,完整性,维护政府部分、企事业单位的形象,避免出现不雅画面或语音,应对突发事件等方面问题就需要用到延时直播技术。

现有的延时直播更多的是应用在电视直播中,主要采用加入延时器设备或硬盘服务器及时对监控里发现的直播中的非法信号,通过远程方式,进行干预处理。与编码、录制和直播的服务分开独立运行。

而在中小型会议室的录播产品中,则还没有一种产品具有延时直播功能,故而无法满足现有的中小型会议室的特定环境下的延时直播需求。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的一种延时直播方法,所述方法包括:

s1、基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在预设的缓冲区中;

s2、当所述流媒体数据存储在所述缓冲区中的时间超过预设的延时时长时,从所述缓冲区中读取所述流媒体数据,以进行延时直播。

其中,步骤s1之前所述方法还包括:

基于获取的流媒体数据码率大小和预设的延时时长,设置所述缓冲区的存储空间大小。

其中,所述方法还包括:

当所述延时直播中断时,从预设的预读存储区中读取预先存储的流媒体数据。

其中,所述数据链表中标识了数据的存储标签,所述存储标签具体包括时间戳以及关键帧标识;所述数据链表对应的数据结构为:

基于预设的数据链表,当获取的流媒体数据存储进所述缓存区中时,记录所述流媒体数据的所述存储标签;

将所述流媒体数据的所述存储标签,作为所述流媒体数据的数据结构。

其中,所述缓冲区包括固定缓存区和动态缓存区,步骤s1包括:

s11、基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在所述固定缓存区中;

s12、若所述流媒体数据未存储完,但所述固定缓存区的存储空间为零时,增加所述动态缓存区,以继续存储所述流媒体数据。

其中,步骤s2包括:

s21、当直播开始时,读取所述流媒体数据的所述存储标签;

s22、若所述流媒体数据其中一帧数据的时间戳记录的时刻与直播时刻的差超过预设的延时时长,则由所述流媒体数据其中一帧数据开始读取所述流媒体数据,以进行延时直播。

其中,步骤s22还包括:

当所述流媒体数据其中一帧数据的时间戳记录的时刻与直播时刻的差超过预设的延时时长,并且

所述流媒体数据其中一帧数据的所述存储标签中含有关键帧标识时,则由所述流媒体数据其中一帧数据开始读取所述流媒体数据,以进行延时直播。

根据本发明的第二方面,提供一种延时直播系统,包括:

存储模块,用于基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在预设的缓冲区中;

播放模块,用于当所述流媒体数据存储在所述缓冲区中的时间超过预设的延时时长时,从所述缓冲区中读取所述流媒体数据,以进行延时直播。

根据本发明的第三方面,提供一种计算机程序产品,包括程序代码,所述程序代码用于执行上述所述的延时直播方法。

根据本发明的第四方面,提供一种非暂态计算机可读存储介质,用于存储如前所述的计算机程序。

本发明提供的延时直播方法及系统,实现了中小型会议室的录播产品的延时直播功能,满足了在某些突发环境下需要使用延时直播的需求,并且本发明可以应用在录播产品内部,无须额外添置设备,减少成本。

附图说明

图1是本发明实施例提供的一种延时直播方法流程图;

图2是本发明实施例提供的一种延时直播系统结构图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1是本发明实施例提供的一种延时直播方法流程图,如图1所示,所述方法包括:

s1、基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在预设的缓冲区中;

s2、当所述流媒体数据存储在所述缓冲区中的时间超过预设的延时时长时,从所述缓冲区中读取所述流媒体数据,以进行延时直播。

现有技术中,在电视直播系统中已经有延时直播的功能,但在中小型会议等私人应用环境下,还没有录播产品能具备延时直播的功能,但是在某些特殊情况下,例如出现不雅画面或语音和信号干扰等特殊事件发生导致直播无法满足需求时,就需要延时直播来帮助用户应对。

而现有的使用在电视直播系统的延时直播功能,其大多采用延时器或硬盘服务器来实现直播延时功能,一般过程为:视频信号通过videoin接口进入延时器,经过a/d转换成数字视频,再经过数字编码转换成数码方式。机器内寄存器对输入的编码进行锁存。当寄存器存满一定数量帧后就会向外输出编码,此时输入端继续输入信号,整个过程为单线程调度,任务单一,不会产生死锁,工作稳定。输出的编码经编码器还原视频信号,并且在数字编码输出端加外同步锁相信号进行时基处理和同步调整还原成正常的数字视频,最后通过d/a转换成模拟信号。音频信号经a/d转换进行延时后,经过d/a直接输出。

而上述应用于电视直播系统的延时直播方法对于中小型会议室的录播产品而言,其成本和设备数量都过高,并且操作繁琐,不利于私人使用,不具备推广和移植性,故而现在亟须一种能应用于中小型会议室的录播产品的延时直播方法。

针对上述现有技术中存在的问题,本发明实施例提供了一种延时直播方法,通过计算机软件在录播产品中的编码和数据处理,实现了录播产品的延时直播。

具体的,s1中,所述预设的数据链表为本发明实施例提供的方便数据操作和有效数据读取而构建的数据链表,根据构建的数据链表中标识的存储标签,能够有效记录数据存储的数据标记,例如:存储时间、存储位置、存储类型等,对应的将存储在缓冲区中的数据按照存储标签对应的数据结构进行表示。

s1中,所述流媒体数据为录播产品采集到音频和/或视频数据进行编码后的数据,所述预设的缓冲区为预先构建的用于缓存的存储空间,一般的,进行编码后的流媒体数据会直接存放进内存中,然后由内存直接进行播放,而在本发明实施例中,编码后的流媒体数据将线存放进缓冲区中,以对数据进行缓存。

s2中,所述预设的延时时长为根据需要延时直播的长短进行设置的,一般的,延时直播不易间隔太长,优选的,本发明实施例将延时时长设置为0-20秒,可以理解的是,当存储在缓冲区的数据的存放时间超过设置的延时时长时,即可判定此时缓存完毕,对应的将对流媒体数据进行解码播放。

从而用户观看到的是延时后的流媒体播放。

在上述实施例的基础上,所述数据链表中标识了数据的存储标签,所述存储标签具体包括时间戳以及关键帧标识;所述数据链表对应的数据结构为:

基于预设的数据链表,当获取的流媒体数据存储进所述缓存区中时,记录所述流媒体数据的所述存储标签;

将所述流媒体数据的所述存储标签,作为所述流媒体数据的数据结构。

进一步的,本发明实施例构建的数据链表主要定义了多种存储标签,分别是数据的存储位置和存储长度、数据类型、时间戳以及关键帧标识,其伪代码如下:

其中,如上述伪代码所示,所述存储标签除了包括时间戳以及关键帧标识,还包括:数据类型、数据起始位置指针和数据长度。

其中,数据起始位置指针表示数据的所述流媒体数据的起始存储在缓冲区的位置,从而在读取时可以确定起始读取位置,所述数据长度表示存储在缓冲区中数据的帧长度,所述数据类型主要用于区分此时流媒体数据是视频数据还是音频数据,所述时间戳是记录数据存储的时间点,所述关键帧标识是用于表示此数据帧是关键帧,从关键帧进行解码输出可以防止播放时出现花屏。

对应的,在进行视频数据和音频数据同时播放时,将根据数据类型和数据对应的时间戳标记进行同步播放。

在上述实施例的基础上,步骤s2包括:

s21、当直播开始时,读取所述流媒体数据的所述存储标签;

s22、若所述流媒体数据其中一帧数据的时间戳记录的时刻与直播时刻的差超过预设的延时时长,则由所述流媒体数据其中一帧数据开始读取所述流媒体数据,以进行延时直播。

可以理解的是,根据上述实施例提供的存储标签记录的内容,可以从中获取数据存储进缓冲区的时间,这个时间是根据所述流媒体数据其中一帧数据的所述存储标签中时间戳的时间与直播时刻的差来确定的,若述流媒体数据其中一帧数据的所述存储标签中时间戳的时间与直播时刻的差超过预设的延时时长,则由所述流媒体数据其中一帧数据开始读取所述流媒体数据,以进行延时直播。

在上述实施例的基础上,步骤s22还包括:

当所述流媒体数据其中一帧数据的时间戳记录的时刻与直播时刻的差超过预设的延时时长,并且

所述流媒体数据其中一帧数据的所述存储标签中含有关键帧标识时,则由所述流媒体数据其中一帧数据开始读取所述流媒体数据,以进行延时直播。

可以理解的是,播放视频需要从关键帧开始进行解码,如果不是关键帧,那么播放的视频将会出现花屏,故而在保证所述流媒体数据其中一帧数据的时间戳记录的时刻与直播时刻的差超过预设的延时时长的同时,还需要保证所述流媒体数据其中一帧数据的所述存储标签中含有关键帧标识,那么此时播放将是由关键帧开始,播放质量得到了提高。

在上述实施例的基础上,步骤s1之前所述方法还包括:

基于获取的流媒体数据码率大小和预设的延时时长,设置所述缓冲区的存储空间大小。

进一步的,所述缓冲区包括固定缓存区和动态缓存区,步骤s1包括:

基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在所述固定缓存区中;

若所述流媒体数据未存储完,但所述固定缓存区的存储空间为零时,增加所述动态缓存区,以继续存储所述流媒体数据。

可以理解的是,为了有效利用录播产品的内存,本发明实施例采用的是动态播放机制,即将缓冲区分为固定缓存区和动态缓存区,那么首先会将获取的流媒体数据存放进固态缓存区中,当固态缓存区填满并且流媒体数据还有剩余时,再分配动态缓存区继续对流媒体数据进行存储。

例如:首先会分配一个2mb的固态缓存区,如果流媒体数据的大小在3mb,那么固态缓存区的大小不足以容纳全部的流媒体数据,那么将增加一个1mb的动态缓存区用于继续存储。

进一步的,若流媒体数据的大小在4mb,那么动态缓存区将分两次增加,每次增加一个1mb大小的动态缓存区。

这样的分配方案可以最大程度上的节约内存资源并且做到合理缓存数据。

需要说明的是,本发明实施例不能无止境的增加动态缓存区,一般的,每次动态的增加1mb的动态缓冲区,最多增加5mb的动态缓冲区。

可以理解的是,本发明实施例提供的固态缓存区和增加的动态缓存区大小只是本发明实施例提供的优选数值,具体的缓存区大小是根据流媒体数据码率大小和预设的延时时长进行计算的。

例如:若嵌入式录播一体机设备编码1080p30fps视频时平均码率是2mb,所以20秒缓冲的数据大小是:视频缓冲区大小=2/8*20=5(mb)。若音频码率是80kbs-320kbs,所以20秒缓冲的数据大小是:音频缓冲区大小(最低)=80/8*20=100(kb),音频缓冲区大小(最高)=320/8*20=800(kb),故而视频和音频数据一共在此实施例中需要占用7mb的内存,故而设置固态缓存区为2mb,动态缓存区一共5mb,分5次进行增加。

在上述实施例的基础上,所述方法还包括:

当所述延时直播中断时,从预设的预读存储区中读取预先存储的流媒体数据。

可以理解的是,当发生突发状况时,直播可能会发生中断,而中断时是无法进行延时直播的,这样会对用户的体验造成影响,为了应对此种特殊状况的发生,本发明实施例提供的方法可以在中断后可以提供固定的提示画面或其它视频。

具体的,除了设置有缓冲区之外,本发明实施例还设置了一个预读存储区,所述预读存储区预读了图像数据或30帧视频数据,一般的,此预读存储区占用2mb内存。

那么,在正常进行延时直播时,客户端获取的是延时直播缓冲区中读取的数据,一旦发生了直播中断现象,即可从所述预读存储区中获取预读的图像数据或30帧视频数据进行播放。

图2是本发明实施例提供的一种延时直播系统结构图,如图2所示,一种隐私数据保护系统,包括:存储模块1和播放模块2其中:

存储模块1用于基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在预设的缓冲区中;

播放模块2用于当所述流媒体数据存储在所述缓冲区中的时间超过预设的延时时长时,从所述缓冲区中读取所述流媒体数据,以进行延时直播。

具体的,存储模块1通过动态缓存机制对获取的流媒体数据按照预设的数据结构进行存储,方便对数据进行读取和记录,播放模块2通过数据结构中时间戳记录的存储时间,从而判断数据存储的时长是否超过了预设的延时时长,若超过了,则从所述缓冲区中读取所述流媒体数据,以进行延时直播。

本发明实施例提供一种延时直播系统,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令以执行上述各方法实施例所提供的方法,例如包括:s1、基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在预设的缓冲区中;s2、当所述流媒体数据存储在所述缓冲区中的时间超过预设的延时时长时,从所述缓冲区中读取所述流媒体数据,以进行延时直播。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:s1、基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在预设的缓冲区中;s2、当所述流媒体数据存储在所述缓冲区中的时间超过预设的延时时长时,从所述缓冲区中读取所述流媒体数据,以进行延时直播。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:s1、基于预设的数据链表,将获取的流媒体数据按照所述数据链表对应的数据结构存储在预设的缓冲区中;s2、当所述流媒体数据存储在所述缓冲区中的时间超过预设的延时时长时,从所述缓冲区中读取所述流媒体数据,以进行延时直播。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1