生成索引文件的方法、标识用户发言状态的方法和终端与流程

文档序号:12865975阅读:322来源:国知局
生成索引文件的方法、标识用户发言状态的方法和终端与流程

本发明涉及互联网技术领域,具体而言,本发明涉及一种服务器生成基于hls协议的索引文件的方法,还涉及一种终端根据索引文件标识用户发言状态的方法和相应的终端。



背景技术:

hls(httplivestreaming)协议是苹果公司(apple)推出的基于http的流媒体传输协议,可实现流媒体的直播和点播,主要应用在ios系统,为ios设备(如iphone、ipad)提供音视频直播和点播方案。hls协议是移动端h5(html5)音视频直播技术的基础。然而,移动端通过h5页面使用hls协议播放音视频时,并不能识别和区分所播放的音视频中的发言用户(例如在直播中其他用户通过页面并不能知道当前发言用户对应哪个用户名),从而导致用户体验不佳。



技术实现要素:

本发明的目的旨在至少能解决上述的技术缺陷之一,特别是不能识别和区分所播放的音视频中的发言用户的技术缺陷。

本发明提供一种服务器生成基于hls协议的索引文件的方法,包括如下步骤:

服务器混音时生成多个播放时长为预设时长的音视频文件;

将对应所述音视频文件的统一资源定位符写入索引文件;

将所述音视频文件中发言用户的用户唯一标识写入索引文件,并建立所述统一资源定位符与所述用户唯一标识之间的映射关系。

在其中一个实施例中,还包括步骤:

向终端提供并更新所述索引文件,以使得所述终端执行如下操作:

获取所述音视频文件对应的统一资源定位符与所述用户唯一标识,并在播放所述音视频文件时通过用户界面实时标识对应所述用户唯一标识的用户的发言状态。

在其中一个实施例中,将所述用户唯一标识以注释的形式写入所述索引文件。

在其中一个实施例中,所述统一资源定位符与所述用户唯一标识之间的映射关系包括:记载有所述用户唯一标识的注释依照预设的位置关系依附于其对应的所述统一资源定位符。

在其中一个实施例中,所述预设的位置关系包括:所述注释位于其对应的所述统一资源定位符的后一行。

上述的服务器生成基于hls协议的索引文件的方法,服务器混音时生成多个播放时长为预设时长的音视频文件;将对应所述音视频文件的统一资源定位符写入索引文件;将所述音视频文件中发言用户的用户唯一标识写入索引文件,并建立所述统一资源定位符与所述用户唯一标识之间的映射关系,通过这种映射关系,使得终端在获取该索引文件后,可以在播放所述音视频文件时同时提示发言用户是谁,能有效提高用户体验。

本发明还提供一种终端根据索引文件标识用户发言状态的方法,包括如下步骤:

终端从服务器获取基于hls协议的索引文件,所述索引文件中记载有多个音视频文件的统一资源定位符和所述音视频文件中发言用户的用户唯一标识,所述音视频文件的播放时长为预设时长,所述统一资源定位符与所述用户唯一标识之间建立有映射关系;

从所述索引文件中提取所述统一资源定位符和所述用户唯一标识,播放位于所述统一资源定位符对应的网络位置上的所述音视频文件,并通过用户界面实时标识对应所述用户唯一标识的用户的发言状态。

在其中一个实施例中,其特征在于,所述用户唯一标识以注释的形式记载于所述索引文件。

在其中一个实施例中,所述统一资源定位符与所述用户唯一标识之间的映射关系包括:记载有所述用户唯一标识的注释依照预设的位置关系依附于其对应的所述统一资源定位符。

在其中一个实施例中,终端按照多个所述视频文件的统一资源定位符的排列次序每隔所述预设时长依次提取相应的所述注释。

本发明还提供一种终端,其包括:

一个或多个处理器;

存储器;

一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述任一实施例的终端根据索引文件标识用户发言状态的方法

上述的终端根据索引文件标识用户发言状态的方法及相应的终端,终端从服务器获取基于hls协议的索引文件,所述索引文件中记载有多个音视频文件的统一资源定位符和所述音视频文件中发言用户的用户唯一标识,所述音视频文件的播放时长为预设时长,所述统一资源定位符与所述用户唯一标识之间建立有映射关系;从所述索引文件中提取所述统一资源定位符和所述用户唯一标识,播放位于所述统一资源定位符对应的网络位置上的所述音视频文件,并通过用户界面(例如基于h5的页面)实时标识对应所述用户唯一标识的用户的发言状态。终端通过从服务器在获取该索引文件,可以在播放所述音视频文件时同时通过用户界面实时标识对应所述用户唯一标识的用户的发言状态,从而提示发言用户是谁,能有效提高用户体验。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为一个实施例的服务器生成基于hls协议的索引文件的方法流程图;

图2为终端根据索引文件标识用户发言状态的方法流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

图1为一个实施例的服务器生成基于hls协议的索引文件的方法流程图。

本发明提供一种服务器生成基于hls协议的索引文件的方法,包括如下步骤:

步骤s110:服务器混音时生成多个播放时长为预设时长的音视频文件。混音是将多路来源的音频信息融合成一个整体的音频信息的过程,例如在直播中,将多个发言用户(每个发言用户uid对应一路来源)的声音信息融合成一个声音信息。在这里,音视频文件可以是音频文件,例如mp3格式的文件,也可以是带有音频信息的视频文件,例如ts文件。

hls(httplivestreaming)是苹果公司针对iphone、ipod、itouch和ipad等基于ios系统的移动设备而开发的基于http协议的流媒体解决方案。在hls技术中web服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的http协议,所以只要使用hls技术,就能在普通的http应用上直接提供点播和直播。在appstore中的视频相关的应用,基本都是应用此种技术。

该技术基本原理是将视频文件或视频流切分成多个小片(即所述的音视频文件,如ts文件),并建立索引文件(如m3u8文件)。支持的视频流编码有h.264,音频流编码有aac。

所述预设时长,是由服务器一端预设好的,例如2秒,也即服务器在混音的时候,将混音后的音视频信息拆分生成多个播放时长为2秒的音视频文件,例如为ts文件。

步骤s120:将对应所述音视频文件的统一资源定位符写入索引文件。

服务器生成的每个音视频文件,都会存放在某一网络位置上,例如放在服务器上。因此,每个音视频文件都会有一个对应的统一资源定位符url,以标识其所在位置。例如将0.ts、1.ts、…、n.ts这n个音视频文件的url写入到索引文件中,其url依次如下:

http://…/0.ts

http://…/1.ts

http://…/n.ts

将音视频文件的url写入索引文件时,url在索引文件中的排列次序可以按照音视频文件的播放顺序来排列。例如如果音视频文件的播放顺序为0.ts、1.ts、…、n.ts,则其url在索引文件中的排列次序依次如下:

http://…/0.ts

http://…/1.ts

http://…/n.ts

索引文件,由数据文件组成,它是带索引的顺序文件,例如可以是m3u8文件。m3u8文件是指utf-8编码格式的m3u文件。m3u文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。在以下的描述中,索引文件以m3u8文件为例。

步骤s130:将所述音视频文件中发言用户的用户唯一标识写入索引文件,并建立所述统一资源定位符与所述用户唯一标识之间的映射关系。

服务器在混音时,通过多路来源的音频信息可以确定每路来源的音频信息所对应的发言用户的用户唯一标识uid,这是因为每路来源的音频信息都对应有唯一的发言用户,即对应唯一发言用户的uid。因此,服务器可以在混音生成每个所述音视频文件时,确定每个所述音视频文件对应的发言用户的uid(可能有1个或多个,也可能为0个)。于是,在每个所述音视频文件中,可能有发言用户在发言,也有可能并没有人在发言。例如,有的音视频文件中只有一个发言用户在发言,有的音视频文件中有多于一个发言用户在发言,而有的音视频文件中没有用户在发言。

因此,在生成音视频文件时,确定其对应的url后,将该音视频文件中发言用户的uid写入索引文件,并建立url与用户唯一标识之间的映射关系,就可以使得终端在获取该索引文件后,可以在播放所述音视频文件时同时提示发言用户是谁。

在本实施例中,可以将用户唯一标识以注释的形式写入索引文件。m3u8文件是一个由多个独立行组成的文本文件,每行由回车/换行区分。每一行可以是一个url或是以“#”号开头的字符串,并且空格只能存在于一行中不同元素的分隔。一个url表示一个媒体段或是“variantplaylistfile”(最多支持一层嵌套,即一个m3u8文件中嵌套另一个m3u8)。以“#ext”字符开头的表示一个标签“tag”,否则其他“#”字符开头的表示注释。因此,在本实施例中,可以紧跟在“#”字符之后附上特定的字符串,来表明这段注释是用于记载音视频文件中发言用户的uid的。特定的字符串可以自行约定,只要与已有的标签区分开即可。例如,特定的字符串可以预设为hjuidaudioext,如果某一个音视频文件中的发言用户有uid1和uid2,则可以在索引文件上写入该音视频文件对应的注释“#hjuidaudioextuid1,uid2”。

在索引文件中,url与uid之间的映射关系是用来标识音视频文件所对应的uid的,也即可以让终端知道每个音视频文件所对应的url对应有哪些uid。因此,这种映射关系可以有多种实施方式,以下举例说明:

实施例一:

记载有uid的注释依照预设的位置关系依附于其对应的url。预设的位置关系可以是:注释位于其对应的url的后一行。例如,如果存在n个音视频文件0.ts、1.ts、…、n.ts,其url和对应的uid分别如下:

http://…/0.ts;uid1,uid2;

http://…/1.ts;uid3;

http://…/n.ts;uid1,uid3;

则在索引文件中,url和记载有对应的uid的注释之间预设的位置关系如下:

http://…/0.ts

#hjuidaudioextuid1,uid2

http://…/1.ts;

#hjuidaudioextuid3

http://…/n.ts

#hjuidaudioextuid1,uid3

其中,“#hjuidaudioextuid1,uid2”、“#hjuidaudioextuid3”、…、“#hjuidaudioextuid1,uid3”都是各自url所对应的注释。可以看出,url和注释形成一组信息(例如http://…/0.ts和#hjuidaudioextuid1,uid2),每个url都有其对应的一组信息,不同的url之间的分组信息是相互区分开的。因此,注释也不一定是位于其对应的url的后一行,还可以是位于其对应的url的后m行,甚至可以位于其对应的url的前一行或m行,只要每个url都和对应的注释形成一组信息、且不同url之间的每组信息之间相互区分即可。

进一步的,如果在音视频文件中包括多于一个发言用户,且不同发言用户发言的开始时间和结束时间并不一致,为了更精确的标识每个时刻的发言用户有哪些,则可以考虑将对应发言用户发言的开始时间和结束时间写入注释中。例如,http://…/0.ts这一url所对应的uid有uid1和uid2,uid1对应的发言用户发言的开始时间和结束时间分别为start1和end1,uid2对应的发言用户发言的开始时间和结束时间分别为start2和end2,则url和记载有对应的uid的注释之间预设的位置关系如下:

http://…/0.ts

#hjuidaudioextuid1,start1,end1|uid2start2,end2

如果发言用户发言断断续续的,例如uid1从start1发言到end1,然后过段时间又从start1’发言到end1’,且这些时刻点都处于一个预设时长之内,则url和记载有对应的uid的注释之间预设的位置关系如下:

http://…/0.ts

#hjuidaudioextuid1,start1,end1|uid1,start1’,end1’|uid2start2,end2

实施例二:

可以直接在注释中写入相应的url。

继续以上述例子为例说明,http://…/0.ts这一url所对应的uid有uid1和uid2,则其对应注释可以是“#hjuidaudioexthttp://…/0.tsuid1,uid2”。

因此,上述的映射关系可以有多种实施方式,在此恕不赘述。

在本实施例中,步骤s130之后,还可以包括步骤:向终端提供并更新所述索引文件,以使得所述终端执行如下操作:

获取所述音视频文件对应的统一资源定位符与所述用户唯一标识,并在播放所述音视频文件时通过用户界面实时展示对应所述用户唯一标识的用户图标。

服务器生成索引文件时,将会根据音视频文件的不断增加而不断更新该索引文件。终端从服务器获取该索引文件后,根据所获取的url和对应的uid,在播放所述音视频文件时,通过用户界面(例如基于h5的页面)实时标识对应uid的用户的发言状态。例如,在播放某一音视频文件时,其发言用户有uid1和uid2,则在播放时可以同时在用户界面实时标识uid1和uid2的用户的发言状态,例如可以实时展示或点亮uid1和uid2的用户头像以表示uid1和uid2在发言,又或者实时展示或点亮uid1和uid2对应的发言图标以表示uid1和uid2在发言,只要使观看者知道哪个用户正在发言即可,在此恕不赘述。

以下对本发明的方法进行简单举例,用户如果在用户界面点击了类似“我要发言”的按键图标,则无论用户是否真正发出声音,服务器都会默认该用户正在发言,并在用户界面进行标识。当用户关掉“我要发言”的按键图标,则默认用户放弃发言。本发明的方法可以应用于多人语音交互场景,例如各种语音交互软件或者游戏软件。以yy公司(华多网络科技有限公司)的寻欢app为例,在这个app中主持人和上座嘉宾通过语音进行交流和互动,当主持人或者上座嘉宾选择发言时,在游戏客户端的用户界面就会实时进行相应的标识主持人或者上座嘉宾的发言状态。应用本发明的方法可以使h5版的游戏客户端在播放语音时能同步更新对应主持人或嘉宾座位上的用户发言状态图标,从而提高应用的体验。又以多人对战游戏为例,如果队友选择发言,可以在游戏界面标识该队友的发言状态,提高游戏体验。

上述的服务器生成基于hls协议的索引文件的方法,服务器混音时生成多个播放时长为预设时长的音视频文件;将对应所述音视频文件的统一资源定位符写入索引文件;将所述音视频文件中发言用户的用户唯一标识写入索引文件,并建立所述统一资源定位符与所述用户唯一标识之间的映射关系,通过这种映射关系,使得终端在获取该索引文件后,可以在播放所述音视频文件时同时提示发言用户是谁,能有效提高用户体验。

图2为终端根据索引文件标识用户发言状态的方法流程图。对应上述的服务器生成基于hls协议的索引文件的方法,以下还提供一种终端根据索引文件标识用户发言状态的方法,其包括如下步骤:

步骤s210:终端从服务器获取基于hls协议的索引文件,所述索引文件中记载有多个音视频文件的统一资源定位符和所述音视频文件中发言用户的用户唯一标识,所述音视频文件的播放时长为预设时长,所述统一资源定位符与所述用户唯一标识之间建立有映射关系。

该多个音视频文件是由服务器混音时生成,详见上述服务器生成基于hls协议的索引文件的方法中的步骤s110。

服务器生成的每个音视频文件,都会存放在某一网络位置上,例如放在服务器上。因此,每个音视频文件都会有一个对应的统一资源定位符url,以标识其所在位置。例如索引文件中包括0.ts、1.ts、…、n.ts这n个音视频文件的url,其url依次如下:

http://…/0.ts

http://…/1.ts

http://…/n.ts

url在索引文件中的排列次序可以按照音视频文件的播放顺序来排列。例如如果音视频文件的播放顺序为0.ts、1.ts、…、n.ts,则其url在索引文件中的排列次序依次如下:

http://…/0.ts

http://…/1.ts

http://…/n.ts

索引文件,由数据文件组成,它是带索引的顺序文件,例如可以是m3u8文件。m3u8文件是指utf-8编码格式的m3u文件。m3u文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。在以下的描述中,索引文件以m3u8文件为例。

服务器在混音时,通过多路来源的音频信息可以确定每路来源的音频信息所对应的发言用户的用户唯一标识uid,这是因为每路来源的音频信息都对应有唯一的发言用户,即对应唯一发言用户的uid。因此,服务器可以在混音生成每个所述音视频文件时,确定每个所述音视频文件对应的发言用户的uid(可能有1个或多个,也可能为0个)。于是,在每个所述音视频文件中,可能有发言用户在发言,也有可能并没有人在发言。例如,有的音视频文件中只有一个发言用户在发言,有的音视频文件中有多于一个发言用户在发言,而有的音视频文件中没有用户在发言。

因此,服务器在生成音视频文件时,确定其对应的url后,将该音视频文件中发言用户的uid写入索引文件,并建立url与用户唯一标识之间的映射关系,就可以使得终端在获取该索引文件后,可以在播放所述音视频文件时同时提示发言用户是谁。

用户唯一标识以注释的形式记载于所述索引文件,统一资源定位符与所述用户唯一标识之间的映射关系包括:记载有所述用户唯一标识的注释依照预设的位置关系依附于其对应的所述统一资源定位符。具体可以参看上述服务器生成基于hls协议的索引文件的方法中的步骤s130中的描述,在此恕不赘述。

步骤s220:从所述索引文件中提取所述统一资源定位符和所述用户唯一标识,播放位于所述统一资源定位符对应的网络位置上的所述音视频文件,并通过用户界面实时标识对应所述用户唯一标识的用户的发言状态。

在一些实施例中,终端按照多个所述视频文件的统一资源定位符的排列次序每隔所述预设时长(例如2秒)依次提取相应的所述注释。按上面的描述,由于url在索引文件中的排列次序可以按照音视频文件的播放顺序来排列,记载有uid的注释依照预设的位置关系依附于其对应的url,例如索引文件中,url和记载有对应的uid的注释之间预设的位置关系如下:

http://…/0.ts

#hjuidaudioextuid1,uid2

http://…/1.ts;

#hjuidaudioextuid3

http://…/n.ts

#hjuidaudioextuid1,uid3

如果所述预设时长为2秒,则终端在按照上述url排列次序播放这些音视频文件时,可以设定定时器每隔2秒获取一次注释,则可以实现在播放时实时获取对应的发言用户uid,并通过用户界面实时标识对应uid的用户的发言状态。

终端从服务器获取该索引文件后,根据所获取的url和对应的uid,在播放所述音视频文件时,通过用户界面(例如基于h5的页面)实时标识对应uid的用户的发言状态。例如,在播放某一音视频文件时,其发言用户有uid1和uid2,则在播放时可以同时在用户界面实时标识uid1和uid2的用户的发言状态,例如可以实时展示或点亮uid1和uid2的用户头像以表示uid1和uid2在发言,又或者实时展示或点亮uid1和uid2对应的发言图标以表示uid1和uid2在发言,只要使观看者知道哪个用户正在发言即可,在此恕不赘述。

例如,用户如果在用户界面点击了类似“我要发言”的按键图标,则无论用户是否真正发出声音,服务器都会默认该用户正在发言,并在用户界面进行标识。当用户关掉“我要发言”的按键图标,则默认用户放弃发言。本发明的方法可以应用于多人语音交互场景,例如各种语音交互软件或者游戏软件。以yy公司(华多网络科技有限公司)的寻欢app为例,在这个app中主持人和上座嘉宾通过语音进行交流和互动,当主持人或者上座嘉宾选择发言时,在游戏客户端的用户界面就会实时进行相应的标识主持人或者上座嘉宾的发言状态。应用本发明的方法可以使h5版的游戏客户端在播放语音时能同步更新对应主持人或嘉宾座位上的用户发言状态图标,从而提高应用的体验。又以多人对战游戏为例,如果队友选择发言,可以在游戏界面标识该队友的发言状态,提高游戏体验。

对应上述的终端根据索引文件标识用户发言状态的方法,以下提供一种终端,其包括一个或多个处理器,存储器,一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述任一实施例所述的终端根据索引文件标识用户发言状态的方法。所述的终端,既可以是固定终端,例如台式电脑;也可以是移动终端,例如笔记本电脑、平板电脑、手机等等智能终端。

上述的终端根据索引文件标识用户发言状态的方法和终端,终端从服务器获取基于hls协议的索引文件,所述索引文件中记载有多个音视频文件的统一资源定位符和所述音视频文件中发言用户的用户唯一标识,所述音视频文件的播放时长为预设时长,所述统一资源定位符与所述用户唯一标识之间建立有映射关系;从所述索引文件中提取所述统一资源定位符和所述用户唯一标识,播放位于所述统一资源定位符对应的网络位置上的所述音视频文件,并通过用户界面(例如基于h5的页面)实时标识对应所述用户唯一标识的用户的发言状态。终端通过从服务器在获取该索引文件,可以在播放所述音视频文件时同时通过用户界面实时标识对应所述用户唯一标识的用户的发言状态,从而提示发言用户是谁,能有效提高用户体验。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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