CN113473045A - 一种字幕添加方法、装置、设备和介质 - Google Patents

一种字幕添加方法、装置、设备和介质 Download PDF

Info

Publication number
CN113473045A
CN113473045A CN202010337661.9A CN202010337661A CN113473045A CN 113473045 A CN113473045 A CN 113473045A CN 202010337661 A CN202010337661 A CN 202010337661A CN 113473045 A CN113473045 A CN 113473045A
Authority
CN
China
Prior art keywords
subtitle
character string
data
video frame
picture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010337661.9A
Other languages
English (en)
Inventor
李蕾
张玉
高雪松
陈维强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Group Co Ltd
Hisense Co Ltd
Original Assignee
Hisense Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hisense Co Ltd filed Critical Hisense Co Ltd
Priority to CN202010337661.9A priority Critical patent/CN113473045A/zh
Publication of CN113473045A publication Critical patent/CN113473045A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/278Subtitling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440236Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Circuits (AREA)

Abstract

本发明公开了一种字幕添加方法、装置、设备和介质,接收字幕数据和视频数据;基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取该视频帧对应的字幕子数据,并判断该字幕子数据转换得到的第一字符串是否与该视频帧的上一视频帧对应的第二字符串相同;若相同,将作为当前surface对象的数据转换为字幕图片,并将该字幕图片添加到该视频帧中,发送添加了字幕图片的视频帧。由于本发明在该视频帧的第一字符串与该视频帧的上一视频帧对应的第二字符串相同时,可以直接将作为当前surface对象的数据转换为字幕图片,并将该字幕图片添加到该视频帧中,从而减少了创建surface对象的次数,节约了系统资源。

Description

一种字幕添加方法、装置、设备和介质
技术领域
本发明涉及视频通话技术领域,尤其涉及一种字幕添加方法、装置、设备和介质。
背景技术
随着视频通话技术的发展,在现有家庭中,智能管家服务器已经可以通过智能电视的显示屏显示视频通话过程中的视频画面,并且在进行实时的视频通话时还可以对音频实时翻译,在显示屏上以字幕形式显示通话的内容。
图1为现有技术提供的一种实现视频通话的系统架构示意图,如图1所示:智感器采集用户的视频数据,小聚音响采集用户的音频数据,同时智感器和小聚音响将采集的视频数据和音频数据发送给智能管家服务器,智能管家服务器将获取到的视频数据和音频数据上传云端服务器,云端服务器在接收到视频数据和音频数据后,将音频数据和视频数据进行转发,从而实现根据音频数据生成字幕数据,同时将通过实时翻译生成的字幕数据发送给智能管家服务器,用于在显示界面上显示通话的内容。
在现有技术中,智能管家服务器在接收到云端服务器发送的字幕数据后,基于Gstreamer框架实现字幕添加,在Gstreamer框架的管道中,通过循环调用render函数来实现字幕数据和视频数据的推送。具体的调用次数是管道进行控制,与数据流的帧率相匹配,从而达到字幕图片与视频帧的一一对应的融合。
例如,如果以30帧每秒为例,智能管家服务器将会以每秒30调用render函数推送字幕数据。
由于render函数在固定帧率下的推送次数不变时,对每一帧的字幕数据都会创建新的surface对象,从而生成字幕图片,并且在创建新的surface对象都需要调用pango和cairo库来实现缩放、偏移、转换等计算,以及内存空间的分配等,从而大量占用CPU,导致了系统资源的浪费。
发明内容
本发明实施例提供了一种字幕添加方法、装置、设备和介质,用以解决现有技术中在生成字幕图片时,浪费系统资源的问题。
本发明实施例提供了一种字幕添加方法,所述方法包括:
接收字幕数据和视频数据;
基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,并判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同;
若相同,将作为当前surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中,发送添加了字幕图片的视频帧。
进一步地,所述接收字幕数据方法还包括:
接收文本格式的字幕数据,其中所述文本格式的字幕数据是以自然对话语句结束为分界点确定的,或以预设的时间长度进行分割确定的。
进一步地,所述判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同包括:
通过预设的第一函数,判断所述第一字符串与所述第二字符串是否相同,在所述第一字符串与所述第二字符串相同时,针对所述第一字符串设置字符串相同标志位,并将所述字符串发送给预设的第二函数;
所述将作为当前surface对象的数据转换为字幕图片包括:
通过所述预设的第二函数,若所述预设的第二函数识别到字符串相同标志位时,将作为当前surface对象的数据转换为字幕图片。
进一步地,若确定所述第一字符串与所述第二字符串不同,所述方法还包括:
确定字幕显示的相应参数,并创建surface对象,其中作为所述创建的surface对象的数据包括字幕显示的相应参数及所述第一字符串,将作为所述创建的surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中。
进一步地,所述将所述字幕图片添加到所述视频帧中包括:
确定字幕显示的大小参数和位置参数;
根据所述大小参数,确定对应大小的所述字幕图片,并根据所述位置参数,将所述字幕图片添加到所述视频帧的对应位置。
本发明实施例提供了一种字幕添加装置,所述装置包括:
接收单元,用于接收字幕数据和视频数据;
处理单元,用于基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,并判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同,若相同,将作为当前surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中;
发送单元,用于发送添加了字幕图片的视频帧。
进一步地,所述接收单元,用于接收文本格式的字幕数据,其中所述文本格式的字幕数据是以自然对话语句结束为分界点确定的,或以预设的时间长度进行分割确定的。
进一步地,所述处理单元包括:
字符串转换子单元,用于将针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,将所述字幕子数据转换为第一字符串;
判断子单元,用于通过预设的第一函数,判断所述第一字符串与所述第二字符串是否相同,在所述第一字符串与所述第二字符串相同时,针对所述第一字符串设置字符串相同标志位,并将所述字符串发送给预设的第二函数;
字幕图片转换子单元,用于通过所述预设的第二函数,若所述预设的第二函数识别到字符串相同标志位时,将作为当前surface对象的数据转换为字幕图片。
进一步地,所述处理单元,还用于若确定所述第一字符串与所述第二字符串不同,确定字幕显示的相应参数,并创建surface对象,其中作为所述创建的surface对象的数据包括字幕显示的相应参数及所述第一字符串,将作为所述创建的surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中。
进一步地,所述处理单元,用于若确定所述第一字符串与所述第二字符串不同,确定字幕显示的相应参数,并创建surface对象,其中作为所述创建的surface对象的数据包括字幕显示的相应参数及所述第一字符串,将作为所述创建的surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中。
进一步地,所述处理单元,具体用于确定字幕显示的大小参数和位置参数;根据所述大小参数,确定对应大小的所述字幕图片,并根据所述位置参数,将所述字幕图片添加到所述视频帧的对应位置。
相应地,本发明实施例提供一种服务器,所述服务器包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于执行存储器中存储的计算机程序时实现上述任一所述字幕添加方法的步骤。
相应地,本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述字幕添加方法的步骤。
本发明实施例提供了一种字幕添加方法、装置、设备和介质,接收字幕数据和视频数据;基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取该视频帧对应的字幕子数据,并判断该字幕子数据转换得到的第一字符串是否与该视频帧的上一视频帧对应的第二字符串相同;若相同,将作为当前surface对象的数据转换为字幕图片,并将该字幕图片添加到该视频帧中,发送添加了字幕图片的视频帧。由于本发明该视频帧的第一字符串与该视频帧的上一视频帧对应的第二字符串相同时,可以直接将作为当前surface对象的数据转换为字幕图片,并将该字幕图片添加到该视频帧中,从而减少了创建surface对象的次数,节约了系统资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种实现视频通话的系统架构示意图;
图2为本发明实施例提供的一种字幕添加方法的过程示意图;
图3为本发明实施例提供的一种智能管家服务器接收字幕数据的示意图;
图4为本发明实施例提供的一种字幕添加的处理流程示意图;
图5为本发明实施例提供的另一种字幕添加的处理流程示意图;
图6为本发明实施例提供的一种字幕添加装置的结构示意图;
图7为本发明实施例提供的一种服务器结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图2为本发明实施例提供的一种字幕添加方法的过程示意图,该过程包括以下步骤:
S201:接收字幕数据和视频数据。
在本发明实施例中,该字幕添加方法应用于智能管家服务器,该智能管家服务器是本地服务器,该智能管家服务器用于为生成字幕图片提供计算和数据的处理。
该智能管家服务器接收字幕数据和视频数据,其中,该字幕数据是由云端服务器对音频数据进行实时翻译确定出的,该音频数据是由音频采集设备采集并通过该智能管家服务器发送给云端服务器的,该音频采集设备可以是音响、麦克风、话筒和拾音器等。
音频采集设备采集到音频数据后,可以通过有线传输或无线传输等方式,通过该智能管家服务器将该音频数据发送给云端服务器,该云端服务器在将音频数据翻译为字幕数据后,将字幕数据传输给智能管家服务器。
该视频数据是由图像采集设备采集的,图像采集设备采集到该视频数据后将该视频数据发送给智能管家服务器,另外因为本发明实施例的方法应用于视频通话场景,因此该视频数据还可以是由云端服务器转发给该智能管家服务器的;该图像采集设备可以是智感器、摄像头、摄像机等设备,该图像采集设备采集到视频数据后,可以通过有线传输和无线传输等方式,将该视频数据发送给智能管家服务器。
S202:基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,并判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同。
该智能管家服务器在接收到字幕数据和视频数据后,基于Gstreamer框架对字幕数据和视频数据进行处理,其中,该Gstreamer框架是一个创建流媒应用程序的框架,该Gstreamer框架是基于插件的,插件可以方便地接入到该Gstreamer框架的管道中,实现对代码的复用。
该Gstreamer框架通过总线监控管道中各个元件的状态,从而对获取到的字幕数据和视频数据等数据进行管理。为了实现将字幕添加到视频中,在本发明实施例中,该智能管家服务器还需要确定出视频数据中包含的每个视频帧对应的字幕子数据。获取到该视频帧对应的字幕子数据后,将该视频帧对应的字幕子数据进行转换,得到该视频帧对应的第一字符串。
为了节省系统资源,当得到第一字符串后,还需要判断该第一字符串和该视频帧相邻的上一视频帧对应的第二字符串是否相同,如果该第一字符串与该第二字符串相同,说明该视频帧对应的字幕子数据与该视频帧的上一视频帧的字幕子数据也相同。如果该第一字符串与该第二字符串不相同,说明该视频帧对应的字幕子数据与该视频帧的上一视频帧的字幕子数据不相同。
S203:若相同,将作为当前surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中,发送添加了字幕图片的视频帧。
在该第一字符串与该第二字符串相同时,即该视频帧对应的字幕子数据与该视频帧的上一视频帧的字幕子数据也相同,则可以直接将作为当前surface对象的数据转换为字幕图片,并将该字幕图片添加到该视频帧中;其中,当前surface对象是该视频帧的上一视频帧对应的字幕子数据确定的surface对象。
在该智能管家服务器确定出包含字幕图片的视频帧后,发送该包含字幕图片的视频帧。
由于本发明实施例在该视频帧的第一字符串与该视频帧的上一视频帧对应的第二字符串相同时,可以直接将作为当前surface对象的数据转换为字幕图片,并将该字幕图片添加到该视频帧中,从而减少了创建surface对象的次数,节约了系统资源。
为了准确地确定每个视频帧对应的字幕子数据,在上述实施例的基础上,在本发明实施例中,所述接收字幕数据方法还包括:
接收文本格式的字幕数据,其中所述文本格式的字幕数据是以自然对话语句结束为分界点确定的,或以预设的时间长度进行分割确定的。
在本发明实施例中,由云端服务器将文本格式的字幕数据发送给该智能管家服务器。
通常字幕数据的格式包括文本格式和图片格式,文本格式的字幕数据可以是srt、ass、ssa等格式的字幕数据;图片格式的字幕数据可以是idx、sub等格式的字幕数据。在本发明实施例中,由于文本格式的字幕数据的数据量小,对宽带要求较低,以及传输时延小,因此,为了更准确地确定每个视频帧对应的字幕子数据,及减少字幕子数据的传输时延,该字幕子数据的格式为文本格式。具体的,该文本格式可以是srt、ass、ssa等格式中的任意一种格式,本发明实施例对此不做限制。
在本发明实施例中,音频采集设备采集到音频数据后,将该音频数据通过智能管家服务器发送给云端服务器,云端服务器在接收到音频数据后,对该音频数据进行翻译。具体的,云端服务器在对音频数据进行翻译时,可以根据视频通话的场景,确定翻译后的文本格式的字幕数据。
另外,对于视频通话而言其一般应用于普通对话场景和演讲会议场景下,而针对每种场景说话的方式不同,因此在进行音频数据确定时,有不同的方法:
在普通对话场景下,通常有时间间断,因此可以以自然对话语句结束为分界点,即该云端服务器对普通对话场景下的音频数据进行翻译时,是对以自然语句的对话结束为分界点确定的文本格式的字幕数据。
在演讲会议场景下,通常句式较长,因此可以以一次自然断句或1到2两秒的时间为长度单位进行分割,即该云端服务器对演讲会议场景下的音频数据进行翻译时,是以预设的时间长度进行分割确定的,该预设的时间长度例如可以是1-2秒。
具体的,根据音频数据的语义生成文本格式的字幕数据的方法属于现有技术,本发明实施例对此不做赘述。
作为一种可能的实施方式,该云端服务器确定出文本格式的字幕数据后,还可以对该字幕数据进行去噪处理,获取其中的关键词生成过滤后的文本格式的字幕数据,将该过滤后的文本格式的字幕数据发送给智能管家服务器,该管家服务器接收云端服务器发送的过滤后的文本格式的字幕数据。
图3为本发明实施例提供的一种智能管家服务器接收字幕数据的示意图,其中,云端服务器对音频数据进行实时翻译,确定出文本格式的字幕数据,将确定出的文本格式的字幕数据发送给智能管家服务器。
为了有效的识别字符串是否相同,在上述各实施例的基础上,在本发明实施例中,所述判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同包括:
通过预设的第一函数,判断所述第一字符串与所述第二字符串是否相同,在所述第一字符串与所述第二字符串相同时,针对所述第一字符串设置字符串相同标志位,并将所述字符串发送给预设的第二函数;
所述将作为当前surface对象的数据转换为字幕图片包括:
通过所述预设的第二函数,若所述预设的第二函数识别到字符串相同标志位时,将作为当前surface对象的数据转换为字幕图片。
在本发明实施例中,该智能管家服务器针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,在获取到每个视频帧对应的字幕子数据后,调用预设的第一函数实现将该字幕子数据转换为第一字符串。其中,该预设的第一函数是指text_overlay_render函数。render函数通过接口接收传入的参数,该传入的参数包括:overlay、text和textlen;其中,该overlay表示对象,该对象的内容即为text,具体为该文本格式的字幕子数据,该textlen表示该字幕子数据的长度。该render函数将作为overlay对象的text,即文本格式的字幕子数据转换为第一字符串。
在确定了第一字符串后,该智能管家服务器调用render函数判断该第一字符串与该视频帧的上一视频帧对应的第二字符串是否相同,在该第一字符串与该第二字符串相同时,针对该第一字符串设置字符串相同标志位。其中,该第一字符串相同标志位可以是SameTextflag,该SameTextflag的数值为1时,可以表示该第一字符串与第二字符串相同。
该智能管家服务器之后调用预设的第二函数,其中该预设的第二函数是指pangocairo函数,pangocairo函数识别接收到的每个第一字符串是否被设置了字符串相同标志位,若针对任一第一字符串识别到该被设置有字符串相同标志位时,该智能管家服务器将作为当前surface对象的数据转换为字幕图片。其中,该作为当前surface对象的数据为根据该视频帧的上一视频帧确定的作为surface对象的数据。
该智能管家服务器在得到该视频帧对应的字幕图片后,通过调用frame函数接口将字幕图片添加到该视频帧中。
其中,该frame函数是指gst_base_text_overlay_push_frame函数,该智能管家服务器调用该frame函数,该frame函数在通过函数接口接收到该字幕图片后,该frame函数通过获取的视频帧和字幕图片的宽、高、位置等信息,实现将字幕图片添加到视频帧中。
作为一种可能的实施方式,该智能管家服务器还可以对作为当前surface对象的数据进行矩阵操作,并将矩阵操作后的数据作为当前surface对象的数据,并将矩阵操作后的数据转换为字幕图片。
下面通过一个具体的实施例对本发明的字幕添加的处理流程进行描述。
图4为本发明实施例提供的一种字幕添加的处理流程示意图,该过程包括以下步骤:
S401:调用text overlay render函数,该render函数通过接口接收传入的参数,该传入的参数包括overlay、text和textlen。
S402:针对接收到的视频数据中的每个视频帧,将作为overlay对象的text,即该视频帧对应的文本格式的字幕子数据转换为第一字符串。
S403:调用render函数,在确定该第一字符串与该视频帧的上一视频帧对应的第二字符串相同时,针对该第一字符串设置字符串相同标志位。
S404:识别到该第一字符串被设置有字符串相同标志位时,将作为当前surface对象的数据转换为字幕图片。
S405:调用frame函数,该frame函数通过接口接收传入的参数,该传入的参数包括GstBaseTextOverlay*overlay对象以及GstBuffer*video_frame。
S406:调用frame函数对该视频帧的buffer进行写保护。
S407:将该字幕图片与视频帧的buffer绑定。
S408:调用frame函数获取视频帧的数据和字幕显示的相应参数。
S409:将字幕图片添加到视频帧中,并释放视频帧。
S410:将添加了字幕图片的视频帧推送到src pad输出。
该视频帧对应的第一字符串与该视频帧的上一视频帧对应的第二字符串可能相同,也可能不相同,为了实现在第一字符串与第二字符串不相同时,确定出视频帧对应的字幕图片,并将字幕图片添加到视频帧中,在上述各实施例的基础上,在本发明实施例中,若确定所述第一字符串与所述第二字符串不同,所述方法还包括:
确定字幕显示的相应参数,并创建surface对象,其中作为所述创建的surface对象的数据包括字幕显示的相应参数及所述第一字符串,将作为所述创建的surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中。
在本发明实施例中,当确定所述第一字符串与所述第二字符串不同时,为该第一字符串创建surface对象。
在进行surface对象创建时,确定出字幕显示的相应参数,其中,该字幕显示的相应参数包括字幕显示时的大小参数、字幕显示在视频帧中的位置参数等,为了进一步保证字幕添加的准确性,还可以确定:字幕的缩放比参数以及字幕的偏移量参数等。
在确定字幕显示的相应参数时调用pangocairo函数,该pangocairo函数接口接收到参数,确定出字幕显示的相应参数;具体的,该pangocairo函数接口接收到overlay、string和textlen,其中,该overlay表示对象,该对象的内容即为string,具体为第一字符串,该textlen表示该第一字符串的长度。
该pangocairo函数根据接收到的overlay的对象string,以及该textlen,即根据该第一字符串以及该第一字符串的长度,可以确定出字幕显示的相应参数。
确定出字幕显示的相应参数后,根据确定的字幕显示的相应参数以及该第一字符串,创建surface对象,该创建的surface对象的数据中包含该第一字符串以及字幕显示的相应参数;创建出surface对象后,将作为surface对象的数据转换为字幕图片,并将字幕图片添加到视频帧中。
为了将字幕图片添加到视频帧中,在上述各实施例的基础上,在本发明实施例中,所述将所述字幕图片添加到所述视频帧中包括:
确定字幕显示的大小参数和位置参数;
根据所述大小参数,确定对应大小的所述字幕图片,并根据所述位置参数,将所述字幕图片添加到所述视频帧的对应位置。
为了准确添加该视频帧对应的字幕图片,确定了字幕显示的相应参数后,该相应参数包括大小参数和位置参数,根据该大小参数,将该字幕图片调整为该大小参数对应大小的字幕图片。
并根据该位置参数,确定出该视频帧中的该位置参数对应位置,将该字幕图片添加到该视频帧的对应位置。
下面通过一个具体的实施例对该第一字符串与该第二字符串不同时,字幕添加的处理流程进行描述。
图5为本发明实施例提供的另一种字幕添加的处理流程示意图,该过程包括以下步骤:
S501:调用text_overlay_render函数,该render函数通过接口接收传入的参数,该传入的参数包括overlay、text和textlen。
S502:针对接收到的视频数据中的每个视频帧,将作为overlay对象的text,即该视频帧对应的文本格式的字幕子数据转换为第一字符串。
S503:确定该第一字符串与第二字符串不同,调用该pangocairo函数,该pangocairo函数通过接口接收到传入的参数,该传入的参数包括overlay、string和textlen。
S504:对字幕显示的宽高进行缩放。
具体的,自动调节字幕显示的缩放比参数,较佳的,按照640的像素点确定字幕显示的缩放比参数;在进行缩放时,可采用的缩放模式包括PAR、DISPLAY、USER等模式。
S505:设置shadow和outline的偏移量用于处理字幕显示的阴影和外部轮廓。
S506:调用pango库函数确定字幕显示的大小参数以及在视频帧中的位置参数。
S507:为字幕显示分配内存空间。
S508:获取字幕显示的字幕图片数据。
S509:根据字幕图片数据、第一字符串以及字幕显示的参数,调用cairo库函数创建surface对象。
S510:调用该pangocairo函数将创建的surface对象的数据转换为字幕图片。
S511:调用frame函数,该frame函数通过接口接收传入的参数,该传入的参数包括GstBaseTextOverlay*overlay对象以及GstBuffer*video_frame。
S512:调用frame函数对该视频帧的buffer进行写保护。
S513:将该字幕图片与视频帧的buffer绑定。
S514:调用frame函数获取视频帧的数据和字幕显示的相应参数。
S515:将字幕图片添加到视频帧中,并释放视频帧。
S516:将添加了字幕图片的视频帧推送到src pad输出。
基于相同的技术构思,本发明实施例还提供一种字幕添加装置,该字幕添加装置可实现前述实施例中智能管家服务器所执行的流程。
图6为本发明实施例提供的一种字幕添加装置的结构示意图,在上述各实施例的基础上,本发明实施例还提供的一种字幕添加装置,所述装置包括:
接收单元601,用于接收字幕数据和视频数据;
处理单元602,用于基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,并判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同,若所述第一字符串与所述第二字符串相同,将作为当前surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中;
发送单元603,用于发送添加了字幕图片的视频帧。
所述接收单元601,具体用于接收文本格式的字幕数据,其中所述文本格式的字幕数据是以自然对话语句结束为分界点确定的,或以预设的时间长度进行分割确定的。
所述处理单元602包括:
字符串转换子单元6021,用于将针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,将所述字幕子数据转换为第一字符串;
判断子单元6022,用于通过预设的第一函数,判断所述第一字符串与所述第二字符串是否相同,在所述第一字符串与所述第二字符串相同时,针对所述第一字符串设置字符串相同标志位,并将所述字符串发送给预设的第二函数;
字幕图片转换子单元6023,用于通过所述预设的第二函数,若所述预设的第二函数识别到字符串相同标志位时,将作为当前surface对象的数据转换为字幕图片。
所述处理单元602,还用于若确定所述第一字符串与所述第二字符串不同,确定字幕显示的相应参数,并创建surface对象,其中作为所述创建的surface对象的数据包括字幕显示的相应参数及所述第一字符串,将作为所述创建的surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中。
所述处理单元602,具体用于确定字幕显示的大小参数和位置参数;根据所述大小参数,确定对应大小的所述字幕图片,并根据所述位置参数,将所述字幕图片添加到所述视频帧的对应位置。
在本发明中该字幕添加装置所涉及的与本发明实施例提供的技术方案相关的概念,解释和详细说明及其它步骤请参见前述方法或其它实施例中关于这些内容的描述,此处不做赘述。
图7为本发明实施例提供的一种服务器结构示意图,在上述各实施例的基础上,本发明实施例中还提供了一种服务器,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信;
所述存储器703中存储有计算机程序,当所述程序被所述处理器701执行时,使得所述处理器701以完成上述方法中智能管家服务器执行相应功能的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口702用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,计算机可执行指令用于使计算机执行前述方法部分所执行的流程。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理模块以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理模块执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种字幕添加方法,其特征在于,所述方法包括:
接收字幕数据和视频数据;
基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,并判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同;
若相同,将作为当前surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中,发送添加了字幕图片的视频帧。
2.根据权利要求1所述的字幕添加方法,其特征在于,所述接收字幕数据方法还包括:
接收文本格式的字幕数据,其中所述文本格式的字幕数据是以自然对话语句结束为分界点确定的,或以预设的时间长度进行分割确定的。
3.根据权利要求1所述的字幕添加方法,其特征在于,所述判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同包括:
通过预设的第一函数,判断所述第一字符串与所述第二字符串是否相同,在所述第一字符串与所述第二字符串相同时,针对所述第一字符串设置字符串相同标志位,并将所述字符串发送给预设的第二函数;
所述将作为当前surface对象的数据转换为字幕图片包括:
通过所述预设的第二函数,若所述预设的第二函数识别到字符串相同标志位时,将作为当前surface对象的数据转换为字幕图片。
4.根据权利要求1所述的字幕添加方法,其特征在于,若确定所述第一字符串与所述第二字符串不同,所述方法还包括:
确定字幕显示的相应参数,并创建surface对象,其中作为所述创建的surface对象的数据包括字幕显示的相应参数及所述第一字符串,将作为所述创建的surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中。
5.根据权利要求1或4所述的字幕添加方法,其特征在于,所述将所述字幕图片添加到所述视频帧中包括:
确定字幕显示的大小参数和位置参数;
根据所述大小参数,确定对应大小的所述字幕图片,并根据所述位置参数,将所述字幕图片添加到所述视频帧的对应位置。
6.一种字幕添加装置,其特征在于,所述装置包括:
接收单元,用于接收字幕数据和视频数据;
处理单元,用于基于Gstreamer框架,针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,并判断所述字幕子数据转换得到的第一字符串是否与所述视频帧的上一视频帧对应的第二字符串相同,若相同,将作为当前surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中;
发送单元,用于发送添加了字幕图片的视频帧。
7.根据权利要求6所述的装置,其特征在于,所述接收单元,用于接收文本格式的字幕数据,其中所述文本格式的字幕数据是以自然对话语句结束为分界点确定的,或以预设的时间长度进行分割确定的。
8.根据权利要求6所述的装置,其特征在于,所述处理单元包括:
字符串转换子单元,用于将针对接收到的视频数据中的每个视频帧,获取所述视频帧对应的字幕子数据,将所述字幕子数据转换为第一字符串;
判断子单元,用于通过预设的第一函数,判断所述第一字符串与所述第二字符串是否相同,在所述第一字符串与所述第二字符串相同时,针对所述第一字符串设置字符串相同标志位,并将所述字符串发送给预设的第二函数;
字幕图片转换子单元,用于通过所述预设的第二函数,若所述预设的第二函数识别到字符串相同标志位时,将作为当前surface对象的数据转换为字幕图片。
9.根据权利要求6所述的装置,其特征在于,所述处理单元,还用于若确定所述第一字符串与所述第二字符串不同,确定字幕显示的相应参数,并创建surface对象,其中作为所述创建的surface对象的数据包括字幕显示的相应参数及所述第一字符串,将作为所述创建的surface对象的数据转换为字幕图片,并将所述字幕图片添加到所述视频帧中。
10.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-5中任一所述字幕添加方法的步骤。
CN202010337661.9A 2020-04-26 2020-04-26 一种字幕添加方法、装置、设备和介质 Pending CN113473045A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010337661.9A CN113473045A (zh) 2020-04-26 2020-04-26 一种字幕添加方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010337661.9A CN113473045A (zh) 2020-04-26 2020-04-26 一种字幕添加方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN113473045A true CN113473045A (zh) 2021-10-01

Family

ID=77865814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010337661.9A Pending CN113473045A (zh) 2020-04-26 2020-04-26 一种字幕添加方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN113473045A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461168B1 (en) * 1999-09-27 2008-12-02 Canon Kabushiki Kaisha Method and system for addressing audio-visual content fragments
US20090019009A1 (en) * 2007-07-12 2009-01-15 At&T Corp. SYSTEMS, METHODS AND COMPUTER PROGRAM PRODUCTS FOR SEARCHING WITHIN MOVIES (SWiM)
CN101360193A (zh) * 2008-09-04 2009-02-04 北京中星微电子有限公司 一种视频字幕处理装置及方法
CN106899875A (zh) * 2017-02-06 2017-06-27 合网络技术(北京)有限公司 外挂字幕的显示控制方法及装置
CN107864393A (zh) * 2017-11-17 2018-03-30 青岛海信电器股份有限公司 视频与字幕同步显示的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461168B1 (en) * 1999-09-27 2008-12-02 Canon Kabushiki Kaisha Method and system for addressing audio-visual content fragments
US20090019009A1 (en) * 2007-07-12 2009-01-15 At&T Corp. SYSTEMS, METHODS AND COMPUTER PROGRAM PRODUCTS FOR SEARCHING WITHIN MOVIES (SWiM)
CN101360193A (zh) * 2008-09-04 2009-02-04 北京中星微电子有限公司 一种视频字幕处理装置及方法
CN106899875A (zh) * 2017-02-06 2017-06-27 合网络技术(北京)有限公司 外挂字幕的显示控制方法及装置
CN107864393A (zh) * 2017-11-17 2018-03-30 青岛海信电器股份有限公司 视频与字幕同步显示的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEIXIN_33860528: "Gstreamer 视频字幕", 《CSDN博客》 *

Similar Documents

Publication Publication Date Title
CN105991962B (zh) 连接方法、信息展示方法、装置及系统
CN108200447B (zh) 直播数据传输方法、装置、电子设备、服务器及存储介质
JP6026443B2 (ja) ビデオ・ビットストリーム中の描画方向情報
JP2018513583A (ja) オーディオビデオファイルのライブストリーミング方法、システム及びサーバー
CN111818295B (zh) 一种图像获取方法及装置
CN106992959A (zh) 一种3d全景音视频直播系统及音视频采集方法
EP3485639A1 (en) System and method providing object-oriented zoom in multimedia messaging
KR20140006102A (ko) 후속 적용들을 용이하게 하기 위해 비디오 이미지 파라미터들을 동적으로 적응시키기 위한 방법
US9584761B2 (en) Videoconference terminal, secondary-stream data accessing method, and computer storage medium
CN110290398B (zh) 视频下发方法、装置、存储介质及电子设备
CN112261377A (zh) web版监控视频播放方法、电子设备及存储介质
CN109525852B (zh) 直播视频流处理方法、装置、系统及计算机可读存储介质
CN114666477A (zh) 一种视频数据处理方法、装置、设备及存储介质
EP3820153A1 (en) Image capturing device, distribution system, distribution method, and carrier means
CN105554375A (zh) 一种硬盘录像机中视频预览的方法及装置
CN110913118A (zh) 视频处理方法、装置及存储介质
CN110582021B (zh) 信息处理方法及装置、电子设备和存储介质
CN111835988B (zh) 字幕的生成方法、服务器、终端设备及系统
CN113473045A (zh) 一种字幕添加方法、装置、设备和介质
CN116723353A (zh) 一种视频监控区域配置方法、系统、装置及可读存储介质
CN109698932B (zh) 数据传输方法及摄像机、电子设备
CN112269886B (zh) 共享图像采集方法、窗口共享方法和共享图像采集装置
CN111405233B (zh) 视频会议中的加密图形传输方法、装置、存储介质及系统
CN113489934B (zh) 一种智能管家服务器、系统及屏幕远程交互方法
CN110798700B (zh) 视频处理方法、视频处理装置、存储介质与电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20211001