发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供直播画面实时显示多语种对话字幕的流媒体处理方法和装置。
本发明解决上述技术问题的技术方案如下:
一种直播画面实时显示多语种对话字幕的流媒体处理方法,所述方法包括:
当接收到客户端发送的直播发起请求后,生成第一直播流地址和第二直播流地址,并将所述第一直播流地址和所述第二直播流地址发送至所述客户端;
接收所述客户端通过所述第二直播流地址推送的直播流,将所述直播流分离成第一视频流和第一音频流,对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,同时对所述第一视频流进行处理,得到第一视频队列;
根据预设直播延迟时间,将所述第一音频队列、所述第二音频队列和所述第一视频队列进行抽帧叠化压制后推送至所述第一直播流地址。
本方法发明的有益效果是:提出了一种直播画面实时显示多语种对话字幕的流媒体处理方法,包括当接收到客户端发送的直播发起请求后,生成第一直播流地址和第二直播流地址,并将所述第一直播流地址和所述第二直播流地址发送至所述客户端;接收所述客户端通过所述第二直播流地址推送的直播流,将所述直播流分离成第一视频流和第一音频流,对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,同时对所述第一视频流进行处理,得到第一视频队列;根据预设直播延迟时间,将所述第一音频队列、所述第二音频队列和所述第一视频队列进行抽帧叠化压制后推送至所述第一直播流地址。本发明是对于主播而言,使用简单,基本无感知,无需增设额外硬件。同时极大降低了跨语种直播的成本,易于推广,同时,对于直播观众而言,无需直播APP进行适配,可兼容目前所有直播平台,此外可以向主播和观众双方提供质量更高的直播翻译和校对服务。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步地,所述对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,具体包括:
所述第一音频流切割为多个音频信号组,并将所述音频信号组按照顺序以队列方式进行存储,得到第一音频队列;
依次读取出所述第一音频队列中的音频信号组,生成所述音频信号组的译文字幕文本序列,并将所述译文字幕文本序列以队列方式进行存储,得到第二音频队列。
进一步地,所述依次读取出所述第一音频队列中的音频信号组,生成所述音频信号组的译文字幕文本序列,并将所述译文字幕文本序列以队列方式进行存储,得到第二音频队列,具体包括:
依次读取出所述第一音频队列中的音频信号组,将音频信号组转录为对应的字幕文本序列,并将所述字幕文本序列以队列方式进行存储,得到第一字幕队列,其中所述字幕文本序列中包括对应的字幕语句的语句开始时间和语句结束时间;
从所述第一字幕队列中依次读取所述字幕文本序列,并将所述字幕文本序列翻译为对应的译文字幕文本序列后,将所述译文字幕文本序列以队列方式进行存储,得到所述第二音频队列。
进一步地,所述对所述第一视频流进行处理,得到第一视频队列,具体包括:
将所述第一视频流进行切割,生成多个视频帧;
获取各所述视频帧的显示时间PTS,其中所述显示时间PTS是相对于直播开始时刻的显示时间,将所述视频帧和所述显示时间PTS按顺序以队列方式进行存储,得到所述第一视频队列。
进一步地,所述根据预设直播延迟时间,将所述第一音频队列、所述第二音频队列和所述第一视频队列进行抽帧叠化压制后推送至所述第一直播流地址,具体包括:
依次读取所述第一视频队列中的所述视频帧、所述第一音频队列中的所述音频信号组和所述第二音频队列中的所述译文字幕文本序列;
根据所述视频帧的显示时间PTS以及所述译文字幕文本序列对应的字幕语句的语句开始时间和语句结束时间,判断是否进行压制;
若进行压制,则将所述第一视频队列中的所述视频帧、所述第一音频队列中的所述音频信号组和所述第二音频队列中的所述译文字幕文本序列新混合为直播信号。
进一步地,所述根据所述视频帧的显示时间PTS以及所述译文字幕文本序列对应的字幕语句的语句开始时间和语句结束时间,判断是否进行压制,具体包括:
判断所述显示时间PTS是否早于所述语句开始时间;
若是,则不进行压制;
否则,判断所述显示时间PTS是否早于所述语句结束时间;
若是,则进行压制;
否则,舍弃所述译文字幕文本序列。
进一步地,所述将所述译文字幕文本序列以队列方式进行存储,得到所述第二音频队列之后,还包括:
从所述第二音频队列中抽取所述译文字幕文本序列进行审校和修改,并将修改后的所述译文字幕文本序列覆盖之前的所述译文字幕文本序列。
本发明还解决上述技术问题的另一种技术方案如下:
一种直播画面实时显示多语种对话字幕的流媒体处理装置,所述装置包括:
预处理模块,用于当接收到客户端发送的直播发起请求后,生成第一直播流地址和第二直播流地址,并将所述第一直播流地址和所述第二直播流地址发送至所述客户端;
处理模块,用于接收所述客户端通过所述第二直播流地址推送的直播流,将所述直播流分离成第一视频流和第一音频流,对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,同时对所述第一视频流进行处理,得到第一视频队列;
压制模块,用于根据预设直播延迟时间,将所述第一音频队列、所述第二音频队列和所述第一视频队列进行抽帧叠化压制后推送至所述第一直播流地址。
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的直播画面实时显示多语种对话字幕的流媒体处理方法的步骤。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的直播画面实时显示多语种对话字幕的流媒体处理方法的步骤。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
如图1本发明实施例所述的一种直播画面实时显示多语种对话字幕的流媒体处理方法所示,包括以下步骤:
110、当接收到客户端发送的直播发起请求后,生成第一直播流地址和第二直播流地址,并将所述第一直播流地址和所述第二直播流地址发送至所述客户端。
120、接收所述客户端通过所述第二直播流地址推送的直播流,将所述直播流分离成第一视频流和第一音频流,对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,同时对所述第一视频流进行处理,得到第一视频队列。
130、根据预设直播延迟时间,将所述第一音频队列、所述第二音频队列和所述第一视频队列进行抽帧叠化压制后推送至所述第一直播流地址。
基于上述实施例所提出的一种直播画面实时显示多语种对话字幕的流媒体处理方法,包括当接收到客户端发送的直播发起请求后,生成第一直播流地址和第二直播流地址,并将所述第一直播流地址和所述第二直播流地址发送至所述客户端;接收所述客户端通过所述第二直播流地址推送的直播流,将所述直播流分离成第一视频流和第一音频流,对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,同时对所述第一视频流进行处理,得到第一视频队列;根据预设直播延迟时间,将所述第一音频队列、所述第二音频队列和所述第一视频队列进行抽帧叠化压制后推送至所述第一直播流地址。本申请对于主播而言,使用简单,基本无感知,无需增设额外硬件。同时极大降低了跨语种直播的成本,易于推广,同时,对于直播观众而言,无需直播APP进行适配,可兼容目前所有直播平台,此外可以向主播和观众双方提供质量更高的直播翻译和校对服务。
基于上述实施例,进一步地,步骤120中对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,具体包括:
121、所述第一音频流切割为多个音频信号组,并将所述音频信号组按照顺序以队列方式进行存储,得到第一音频队列。
122、依次读取出所述第一音频队列中的音频信号组,生成所述音频信号组的译文字幕文本序列,并将所述译文字幕文本序列以队列方式进行存储,得到第二音频队列。
进一步地,步骤122中具体包括:
1221、依次读取出所述第一音频队列中的音频信号组,将音频信号组转录为对应的字幕文本序列,并将所述字幕文本序列以队列方式进行存储,得到第一字幕队列,其中所述字幕文本序列中包括对应的字幕语句的语句开始时间和语句结束时间。
1222、从所述第一字幕队列中依次读取所述字幕文本序列,并将所述字幕文本序列翻译为对应的译文字幕文本序列后,将所述译文字幕文本序列以队列方式进行存储,得到所述第二音频队列。
进一步地,步骤120中对所述第一视频流进行处理,得到第一视频队列,具体包括:
将所述第一视频流进行切割,生成多个视频帧。
获取各所述视频帧的显示时间PTS,其中所述显示时间PTS是相对于直播开始时刻的显示时间,将所述视频帧和所述显示时间PTS按顺序以队列方式进行存储,得到所述第一视频队列。
进一步地,步骤130中具体包括:
131、依次读取所述第一视频队列中的所述视频帧、所述第一音频队列中的所述音频信号组和所述第二音频队列中的所述译文字幕文本序列。
132、根据所述视频帧的显示时间PTS以及所述译文字幕文本序列对应的字幕语句的语句开始时间和语句结束时间,判断是否进行压制。
133、若进行压制,则将所述第一视频队列中的所述视频帧、所述第一音频队列中的所述音频信号组和所述第二音频队列中的所述译文字幕文本序列新混合为直播信号。
进一步地,步骤132中具体包括:
判断所述显示时间PTS是否早于所述语句开始时间。
若是,则不进行压制。
否则,判断所述显示时间PTS是否早于所述语句结束时间。
若是,则进行压制。
否则,舍弃所述译文字幕文本序列。
进一步地,步骤122中还包括:
1223、从所述第二音频队列中抽取所述译文字幕文本序列进行审校和修改,并将修改后的所述译文字幕文本序列覆盖之前的所述译文字幕文本序列。
应理解,例如,主播选择直播平台,通过直播平台生成第一直播流地址,并通过直播客户端设置直播参数后发起直播,服务后台服务生成并返回一个新的混流地址即第二直播流地址。
直播客户端将主播的直播音视频流推送至第二直播流地址,交由后台服务器的音视频流处理模块进行处理。
音视频流处理模块先将直播流分离成两路,其中一路是视频流,缓存至服务器的内存中,而另外一路音频流,被添加时间戳、语言对、字幕样式等信息后,传送至同传翻译服务模块。
同传服务模块向字幕处理模块实时回传不同语言对的原译文和时间戳等信息,字幕处理模块将这些信息形成自有格式字幕文件,保存至服务器硬盘中,并可以提供可供调用的接口,实现校对实时修改字幕的内容和样式。
根据设定的直播延迟时间,后台视频流处理模块向将原本被缓存至服务器内存中的直播流与字幕进行抽帧叠化压制后,推送至第一直播流地址。
直播观众可以在同一时间看到添加了字幕画面的视频直播画面,并且可以通过切换不同目标语言,切换不同的直播画面源,实现翻译字幕语种的显示切换。
应理解,通过任意直播协议接入直播信号,直播信号主要有视频信号和音频信号组成,由音视频分离模块将混合的直播信号分离为单独的音频信号和单独的视频信号。对于音频信号和视频信号可以进行并行处理。
对于音频信号的处理,首先按先后顺序以队列组织方式将音频信号存储于主存储器。
按先后顺序将存储于队列的音频数据处理成预设格式后,发送给听录转写模块,听录转写模块接收音频数据,根据设置的语言对,生成带有句子开始时间A和结束时间B的字幕文本序列S(A-B)、S1(A1-B1)、S2(A2-B2)、S3(A3-B3)等等,同样将字幕序列已队列的组织方式存储于主存储器。
将上一步生成的字幕序列S(A-B)发送到翻译接口,生成序列S(A-B)的译文S'(A'-B'),将S(A-B)和S'(A'-B')合并后得到译文字幕序列S”(A”-B”),将译文字幕序列S”(A”-B”)同样以队列的组织方式存储于主存储器。
可选的,通过客户端抽取译文字幕序列S”(A”-B”),可以审校和修改,以确保其严肃精准,被修改后的原文文本和译文文本会覆盖之前的S”(A”-B”)
准备好字幕队列数据和音频队列数据,用于压制和重新混流。
并行处理视频信号,收集视频信号数据,生成视频帧和视频帧的显示时间,是指相对于直播开始时刻的显示时间PTS,将视频帧和PTS按先后顺序以队列组织方式存储于主存储器。
如图3所示,根据视频帧的显示时间PTS以及译文字幕文本序列对应的字幕语句的句子开始时间A和结束时间B,判断是否进行压制。
判断显示时间PTS是否早于句子开始时间A。
若是,则不进行压制。
否则,判断所述显示时间PTS是否早于句子结束时间B。
若是,则进行压制。
否则,舍弃该译文字幕文本序列。
若进行压制,则将第一视频队列中的视频帧、所述第一音频队列中的音频信号组和第二音频队列中的所述译文字幕文本序列新混合为直播信号。混合得到的直播信号可以通过任意直播协议输出,同时,清理过时数据以释放主存储器的存储空间。
应理解,本申请中一是提供一种能够在直播中实时显示原译文字幕的处理方法,二是能让同一场直播覆盖更多不同语种人群的需求,可以让观众根据需求自由切换显示译文的语言。三是为了满足不同直播翻译质量的需要,可以自由设定直播延迟时间,并且可以让不同语种校对人员进行实时精细校对和修改字幕样式。四是能够提供在直播结束后,可以快速生成带有不同语种译文的直播回放。
如图2所示,一种直播画面实时显示多语种对话字幕的流媒体处理装置包括:
预处理模块,用于当接收到客户端发送的直播发起请求后,生成第一直播流地址和第二直播流地址,并将所述第一直播流地址和所述第二直播流地址发送至所述客户端。
处理模块,用于接收所述客户端通过所述第二直播流地址推送的直播流,将所述直播流分离成第一视频流和第一音频流,对所述第一音频流进行处理并添加字幕,形成第一音频队列和第二音频队列,同时对所述第一视频流进行处理,得到第一视频队列。
压制模块,用于根据预设直播延迟时间,将所述第一音频队列、所述第二音频队列和所述第一视频队列进行抽帧叠化压制后推送至所述第一直播流地址。
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的直播画面实时显示多语种对话字幕的流媒体处理方法的步骤。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的直播画面实时显示多语种对话字幕的流媒体处理方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。