直播过程中的信息显示方法与流程

文档序号:11657819阅读:1037来源:国知局
直播过程中的信息显示方法与流程

本发明涉及直播领域,特别涉及一种直播过程中的信息显示方法及装置。



背景技术:

直播,也即终端实时采集视频并将该视频实时通过流媒体服务器发送给其他终端,以使其他用户可以通过该其他终端实时观看该视频。其中,当直播过程中播放如歌曲或电影等多媒体文件时,为了丰富直播的显示内容,其他终端在播放该多媒体文件时,还可以在当前播放界面显示该多媒体文件对应的提示信息,如歌词或字幕,且显示的提示信息需与多媒体文件的播放保持同步。

为了便于说明,将进行视频直播的终端称为推流客户端,将播放直播视频的终端称为拉流播放器端。目前,视频直播主要是基于rtmp(realtimemessagingprotocol,实时消息传输协议)协议完成的,但是rtmp协议不提供对上述多媒体文件对应的提示信息传输的直接支持,因此为了实现直播视频时拉流播放器端显示的提示信息与对应的多媒体文件保持同步,推流客户端在进行视频直播时,将该多媒体文件在当前播放进度对应的提示信息转换为图像,并将转换后的图像和当前直播产生的第一视频帧进行合成得到第二视频帧,将第二视频帧通过流媒体服务器发送给拉流播放器端。拉流播放器端在接收到第二视频帧时,基于第二视频帧进行直播画面和提示信息的显示,并通过rtmp协议保持第二视频帧和对应的音频帧同步。由于第二视频帧包括该多媒体文件在当前播放进度对应的提示信息,以此实现显示的提示信息和对应的多媒体文件保持同步。例如,可以实现直播视频中播放的歌曲和显示的歌词保持同步。

由于上述拉流播放器端接收到的第二视频帧是由第一视频帧和上述多媒体文件在当前播放进度对应的提示信息转换后的图像合成得到,也即,在拉流播放器端显示的当前界面中,第一视频帧和该多媒体文件在当前播放进度对应的提示信息为一个整体,导致其他用户不能单独对该多媒体文件在当前播放进度对应的提示信息执行任何操作,严重降低了直播过程中显示信息的灵活性。



技术实现要素:

为了解决现有技术中其他用户不能单独对多媒体文件在当前播放进度时的提示信息执行任何操作的问题,本发明实施例提供了一种直播过程中的信息显示方法。所述技术方案如下:

第一方面,提供了一种直播过程中的信息显示方法,该直播过程中的信息显示方法应用于推流客户端,所述方法包括:

获取当前进行直播产生的视频帧,并向流媒体服务器发送所述视频帧,以使所述流媒体服务器将所述视频帧发送给拉流播放器端;

当在直播过程播放多媒体文件时,每隔预设时间段获取所述多媒体文件的文件标识和所述多媒体文件的播放进度;

将所述多媒体文件的文件标识和所述多媒体文件的播放进度进行封装,得到伪视频帧;

向所述流媒体服务器发送所述伪视频帧,以使所述流媒体服务器将所述伪视频帧发送给所述拉流播放器端,由所述拉流播放器端在通过所述视频帧播放直播视频的过程中,根据所述伪视频帧显示所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述向流媒体服务器发送所述视频帧之前,还包括:

确定采集所述视频帧时的系统时间,以及确定所述推流客户端获取到所述视频帧的获取时间;

将所述系统时间转换为第一时间戳,将所述推流客户端获取到所述视频帧的获取时间转换为第二时间戳;

将所述视频帧、所述第一时间戳和所述第二时间戳进行封装并编码,得到编码后的视频帧;

相应地,所述向流媒体服务器发送所述视频帧,包括:

将所述编码后的视频帧发送给所述流媒体服务器。

可选地,所述将所述多媒体文件的文件标识和所述多媒体文件的播放进度进行封装,得到伪视频帧之后,还包括:

确定在当前时间之前且距离当前时间最近一次向所述流媒体服务器发送视频帧时所发送的第一时间戳和第二时间戳;

确定所述多媒体文件的文件标识和所述多媒体文件的播放进度的获取时间,将所述多媒体文件的文件标识和所述多媒体文件的播放进度的获取时间转换为第三时间戳;

将所述第二时间戳和所述第三时间戳之间的差值与所述第一时间戳相加,得到所述伪视频帧的时间戳,所述伪视频的时间戳用于指示所述多媒体文件的播放进度的获取时间;

相应地,所述向所述流媒体服务器发送所述伪视频帧,包括:

向所述流媒体服务器发送所述伪视频帧和所述伪视频帧的时间戳。

可选地,所述每隔预设时间段获取所述多媒体文件的文件标识和所述多媒体文件的播放进度,包括:

当所述多媒体文件不是所述推流客户端中预先存储的文件时,每隔所述预设时间段,从已接收的所述多媒体文件的音频帧中,按照音频帧的接收时间从晚到早的顺序,获取预设个数的音频帧;

将获取的音频帧进行合成,得到音频信息;

向音频识别服务器发送音频查询请求,所述音频查询请求携带所述音频信息;

接收所述音频识别服务器基于所述音频信息确定的多媒体文件的文件标识和播放进度。

第二方面,提供了另一种直播过程中的信息显示方法,该直播过程中的信息显示方法应用于拉流播放器端,所述方法包括:

接收流媒体服务器发送的视频帧,并基于所述视频帧进行直播画面的显示,所述视频帧为推流客户端在当前进行直播时获取并向所述流媒体服务器发送的视频帧;

在所述直播画面的显示过程中接收所述流媒体服务器发送的伪视频帧,所述伪视频帧为所述推流客户端在当前直播过程播放所述多媒体文件时每隔预设时间段将所述多媒体文件的文件标识和所述多媒体文件的播放进度进行封装得到;

根据所述伪视频帧,获取多媒体文件在所述播放进度时对应的提示信息,并在所述直播画面的图层上方显示所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述根据所述伪视频帧,获取多媒体文件在所述播放进度时对应的提示信息,包括:

对所述伪视频帧进行解析,得到所述多媒体文件的文件标识和所述多媒体文件的播放进度;

根据所述多媒体文件的文件标识,判断所述拉流播放器端中是否存储有所述多媒体文件的提示文件;

当所述拉流播放器端中存储有所述多媒体文件的提示文件时,从所述多媒体文件的提示文件中获取所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述根据所述多媒体文件的文件标识,判断所述拉流播放器端中是否存储有所述多媒体文件的提示文件之后,还包括:

当所述拉流播放器端中没有存储所述多媒体文件的提示文件时,根据所述多媒体文件的文件标识,向文件下载服务器发送文件下载请求,所述文件下载请求携带所述多媒体文件的文件标识;

接收所述文件下载服务器基于所述多媒体文件的文件标识发送的提示文件;

从接收到的提示文件中获取所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述当接收到所述流媒体服务器发送的伪视频帧之后,还包括:

将所述伪视频帧存储至伪视频帧列表中,所述伪视频帧列表用于缓存接收到的伪视频帧;

相应地,所述根据所述伪视频帧,获取多媒体文件在播放进度时对应的提示信息,包括:

从所述伪视频帧列表中,查找与所述视频帧同步的伪视频帧;

根据查找到的伪视频帧,获取所述多媒体文件在所述播放进度时对应的提示信息。

可选地,在接收所述视频帧时还接收到第一时间戳,所述第一时间戳为所述推流客户端将采集所述视频帧时的系统时间转换得到;

在接收所述伪视频帧时还接收到所述伪视频帧的时间戳,所述伪视频的时间戳用于指示所述多媒体文件的播放进度的获取时间;

相应地,所述从所述伪视频帧列表中,查找与所述视频帧同步的伪视频帧,包括:

从所述伪视频帧列表中获取伪视频帧的时间戳和在接收所述视频帧时接收到的所述第一时间戳之间差值最小的伪视频帧;

将获取到的伪视频帧确定为与所述视频帧同步的伪视频帧。

第三方面,提供了一种直播过程中的信息显示装置,应用于推流客户端,所述装置包括:

第一发送模块,用于获取当前进行直播产生的视频帧,并向流媒体服务器发送所述视频帧,以使所述流媒体服务器将所述视频帧发送给拉流播放器端;

获取模块,用于当在直播过程播放多媒体文件时,每隔预设时间段获取所述多媒体文件的文件标识和所述多媒体文件的播放进度;

封装模块,用于将所述多媒体文件的文件标识和所述多媒体文件的播放进度进行封装,得到伪视频帧;

第二发送模块,用于向所述流媒体服务器发送所述伪视频帧,以使所述流媒体服务器将所述伪视频帧发送给所述拉流播放器端,由所述拉流播放器端在通过所述视频帧播放直播视频的过程中,根据所述伪视频帧显示所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述装置包括:

第一确定模块,用于确定采集所述视频帧时的系统时间,以及确定所述推流客户端获取到所述视频帧的获取时间;

转换模块,用于将所述系统时间转换为第一时间戳,将所述推流客户端获取到所述视频帧的获取时间转换为第二时间戳;

编码模块,用于将所述视频帧、所述第一时间戳和所述第二时间戳进行封装并编码,得到编码后的视频帧;

相应地,所述第一发送模块还用于:

将所述编码后的视频帧发送给所述流媒体服务器。

可选地,所述装置还包括:

第二确定模块,用于确定在当前时间之前且距离当前时间最近一次向所述流媒体服务器发送视频帧时所发送的第一时间戳和第二时间戳;

第三确定模块,用于确定所述多媒体文件的文件标识和所述多媒体文件的播放进度的获取时间,将所述多媒体文件的文件标识和所述多媒体文件的播放进度的获取时间转换为第三时间戳;

相加模块,用于将所述第二时间戳和所述第三时间戳之间的差值与所述第一时间戳相加,得到所述伪视频帧的时间戳,所述伪视频的时间戳用于指示所述多媒体文件的播放进度的获取时间;

相应地,所述第二发送模块还用于:

向所述流媒体服务器发送所述伪视频帧和所述伪视频帧的时间戳。

可选地,所述获取模块包括:

获取单元,用于当所述多媒体文件不是所述推流客户端中预先存储的文件时,每隔所述预设时间段,从已接收的所述多媒体文件的音频帧中,按照音频帧的接收时间从晚到早的顺序,获取预设个数的音频帧;

合成单元,用于将获取的音频帧进行合成,得到音频信息;

发送单元,用于向音频识别服务器发送音频查询请求,所述音频查询请求携带所述音频信息;

接收单元,用于接收所述音频识别服务器基于所述音频信息确定的多媒体文件的文件标识和播放进度。

第四方面,提供了另一种直播过程中的信息显示装置,应用于拉流播放器端,所述装置包括:

第一接收模块,用于接收流媒体服务器发送的视频帧,并基于所述视频帧进行直播画面的显示,所述视频帧为推流客户端在当前进行直播时获取并向所述流媒体服务器发送的视频帧;

第二接收模块,用于在所述直播画面的显示过程中接收所述流媒体服务器发送的伪视频帧,所述伪视频帧为所述推流客户端在当前直播过程播放所述多媒体文件时每隔预设时间段将所述多媒体文件的文件标识和所述多媒体文件的播放进度进行封装得到;

获取模块,用于根据所述伪视频帧,获取多媒体文件在所述播放进度时对应的提示信息,并在所述直播画面的图层上方显示所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述获取模块包括:

解析单元,用于对所述伪视频帧进行解析,得到所述多媒体文件的文件标识和所述多媒体文件的播放进度;

判断单元,用于根据所述多媒体文件的文件标识,判断所述拉流播放器端中是否存储有所述多媒体文件的提示文件;

第一获取单元,用于当所述拉流播放器端中存储有所述多媒体文件的提示文件时,从所述多媒体文件的提示文件中获取所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述获取模块还包括:

发送单元,用于当所述拉流播放器端中没有存储所述多媒体文件的提示文件时,根据所述多媒体文件的文件标识,向文件下载服务器发送文件下载请求,所述文件下载请求携带所述多媒体文件的文件标识;

接收单元,用于接收所述文件下载服务器基于所述多媒体文件的文件标识发送的提示文件;

第二获取单元,用于从接收到的提示文件中获取所述多媒体文件在所述播放进度时对应的提示信息。

可选地,所述装置还包括:

存储模块,用于将所述伪视频帧存储至伪视频帧列表中,所述伪视频帧列表用于缓存接收到的伪视频帧;

相应地,所述获取模块包括:

查找单元,用于从所述伪视频帧列表中,查找与所述视频帧同步的伪视频帧;

第三获取单元,用于根据查找到的伪视频帧,获取所述多媒体文件在所述播放进度时对应的提示信息。

可选地,在接收所述视频帧时还接收到第一时间戳,所述第一时间戳为所述推流客户端将采集所述视频帧时的系统时间转换得到;

在接收所述伪视频帧时还接收到所述伪视频帧的时间戳,所述伪视频的时间戳用于指示所述多媒体文件的播放进度的获取时间;

相应地,所述查找单元还用于:

从所述伪视频帧列表中获取伪视频帧的时间戳和在接收所述视频帧时接收到的所述第一时间戳之间差值最小的伪视频帧;

将获取到的伪视频帧确定为与所述视频帧同步的伪视频帧。

本发明实施例提供的技术方案带来的有益效果是:当推流客户端在直播过程播放多媒体文件时,除了将当前进行直播的视频帧发送给流媒体服务器,还将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到伪视频帧,并向流媒体服务器发送该伪视频帧。也即,推流客户端分别发送视频帧和伪视频帧,而不是将该多媒体文件在当前播放进度时对应的提示信息转换为图像并与当前视频帧进行合成,从而使得拉流播放器端在显示该视频帧的同时,还可以独立显示该多媒体文件在当前播放进度时对应的提示信息,以便于拉流播放器端的用户能够单独对该多媒体文件对应的提示信息执行移动、关闭等操作,提高了直播过程中的信息显示的灵活性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的视频直播系统示意图;

图2是本发明实施例提供的一种直播过程中的信息显示方法流程图;

图3是本发明实施例提供的另一种直播过程中的信息显示方法流程图;

图4是本发明实施例提供的另一种直播过程中的信息显示方法流程图;

图5是本发明实施例提供的一种直播过程中的信息显示装置框图;

图6是本发明实施例提供的另一种直播过程中的信息显示装置框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在对本发明实施例进行详细的解释说明之前,先对本发明实施例的应用场景予以介绍。在直播过程中,当当前直播过程中还播放歌曲或电影等多媒体文件时,为了丰富直播的显示内容,拉流播放器端在显示当前直播画面时,还可以显示该多媒体文件在当前播放进度时对应的提示信息。例如,当用户当前通过推流客户端直播唱歌视频时,此时拉流播放器端还可以显示该唱歌视频中播放的歌曲在当前播放进度时对应的歌词,以提升观众观看该唱歌视频的用户体验。而本发明实施例提供的直播过程中的信息显示方法应用于该直播过程中存在多媒体文件的场景。

图1是本发明实施例提供的一种视频直播系统100示意图,如图1所示,该视频直播系统100包括推流客户端101、流媒体服务器102和拉流播放器端103。推流客户端101和流媒服务器102之间以及流媒服务器102和拉流播放器端103之间可以通过无线网络或者有线网络的方式进行通信。

其中,推流客户端101用于获取当前进行直播的视频帧并向流媒体服务器102发送该视频帧,流媒体服务器102用于接收推流客户端101发送的视频帧并将该视频帧发送给拉流播放器端103,拉流播放器端103用于接收流媒体服务器102发送的视频帧并基于该视频帧显示当前直播画面。另外,推流客户端101还用于获取当前进行直播的音频帧并向流媒体服务器102发送该音频帧,流媒体服务器102用于接收推流客户端101发送的音频帧并将该音频帧发送给拉流播放器端103,拉流播放器端103用于接收流媒体服务器102发送的音频帧并在显示当前直播画面时播放该音频帧。

可选地,当推流客户端101在直播过程中播放多媒体文件时,该视频直播系统100还可以包括音频识别服务器104和文件下载服务器105,推流客户端101和音频识别服务器104之间以及拉流播放器端103和文件下载服务器105之间也可以通过无线网络或者有线网络的方式进行通信。其中,音频识别服务器104用于根据推流客户端101发送的音频查询请求确定该多媒体文件的文件标识和多媒体文件的播放进度,文件下载服务器105用于根据拉流播放器端103发送的文件下载请求确定该多媒体文件的提示文本。例如,该音频识别服务器104可以为听歌识曲服务器,该文件下载服务器105可以为歌词服务器。

需要说明的是,当推流客户端101在直播过程中播放的多媒体文件为推流客户端101中存储的多媒体文件时,该视频直播系统100可以不包括该音频识别服务器104,也即推流客户端101可以直接根据存储的多媒体文件确定该多媒体文件的文件标识和多媒体文件的播放进度。另外,当拉流播放器端存储有该多媒体文件的提示文件时,该视频直播系统100可以不包括该文件下载服务器105,也即拉流播放器端可以直接根据存储的该多媒体文件的提示文件确定该多媒体文件在该播放进度时的提示信息。

图2是本发明实施例提供的一种直播过程中的信息显示方法流程图,该方法应用于图1所示的推流客户端101,如图2所示,该直播过程中的信息显示方法包括以下几个步骤。

步骤201:获取当前进行直播产生的视频帧,并向流媒体服务器发送该视频帧,以使流媒体服务器将该视频帧发送给拉流播放器端。

步骤202:当在直播过程播放多媒体文件时,每隔预设时间段获取该多媒体文件的文件标识和该多媒体文件的播放进度。

步骤203:将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装,得到伪视频帧。

步骤204:向流媒体服务器发送该伪视频帧,以使流媒体服务器将该伪视频帧发送给拉流播放器端,由拉流播放器端在通过视频帧播放直播视频的过程中,根据该伪视频帧显示该多媒体文件在该播放进度时对应的提示信息。

当推流客户端在直播过程播放多媒体文件时,除了将当前进行直播的视频帧发送给流媒体服务器,还将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到伪视频帧,并向流媒体服务器发送该伪视频帧。也即,推流客户端分别发送视频帧和伪视频帧,而不是将该多媒体文件在当前播放进度时对应的提示信息转换为图像并与当前视频帧进行合成,从而使得拉流播放器端在显示该视频帧的同时,还可以独立显示该多媒体文件在当前播放进度时对应的提示信息,以便于拉流播放器端的用户能够单独对该多媒体文件对应的提示信息执行移动、关闭等操作,提高了直播过程中的信息显示的灵活性。

可选地,该向流媒体服务器发送该视频帧之前,还包括:

确定采集该视频帧时的系统时间,以及确定推流客户端获取到该视频帧的获取时间;

将该系统时间转换为第一时间戳,将该推流客户端获取到所述视频帧的获取时间按照转换为第二时间戳;

将该视频帧、第一时间戳和第二时间戳进行封装并编码,得到编码后的视频帧;

相应地,向流媒体服务器发送该视频帧,包括:

将该编码后的视频帧发送给流媒体服务器。

可选地,将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装,得到伪视频帧之后,还包括:

确定在当前时间之前且距离当前时间最近一次向流媒体服务器发送视频帧时所发送的第一时间戳和第二时间戳;

确定该多媒体文件的文件标识和该多媒体文件的播放进度的获取时间,将该多媒体文件的文件标识和该多媒体文件的播放进度的获取时间转换为第三时间戳;

将该第二时间戳和该第三时间戳之间的差值与该第一时间戳相加,得到该伪视频帧的时间戳,该伪视频的时间戳用于指示该多媒体文件的播放进度的获取时间;

相应地,向流媒体服务器发送该伪视频帧,包括:

向流媒体服务器发送该伪视频帧和该伪视频帧的时间戳。

可选地,每隔预设时间段获取该多媒体文件的文件标识和该多媒体文件的播放进度,包括:

当该多媒体文件不是推流客户端中预先存储的文件时,每隔预设时间段,从已接收的该多媒体文件的音频帧中,按照音频帧的接收时间从晚到早的顺序,获取预设个数的音频帧;

将获取的音频帧进行合成,得到音频信息;

向音频识别服务器发送音频查询请求,该音频查询请求携带该音频信息;

接收音频识别服务器基于该音频信息确定的多媒体文件的文件标识和播放进度。

上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。

图3是本发明实施例提供的另一种直播过程中的信息显示方法流程图,该方法应用于图1所示的拉流播放器端103,如图3所示,该直播过程中的信息显示方法包括以下几个步骤。

步骤301:接收流媒体服务器发送的视频帧,并基于该视频帧进行直播画面的显示,该视频帧为推流客户端在当前进行直播时获取并向流媒体服务器发送的视频帧。

步骤302:在该直播画面的显示过程中接收流媒体服务器发送的伪视频帧,该伪视频帧为推流客户端在当前直播过程播放多媒体文件时每隔预设时间段将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到。

步骤303:根据该伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息,并在该直播画面的图层上方显示该多媒体文件在该播放进度时对应的提示信息。

当推流客户端在当前直播过程播放多媒体文件时,拉流播放器端除了接收到视频帧,还接收到推流客户端通过流媒体服务器发送的伪视频帧,由于该伪视频帧为推流客户端每隔预设时间段将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到,因此,拉流播放器端可以根据该伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息,并在该直播画面的图层上方显示该多媒体文件在该播放进度时对应的提示信息。也即拉流播放器端可以分别独立显示当前直播画面中的视频帧和该多媒体文件在该播放进度时对应的提示信息,以便于拉流播放器端的用户能够单独对该多媒体文件对应的提示信息执行移动、关闭等操作,提高了直播过程中的信息显示的灵活性。

可选地,根据该伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息,包括:

对该伪视频帧进行解析,得到该多媒体文件的文件标识和该多媒体文件的播放进度;

根据该多媒体文件的文件标识,判断拉流播放器端中是否存储有该多媒体文件的提示文件;

当拉流播放器端中存储有该多媒体文件的提示文件时,从该多媒体文件的提示文件中获取该多媒体文件在该播放进度时对应的提示信息。

可选地,根据该多媒体文件的文件标识,判断拉流播放器端中是否存储有该多媒体文件的提示文件之后,还包括:

当拉流播放器端中没有存储该多媒体文件的提示文件时,根据该多媒体文件的文件标识,向文件下载服务器发送文件下载请求,该文件下载请求携带该多媒体文件的文件标识;

接收文件下载服务器基于该多媒体文件的文件标识发送的提示文件;

从接收到的提示文件中获取该多媒体文件在该播放进度时对应的提示信息。

可选地,当接收到流媒体服务器发送的伪视频帧之后,还包括:

将该伪视频帧存储至伪视频帧列表中,该伪视频帧列表用于缓存接收到的伪视频帧;

相应地,根据该伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息,包括:

从伪视频帧列表中,查找与该视频帧同步的伪视频帧;

根据查找到的伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息。

可选地,在接收该视频帧时还接收到第一时间戳,第一时间戳为推流客户端将采集该视频帧时的系统时间转换得到;

在接收该伪视频帧时还接收到该伪视频帧的时间戳,该伪视频的时间戳用于指示该多媒体文件的播放进度的获取时间;

相应地,从伪视频帧列表中,查找与该视频帧同步的伪视频帧,包括:

从伪视频帧列表中获取伪视频帧的时间戳和在接收该视频帧时接收到的第一时间戳之间差值最小的伪视频帧;

将获取到的伪视频帧确定为与该视频帧同步的伪视频帧。

上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。

图4是本发明实施例提供的另一种直播过程中的信息显示方法流程图,该方法应用于图1所示的视频直播系统100,如图4所示,该直播过程中的信息显示方法包括以下几个步骤。

步骤401:推流客户端获取当前进行直播产生的视频帧,并向流媒体服务器发送该视频帧,以使流媒体服务器将该视频帧发送给拉流播放器端。

视频帧也即构成视频的单副图像,当多个视频帧连续播放时,形成一个动态图像动画也即视频。因此,推流客户端通过流媒体服务器向拉流播放器端直播视频,也即推流客户端实时获取当前进行直播产生的视频帧,并将该视频帧通过流媒体服务器发送给拉流播放器端,当拉流播放器端接收到多个视频帧并连续显示该多个视频帧时,实现了拉流播放器端播放推流客户端进行直播的视频。

其中,当推流客户端获取当前进行直播产生的视频帧时,可以直接通过自身采集当前进行直播产生的视频帧,也可以通过其他终端采集当前进行直播产生的视频帧并将采集的视频帧发送给推流客户端,比如,可以通过当前安装该推流客户端的终端来采集视频帧,并将采集的视频帧发送给推流客户端。

值得注意的是,视频帧仅仅为静态的单副图像,并不包括当前进行直播时的音频信息,因此,当推流客户端通过流媒体服务器向拉流播放器端直播视频时,推流客户端不仅需要采集当前直播产生的视频帧,还需采集当前直播产生的音频帧,并向流媒体服务器发送该音频帧,以使流媒体服务器将该音频帧发送给拉流播放器端。

另外,为了保证拉流播放器端在接收到视频帧和音频帧之后播放的视频帧和音频帧同步,推流客户端可以在采集视频帧和音频帧时,为采集的每个视频帧和每个音频帧打上时间戳,其中,该视频帧的时间戳用于指示推流客户端采集到该视频帧的时间,该音频帧的时间戳用于指示推流客户端采集到该音频帧的时间。

需要说明的是,时间戳有两种表示方式,一种以系统时钟为参考时间的时间戳,此时该时间戳可以直接表示当前系统时间;一种以参考时钟为参考时间的时间戳,此时该时间戳为将当前系统时间按照该参考时钟为时间零点进行转换得到,例如,参考时钟为2:00,当前时间为2:01,此时当前时间在参考时钟下的时间戳为60s。为了便于后续对时间戳之间进行数学计算,本发明实施例中,视频帧的时间戳和音频帧的时间戳均采用第二种表示方式。

另外,在推流客户端接入网络之后,该推流客户端的控制平面包括物理层和应用层,其中,物理层用于采集信息并接收来自应用层的指令,应用层用于接收物理层发送的信息并向物理层下发指令。且物理层和应用层的参考时钟通常不是同一个参考时钟,也即同一个时刻在物理层对应的时间戳和在应用层对应的时间戳并不相同。因此,在本发明实施例中,每个视频帧的时间戳和每个音频帧的时间戳均包括两种不同的时间戳,也即,每个视频帧的时间戳包括在物理层的参考时钟下的时间戳和在应用层的参考时钟下的时间戳,每个音频帧的时间戳也包括在物理层的参考时钟下的时间戳和在应用层的参考时钟下的时间戳。

在一种可能的实现方式中,确定每个视频帧的时间戳的实现方式可以为:确定采集该视频帧时的系统时间以及确定推流客户端获取到该视频帧的获取时间,将该系统时间转换为物理层的参考时钟下的第一时间戳,将该推流客户端获取到该视频帧的获取时间转换为应用层的参考时钟下的第二时间戳。也即,第一时间戳和第二时间戳为该视频帧的两个时间戳,当推流客户端确定出该视频帧的两个时间戳时,将该视频帧、第一时间戳和第二时间戳进行封装并编码,得到编码后的视频帧,并将该编码后的视频帧发送给流媒体服务器。

值得注意的是,当推流客户端获取当前进行直播产生的视频帧为推流客户端自身采集的视频帧时,此时推流客户端的物理层采集该视频帧的系统时间和应用层获取到该视频帧的获取时间基本为同一个时刻,但是由于物理层的参考时钟和应用层的参考时钟并不相同,该同一个时刻在物理层的参考时钟下的时间戳和该同一时刻在应用层的参考时钟下的时间戳并不相同。例如,物理层的参考时钟为2:00,应用层的参考时钟为2:01,当推流客户端的物理层采集该视频帧的系统时间和应用层获取到该视频帧的获取时间为同一时刻2:02时,该同一时刻2:02在物理层的参考时钟下的时间戳为60s,该同一时刻2:02在应用层的参考时钟下的时间戳为120s。

同样地,按照上述方法得到每个音频帧的两个时间戳,并将该音频帧和该音频帧的两个时间戳进行封装并编码,得到编码后的音频帧,将该编码后的音频帧发送给流媒体服务器。

另外,当推流客户端得到编码后的视频帧和编码后的音频帧时,可能由于网络阻塞等原因,上一次发送的视频帧和音频帧还没有发送成功,因此,在推流客户端中还包括视频帧列表和音频帧列表,该视频帧列表用于暂时缓存待发送的视频帧,该音频帧列表用于暂时缓存待发送的音频帧。此时,对于视频帧列表中视频帧,推流客户端按照视频帧的第一时间戳由小到大的顺序依次向流媒体服务器发送该视频帧列表中的视频帧。对于音频帧列表中的音频帧,同样按照该方法发送该音频帧列表中的音频帧。

例如,用于采集视频帧和音频帧的采集系统为directshow采集系统,当该采集系统采集到的当前进行直播的视频帧时,将该视频帧标记为vn,由于采集系统位于物理层,因此采集系统可以根据采集该视频帧的系统时间和物理层的参考时钟,确定第一时间戳,标记为tdvn,并将该视频帧和第一时间戳向上发送给推流客户端的应用层。当应用层接收到该视频帧时,由于采集系统集该视频帧的系统时间和应用层接收到该视频帧的系统时间几乎没有差值,因此应用根据接收该视频帧的系统时间也即采集系统采集该视频帧的时间和应用层的参考时钟,确定第二时间戳,标记为tavn。此时,推流客户端确定该当前待发送的视频帧vn和该视频帧vn的两个时间戳,也即第一时间戳tdvn和第二时间戳为tavn,并将该视频帧vn,tdvn和tavn进行编码,将编码后的视频帧添加至视频帧列表等待发送。同样地,当该采集系统采集到的当前进行直播的音频帧时,将该音频帧标记为an,并按照确定视频帧vn的两个时间戳的方法,确定该音频帧an在物理层的参考时钟下的时间戳和在应用层的参考时钟下的时间戳,分别标记为tdan和taan,并将该音频帧an、tdan和taan进行编码,将编码后的音频帧添加至音频帧列表等待发送。

其中,directshow采集系统为微软公司推出的一种流媒体处理开发包,该directshow采集系统用于采集数据,并将采集的数据进行相应的后期处理。

步骤402:拉流播放器端接收流媒体服务器发送的视频帧,并基于该视频帧进行直播画面的显示,该视频帧为推流客户端在当前进行直播时采集并向流媒体服务器发送的视频帧。

由步骤401可知,推流客户端在确定当前进行直播产生的视频帧时,还可以根据采集该视频帧的系统时间,确定该视频帧的两个时间戳也即第一时间戳和第二时间戳,并将该视频帧,第一时间戳和第二时间戳进行封装编码,将编码后的视频帧发送给流媒体服务器,因此,当拉流播放器端接收到流媒体服务器发送的视频帧时,还可以接收到第一时间戳,其中,第一时间戳为推流客户端将采集该视频帧时的系统时间转换得到。可选地,拉流播放器端还可以接收到第二时间戳,该第二时间戳为推流客户端将获取该视频帧时的获取时间转换得到。

另外,由步骤401还知,推流客户端在向流媒体服务器发送视频帧的同时还将当前直播产生的音频帧发送给流媒体服务器,因此拉流播放器端还可以接收到该当前直播产生的音频帧。另外,当推流客户将该音频帧的两个时间戳也向流媒体服务器发送时,此时拉流播放器端还可以接收到该音频帧的两个时间戳,为了后序便于说明,将该音频帧的两个时间戳中,在物理层的参考时钟下的时间戳称为第四时间戳,在应用层的参考时钟下的时间戳称为第五时间戳。

在本发明实施例中,为了实现当前显示的视频帧和播放的音频帧同步,当拉流播放器端接收流媒体服务器发送的视频帧时,确定已接收到的音频帧中的每个音频帧的第四时间戳,得到至少一个第四时间戳,从该至少一个第四时间戳中查找和该视频帧的第一时间戳相同的时间戳,并将查找到的第四时间戳对应的音频帧确定为该视频帧同步的音频帧,此时在基于该视频帧进行直播画面的显示的同时播放与该视频帧同步的音频帧,实现了直播画面中视频帧和音频帧的同步播放。特别地,当从该至少一个第四时间戳中没有查找和该视频帧的第一时间戳相同的时间戳,在显示该视频帧的过程中,等待接收第四时间戳和该视频帧的第一时间戳相同的音频帧,直至接收到该音频帧,然后播放该音频帧,实现视频帧和音频帧的同步播放。

步骤403:当在直播过程播放多媒体文件时,推流客户端每隔预设时间段获取该多媒体文件的文件标识和该多媒体文件的播放进度。

当在直播过程播放多媒体文件时,由于现有的rtmp协议不提供对该多媒体文件对应的提示信息传输的直接支持,因此为了使拉流播放器端可以在播放直播视频的过程中显示该多媒体文件对应的提示信息,推流客户端可以将该多媒体文件的文件标识和该多媒体文件的播放进度通过流媒体服务器发送给拉流播放器端,以使拉流播放器端获取该多媒体文件对应的提示信息。

其中,多媒体文件可以为歌曲或电影等,当多媒体文件为歌曲时,该多媒体文件对应的提示信息为歌词,当多媒体文件为电影时,该多媒体文件对应的提示信息为字幕。多媒体文件的文件标识用于唯一标识该多媒体文件,该多媒体文件的文件标识可以为该多媒体文件的名称如歌曲名或电影名。多媒体文件的播放进度用于指示当前直播过程播放的多媒体文件的播放进度,如该多媒体文件的时间长度为5分钟,当前直播过程播放的多媒体文件的播放进度为3分20秒,此时该多媒体文件的播放进度为3分20秒。另外,预设时间段为预先设置的时间段,该预设时间段可以为10s,20s或30s等等。

具体地,在直播过程播放多媒体文件时,该多媒体文件可能是推流客户端播放的多媒体文件,也可能是流媒体服务器在直播过程中推送的多媒体文件,也即该多媒体文件可能是推流客户端中预先存储的文件,也可能不是推流客户端中预先存储的多媒体文件,因此,每隔预设时间段获取该多媒体文件的文件标识和该多媒体文件的播放进度可以有两种实现方式。

第一种实现方式,当该多媒体文件为推流客户端中预先存储的文件时,直接每隔预设时间段获取该多媒体文件的文件标识和该多媒体文件的播放进度。例如,预设时间段为10s,且当前直播过程播放的歌曲为推流客户端中预先存储的歌曲,此时,推流客户端在播放该歌曲的过程中,可以每隔10s,直接获取该歌曲的名称,标记为mncurrent,并获取该歌曲在当前播放时的播放进度,标记为tpcurrent。

第二种实现方式,当该多媒体文件不是推流客户端中预先存储的文件时,每隔预设时间段,推流客户端从已接收的该多媒体文件的音频帧中,按照音频帧的接收时间从晚到早的顺序,获取预设个数的音频帧;将获取的音频帧进行合成,得到音频信息。推流客户端向音频识别服务器发送音频查询请求,该音频查询请求携带该音频信息;当音频识别服务器接收到该音频查询请求时,根据该音频信息,确定该音频信息对应的多媒体文件的文件标识和该多媒体文件的播放进度,并向推流客户端发送该多媒体文件的文件标识和该多媒体文件的播放进度。推流客户端接收音频识别服务器基于该音频信息确定的多媒体文件的文件标识和播放进度,并将接收到的多媒体文件的文件标识作为当前直播过程播放的多媒体文件的文件标识,将接收到的多媒体文件的播放进度作为当前直播过程播放的多媒体文件的播放进度。

其中,由于每个音频帧的时间长度是固定的,因此当获取预设个数个音频帧,将获取的音频帧进行合成时,得到音频信息为预设时间长度的音频信息。且由于按照音频帧的接收时间从晚到早的顺序获取音频帧,因此得到的音频信息可以代表当前直播过程正在播放的音频信息。另外,音频识别服务器用于根据音频信息确定音频信息对应的多媒体文件的文件标识和播放进度。例如,该音频识别服务器可以为听歌识曲服务器。

例如,推流客户端从最近一次接收到的音频帧开始,按照音频帧的接收时间从晚到早的顺序,获取预设个数个音频帧,并将该预设个数个音频帧进行合并,得到预设时间长度信息为200ms的音频信息。推流客户端向听歌识曲服务器发送音频查询请求,该音频查询请求携带该200ms的音频信息,当听歌识曲服务器接收到该音频查询请求时,根据该200ms的音频信息,确定该音频信息对应的多媒体文件的名称为smname和该音频信息对应的多媒体文件的播放进度为tptime,并将该音频信息对应的多媒体文件的名称smname和该音频信息对应的多媒体文件的播放进度tptime发送给推流客户端。当推流客户端接收到该音频信息对应的多媒体文件的名称为smname和该音频信息对应的多媒体文件的播放进度为tptime时,将smname作为当前直播过程中播放的歌曲的名称mncurrent,将tptime作为当前直播过程中播放的歌曲的播放进度tpcurrent。

步骤404:推流客户端将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装,得到伪视频帧。

为了便于现有的rtmp协议可以支持对该多媒体文件的文件标识和该多媒体文件的播放进度等信息的传输,推流客户端需将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装,并按照预设编码类型进行编码,得到伪视频帧。

在一种可能的实现方式中,在现有的h264(一种高性能的视频编码技术)中,将视频帧进行编码之后得到的数据为nal(networkabstractlayer,网络抽象层)格式的数据。并且在h264中包括多种不同的nal类型,其中部分nal类型已被使用以用于定义不同类型的视频帧,仍存在部分nal类型未做定义,此时可以从该未做定义的nal类型中选择一个nal类型以定义本发明实施例提供的伪视频帧。因此,上述预设编码类型也即从从该未做定义的nal类型中选择的nal类型。

另外,为了使拉流播放器端可以在显示视频帧时同步显示该多媒体文件对应的提示信息,推流客户端在得到该伪视频帧时,还需为该伪视频帧打上时间戳,也即确定该伪视频帧的时间戳,该伪视频的时间戳用于推流客户端指示该多媒体文件的播放进度的获取时间。需要说明的是,推流客户端获取该多媒体文件的播放进度为应用层的行为,因此,当推流客户端确定该多媒体文件的文件标识和该多媒体文件的播放进度的获取时间时,推流客户端将该获取时间转换为物理层的参考时钟下的第三时间戳,并进行记录,也即推流客户端记录的多媒体文件的进度的获取时间为应用层的参考时钟下的时间。但是对于拉流播放器端,需要根据视频帧在物理层对应的获取时间和多媒体文件的提示信息在物理层的获取时间进行同步,因此推流客户端需将该第三时间戳转换为在物理层的参考时钟下的时间戳,并将该第三时间戳转换为在物理层的参考时钟下的时间戳作为该伪视频帧的时间戳。具体地,推流客户端确定在当前时间之前且距离当前时间最近一次向流媒体服务器发送视频帧时所发送的第一时间戳和第二时间戳;确定该多媒体文件的文件标识和该多媒体文件的播放进度的获取时间,将该获取时间转换为第三时间戳;将该第二时间戳和该第三时间戳之间的差值与该第一时间戳相加,得到该伪视频帧的时间戳。

例如,当前时间之前且距离当前时间最近一次向流媒体服务器发送视频帧为vnlast,发送vnlast时发送的第一时间戳为tdvnlast和第二时间戳tavnlast,也即,vnlast的第一时间戳tdvnlast和第二时间戳tavnlast。当推流客户端确定当前直播过程播放的歌曲的名称和该歌曲的播放进度获取时间,将该获取时间转换为物理层的参考时钟下的第三时间戳,并记录为tamcurrent,此时该伪视频帧的时间戳可以表示为:tdvnlast+(tamcurrent-tavnlast),也即将tamcurrent转换为物理层的参考时钟下的时间戳。

步骤405:推流客户端向流媒体服务器发送该伪视频帧,以使流媒体服务器将该伪视频帧发送给拉流播放器端,由拉流播放器端在通过视频帧播放直播视频的过程中,根据该伪视频帧显示该多媒体文件在该播放进度时对应的提示信息。

值得注意的是,根据步骤404可知,当推流客户端确定该伪视频帧时还可以确定该伪视频帧的时间戳,因此,推流客户端向流媒体服务器发送该伪视频帧还可以为:推流客户端向流媒体服务器发送该伪视频帧和该伪视频帧的时间戳。当流媒体服务器接收到该伪视频帧和该伪视频帧的时间戳时,将该伪视频帧和该伪视频帧的时间戳发送给拉流播放器端。

步骤406:拉流播放器端在直播画面的显示过程中接收流媒体服务器发送的伪视频帧,该伪视频帧为推流客户端在当前直播过程播放多媒体文件时每隔预设时间段将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到。

可选地,当推流客户端通过流媒体服务器将该伪视频帧和该伪视频帧的时间戳同时发送给拉流播放器端时,拉流播放器端在接收该伪视频帧时还接收到该伪视频帧的时间戳。

另外,为了便于拉流播放器端可以实现当前视频帧和多媒体文件对应的提示信息的同步显示,当拉流播放器端接收到流媒体服务器发送的伪视频帧之后,还可以将该伪视频帧和该伪视频帧的时间戳存储至伪视频帧列表中,该伪视频帧列表用于缓存接收到的伪视频帧和该伪视频帧的时间戳。例如,伪视频帧列表为歌词队列,当前直播过程中正在播放歌曲,推流客户端基于该歌曲通过流媒体服务器向拉流播放器发送伪视频帧和该伪视频帧的时间戳,当拉流播放器端接收到该伪视频帧和伪视频帧的时间戳时,将该伪视频帧和该伪视频帧的时间戳存储至该歌词队列。

步骤407:拉流播放器端根据该伪视频帧,获取多媒体文件在该播放进度时对应的提示信息,并在该直播画面的图层上方显示该多媒体文件在该播放进度时对应的提示信息。

具体地,拉流播放器端对该伪视频帧进行解析,得到该多媒体文件的文件标识和该多媒体文件的播放进度;根据该多媒体文件的文件标识,判断拉流播放器端中是否存储有该多媒体文件的提示文件;当拉流播放器端中存储有该多媒体文件的提示文件时,直接从该多媒体文件的提示文件中获取该多媒体文件在该播放进度时对应的提示信息。当拉流播放器端中没有存储该多媒体文件的提示文件时,根据该多媒体文件的文件标识,向文件下载服务器发送文件下载请求,该文件下载请求携带该多媒体文件的文件标识;当文件下载服务器接收到该文件下载请求时,根据该多媒体文件的文件标识,确定该多媒体文件的提示文件,并向拉流播放器端发送该多媒体文件的提示文件,拉流播放器端接收文件下载服务器基于该多媒体文件的文件标识发送的提示文件;从接收到的提示文件中获取该多媒体文件在该播放进度时对应的提示信息。

其中,文件下载服务器用于根据多媒体文件的文件标识确定多媒体文件的提示文件,如文件下载服务器为歌词服务器,此时歌词服务器用于根据该歌曲的名称确定该歌曲的歌词文件。

需要说明的是,当拉流播放器端中没有存储该多媒体文件的提示文件时,拉流播放器端需要从文件下载服务器下载该多媒体文件的提示文件,由于下载该多媒体文件的提示文件需要一定的时间,因此当拉流播放器获取到该多媒体文件的提示文件时,需要重新定位该多媒体文件的播放进度,也即将该多媒体文件的播放进度和下载该多媒体文件的提示文件的时间之和确定该多媒体文件的播放进度。

例如,当前直播过程中播放歌曲,拉流播放器端对该伪视频帧进行解析,得到该歌曲的名称mncurrent和该歌曲的播放进度tpcurrent。根据该歌曲的名称mncurrent,拉流播放器端判断本端是否存储有该歌曲对应的提示文件也即歌词文件,当本端存储有该歌曲的歌词文件时,直接根据该播放进度tpcurrent,从该歌词文件中定位该播放进度tpcurrent时该歌曲对应的歌词,也即获取该多媒体文件在该播放进度tpcurrent时对应的提示信息。当本端没有存储该歌词文件时,向歌词服务器发送歌词文件下载请求,当歌词服务器接收到该歌词文件下载请求时,根据该歌词文件下载请求携带的该歌曲的名称,确定该歌曲的歌词文件,并向拉流播放器端发送该歌曲的歌词文件,拉流播放器端在接收到该歌曲的歌词文件时,确定下载该歌词文件所需的时间为tdtime,根据该播放进度tpcurrent,从该歌词文件中定位播放进度为tdtime+tpcurrent时该歌曲对应的歌词。

可选地,当拉流播放器端中没有存储该多媒体文件的提示文件时,若拉流播放器端中存储该多媒体文件的音频文件,拉流播放器端可以将该多媒体文件的音频文件进行文本处理,得到该多媒体文件的提示文件,然后根据该多媒体文件的提示文件和该播放进度,确定该多媒体文件在该播放进度时的提示信息。

另外,为了提高观众观看视频直播的用户体验,当拉流播放器端显示该多媒体文件对应的提示信息时,可以将视频帧和多媒体文件对应的提示信息进行同步显示。具体地,在拉流播放器端基于视频帧进行直播画面显示时,从伪视频帧列表中,查找与该视频帧同步的伪视频帧;根据查找到的伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息,并在显示该视频帧的同时,显示该多媒体在该播放进度时对应的提示信息,从而实现视频帧和多媒体文件对应的提示信息的同步显示。由步骤402可知,拉流播放器端可以根据视频帧的时间戳和音频帧的时间戳,实现当前播放的视频帧和音频帧同步,因此,拉流播放器端可以实现当前播放的音频帧、视频帧和多媒体文件对应的提示信息的同步。

其中,查找与该视频帧同步的伪视频帧也即查找时间戳和该视频帧的第一时间戳相同的伪视频帧,具体为,确定该视频帧的第一时间戳,从伪视频帧列表中获取伪视频帧的时间戳和在接收该视频帧时接收到的第一时间戳之间差值最小的伪视频帧,将获取到的伪视频帧确定为与该视频帧同步的伪视频帧。

可选地,为了减小拉流播放器端的存储压力,当从伪视频帧列表中查找到与该视频帧同步的伪视频帧并根据该伪视频帧显示该多媒体文件对应的提示信息时,可以将该伪视频帧从该伪视频帧列表中删除。另外,由于伪视频帧为每隔预设时间段推流客户端通过流媒体服务器向拉流播放器端发送一次,在该预设时间段内推流客户端可能通过流媒体服务器向拉流播放器端发送多个视频帧,因此拉流播放器端在接收到该视频帧时,该伪视频列表中的伪视频个数可能为0,此时拉流播放器端则不执行任何操作。

另外,当拉流播放器端在显示该多媒体文件在该播放进度时的提示信息之后,当当前时间变化时,还可以根据变化后的当前时间重新确定该多媒体文件的播放进度,并根据重新确定的多媒体文件的播放进度和上述已经确定的多媒体文件的提示文件,对该多对该多媒体文件的提示信息进行更新。

在本发明实施例中,当推流客户端在直播过程播放多媒体文件时,除了将当前进行直播的视频帧和音频帧发送给流媒体服务器,还将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到伪视频帧,并向流媒体服务器发送该伪视频帧,也即,推流客户端分别发送视频帧和伪视频帧,而不是将该多媒体文件在当前播放进度时对应的提示信息转换为图像并与当前视频帧进行合成,从而使得拉流播放器端在显示该视频帧的同时,还可以独立显示该多媒体文件在当前播放进度时对应的提示信息,以便于拉流播放器端的用户能够单独对该多媒体文件对应的提示信息执行移动、关闭等操作,提高了直播过程中的信息显示的灵活性。

图5是本发明实施例提供的一种直播过程中的信息显示装置500,该装置500应用于图1所示的推流客户端101,如图5所示,该装置500包括第一发送模块501、获取模块502、封装模块503和第二发送模块504:

第一发送模块501,用于获取当前进行直播产生的视频帧,并向流媒体服务器发送该视频帧,以使流媒体服务器将该视频帧发送给拉流播放器端;

获取模块502,用于当在直播过程播放多媒体文件时,每隔预设时间段获取该多媒体文件的文件标识和该多媒体文件的播放进度;

封装模块503,用于将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装,得到伪视频帧;

第二发送模块504,用于向流媒体服务器发送该伪视频帧,以使流媒体服务器将该伪视频帧发送给拉流播放器端,由拉流播放器端在通过视频帧播放直播视频的过程中,根据该伪视频帧显示该多媒体文件在该播放进度时对应的提示信息。

可选地,该装置500还包括:

第一确定模块,用于确定采集该视频帧时的系统时间,以及确定推流客户端获取到该视频帧的获取时间;

转换模块,用于将该系统时间转换为第一时间戳,将该获取时间转换为第二时间戳;

编码模块,用于将该视频帧、第一时间戳和第二时间戳进行封装并编码,得到编码后的视频帧;

相应地,第一发送模块501还用于:

将该编码后的视频帧发送给流媒体服务器。

可选地,该装置500还包括:

第二确定模块,用于确定在当前时间之前且距离当前时间最近一次向流媒体服务器发送视频帧时所发送的第一时间戳和第二时间戳;

第三确定模块,用于确定该多媒体文件的文件标识和该多媒体文件的播放进度的获取时间,将该多媒体文件的文件标识和所述多媒体文件的播放进度的获取时间转换为第三时间戳;

相加模块,用于将该第二时间戳和该第三时间戳之间的差值与该第一时间戳相加,得到该伪视频帧的时间戳,该伪视频的时间戳用于指示该多媒体文件的播放进度的获取时间;

相应地,该第二发送模块504还用于:

向流媒体服务器发送该伪视频帧和该伪视频帧的时间戳。

可选地,该获取模块502包括:

获取单元,用于当该多媒体文件不是推流客户端中预先存储的文件时,每隔预设时间段,从已接收的该多媒体文件的音频帧中,按照音频帧的接收时间从晚到早的顺序,获取预设个数的音频帧;

合成单元,用于将获取的音频帧进行合成,得到音频信息;

发送单元,用于向音频识别服务器发送音频查询请求,该音频查询请求携带该音频信息;

接收单元,用于接收音频识别服务器基于该音频信息确定的多媒体文件的文件标识和播放进度。

当推流客户端在直播过程播放多媒体文件时,除了将当前进行直播的视频帧发送给流媒体服务器,还将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到伪视频帧,并向流媒体服务器发送该伪视频帧。也即,推流客户端分别发送视频帧和伪视频帧,而不是将该多媒体文件在当前播放进度时对应的提示信息转换为图像并与当前视频帧进行合成,从而使得拉流播放器端在显示该视频帧的同时,还可以独立显示该多媒体文件在当前播放进度时对应的提示信息,以便于拉流播放器端的用户能够单独对该多媒体文件对应的提示信息执行移动、关闭等操作,提高了直播过程中的信息显示的灵活性。

需要说明的是:上述实施例提供的直播过程中的信息显示装置在显示信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的直播过程中的信息显示装置与直播过程中的信息显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本发明实施例提供的一种直播过程中的信息显示装置600,该装置600应用于图1所示的拉流播放器端103,如图6所示,该装置600包括第一接收模块601、第二接收模块602、获取模块603:

第一接收模块601,用于接收流媒体服务器发送的视频帧,并基于该视频帧进行直播画面的显示,该视频帧为推流客户端在当前进行直播时获取并向流媒体服务器发送的视频帧;

第二接收模块602,用于在该直播画面的显示过程中接收流媒体服务器发送的伪视频帧,该伪视频帧为推流客户端在当前直播过程播放多媒体文件时每隔预设时间段将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到;

获取模块603,用于根据该伪视频帧,获取多媒体文件在该播放进度时对应的提示信息,并在该直播画面的图层上方显示该多媒体文件在该播放进度时对应的提示信息。

可选地,该获取模块603包括:

解析单元,用于对该伪视频帧进行解析,得到该多媒体文件的文件标识和该多媒体文件的播放进度;

判断单元,用于根据该多媒体文件的文件标识,判断拉流播放器端中是否存储有该多媒体文件的提示文件;

第一获取单元,用于当拉流播放器端中存储有该多媒体文件的提示文件时,从该多媒体文件的提示文件中获取该多媒体文件在该播放进度时对应的提示信息。

可选地,该获取模块603还包括:

发送单元,用于当拉流播放器端中没有存储该多媒体文件的提示文件时,根据该多媒体文件的文件标识,向文件下载服务器发送文件下载请求,该文件下载请求携带该多媒体文件的文件标识;

接收单元,用于接收文件下载服务器基于该多媒体文件的文件标识发送的提示文件;

第二获取单元,用于从接收到的提示文件中获取该多媒体文件在该播放进度时对应的提示信息。

可选地,该装置600还包括:

存储模块,用于将该伪视频帧存储至伪视频帧列表中,该伪视频帧列表用于缓存接收到的伪视频帧;

相应地,该获取模块603包括:

查找单元,用于从伪视频帧列表中,查找与该视频帧同步的伪视频帧;

第三获取单元,用于根据查找到的伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息。

可选地,在接收该视频帧时还接收到第一时间戳,第一时间戳为推流客户端将采集该视频帧时的系统时间转换得到;

在接收该伪视频帧时还接收到该伪视频帧的时间戳,该伪视频的时间戳用于指示该多媒体文件的播放进度的获取时间;

相应地,查找单元还用于:

从伪视频帧列表中获取伪视频帧的时间戳和在接收该视频帧时接收到的第一时间戳之间差值最小的伪视频帧;

将获取到的伪视频帧确定为与该视频帧同步的伪视频帧。

当推流客户端在直播过程播放多媒体文件时,拉流播放器端除了接收到视频帧,还接收到推流客户端通过流媒体服务器发送的伪视频帧,由于该伪视频帧为推流客户端在当前直播过程播放多媒体文件时每隔预设时间段将该多媒体文件的文件标识和该多媒体文件的播放进度进行封装得到,因此,拉流播放器端可以根据该伪视频帧,获取该多媒体文件在该播放进度时对应的提示信息,并在该直播画面的图层上方显示该多媒体文件在该播放进度时对应的提示信息。也即拉流播放器端可以分别独立显示当前直播画面中的视频帧和该多媒体文件在该播放进度时对应的提示信息,以便于拉流播放器端的用户可以单独对该多媒体文件对应的提示信息执行移动、关闭等操作,提高了直播过程中的信息显示的灵活性。

需要说明的是:上述实施例提供的直播过程中的信息显示装置在显示信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的直播过程中的信息显示装置与直播过程中的信息显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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