字幕切换方法及装置与流程

文档序号:13682445阅读:1226来源:国知局
技术领域本发明涉及互联网电视领域,尤其涉及一种字幕切换方法及装置。

背景技术:
在很多国家和地区,尤其是欧洲的一些视频内容服务商,为了更好地为不同语言国家的人们提供视频点播节目服务,在节目的视频文件里面都嵌入了不同语言的字幕。人们在观看节目的时候,通过遥控器,进行不同语言字幕的切换。例如在中国看大片的时候,很多节目同时提供了中文及英文字幕。如图1所示,一般字幕切换流程如下:当前正在播放语言类型为A的Subtitle1字幕;当用户切换到语言类型为B的Subtitle2字幕时:首先,停止将Subtile1字幕的数据送入缓存A1,清空缓存A1,并通过对字幕解码器模块进行flush操作来清空字幕解码器模块缓存的数据;接着,将Subtitle2字幕的数据送入缓存A1,数据缓存模块将缓存A1的数据送入字幕解码器模块;然后,字幕解码器模块在接收到Subtitle2字幕的数据后,进行解码。对解码后的字幕数据与音频或者视频在时间上进行同步后,输出到输出模块;最终,输出模块在接收到解码后的字幕数据后,进行输出显示,字幕切换结束。从上面流程可以看出,在进行字幕切换的时候,字幕Subtile1的缓存A1中的数据和字幕解码模块的数据被清空后,从TS1时刻送入Subtile2的字幕数据,因此,较音频或者视频而言,少了(TS1-TS3)时长的数据,其中TS3为节目的pts(presenttimestamp,当前显示时间戳)时间。因此,切换字幕过程中,需要等待(TS1-TS3)长的时间才能看到切换后的字幕内;另一方面,由于字幕的时长和音视频的时长不匹配,在进行字幕、音频和视频同步输出的过程中,有时候还会出现画面的卡顿问题。

技术实现要素:
本发明的主要目的在于提供一种字幕切换方法及装置,旨在解决现有的字幕切换方法在切换字幕时需要等待一段时间、且会导致画面卡顿的的技术问题。为实现上述目的,本发明提供一种字幕切换方法,所述字幕切换方法包括以下步骤:所述字幕切换方法包括以下步骤:接收用户输入的字幕切换指令;获取存储于对应的预设缓冲区中与所述字幕切换指令对应的待切换字幕数据及播放中的影音数据的当前显示时间戳;将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示。优选地,在所述接收用户输入的字幕切换指令的步骤之前,还包括:对影音文件进行解复用,得到影音数据及对应所述影音数据的数组字幕数据;将所述影音数据与所述数组字幕数据存储于对应的预设缓冲区内;将所述影音数据与所述数组字幕数据中的当前播放语言的字幕数据进行解码;将解码后的影音数据与当前播放的语言字幕数据同步输出显示。优选地,在所述接收用户输入的字幕切换指令步骤之后,还包括:判断待切换的字幕数据是否是当前播放的语言字幕数据;如果是,则继续输出显示当前播放的语言字幕数据;如果否,则获取存储于对应的预设缓冲区中的待切换字幕数据及获取播放中的影音数据的当前显示时间戳。优选地,在获取存储于对应的预设缓冲区中与所述字幕切换指令对应的待切换字幕数据及播放中的影音数据的当前显示时间戳步骤之后,还包括:清除所述待切换字幕数据中时间戳小于所述当前显示时间戳的字幕数据。优选地,在将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示步骤之前,还包括:将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行解码。此外,为了实现上述目的,本发明还提供一种字幕切换装置,所述字幕切换装置包括:接收模块,用于接收用户输入的字幕切换指令;获取模块,用于获取存储于对应的预设缓冲区中与所述字幕切换指令对应的待切换字幕数据及播放中的影音数据的当前显示时间戳;输出模块,用于将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示。优选地,所述字幕切换装置还包括:解复用模块,用于对影音文件进行解复用,得到影音数据及对应所述影音数据的数组字幕数据;数据缓存模块,用于将所述影音数据与所述数组字幕数据存储于对应的预设缓冲区内;解码模块,用于将所述影音数据与所述数组字幕数据中的当前语言的字幕数据进行解码;所述输出模块,还用于将解码后的影音数据与当前语言的字幕数据同步输出显示。优选地,所述字幕切换装置还包括:判断模块,用于判断待切换的字幕数据是否是所述当前语言的字幕数据;所述输出模块,具体用于输出当前显示的字幕数据。优选地,所述字幕切换装置还包括:清除模块,用于清除所述待切换字幕数据中时间戳小于所述当前显示时间戳的字幕数据。优选地,所述解码模块,还用于将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行解码。本发明的字幕切换方法及装置,通过在影音文件播放时,对所有语言的字幕进行缓存,并通过清除缓冲区中非当前播放语言字幕数据的时间戳小于当前播放的影音数据的时间戳的存储数据,并将缓冲区中待切换字幕数据的时间戳等于当前播放的影音数据的时间戳的数据进行输出显示,以使得切换后的字幕数据的数据帧的内容与当前播放的数据帧的内容相匹配,进而使得字幕切换较为平滑,且不会出现顿卡现象。附图说明图1为现有的字幕切换方法的原理示意框图;图2为本发明字幕切换方法的原理示意框图;图3为本发明字幕切换方法的第一实施例的流程图;图4为本发明字幕切换方法的第二实施例的流程图;图5为本发明字幕切换方法的第三实施例的流程图;图6为本发明字幕切换方法的第四实施例的流程图;图7为本发明字幕切换方法的第五实施例的流程图;图8为本发明字幕切换装置的第一实施例的构架图;图9为本发明字幕切换装置的第二实施例的构架图;图10为本发明字幕切换装置的第三实施例的构架图;图11为本发明字幕切换装置的第四实施例的构架图。本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了解决多字幕切换过程需要等待一段时间及切换过程中画面卡顿的问题,如图2所示,在对视频文件进行解复用后,对所有语言的字幕进行缓存。为了更平滑和快速地实现字幕切换,尽快实现切换后的字幕与当前显示的视频画面进行衔接,非当前播放的字幕例如Subtile2和Subtile3的缓冲区字幕数据的最小TS2(timestamp,时间戳)需要等于视频或者音频的当前显示时间戳pts(其中pts=TS3),即TS2等于TS3才能实现切换后的字幕与当前的音视频进行无缝的衔接,实现快速而平滑的字幕切换,因此,非当前播放字幕的缓存B1、缓存B2缓存数据的时间长度duration1的大小为(pts–TS1)。基于上述原理,本发明提供一种字幕切换方法,参照图3,在一实施例中,所述字幕切换方法包括以下步骤:步骤S11、接收用户输入的字幕切换指令。当户用在观看影音文件时,发现默认显示的字幕不是自己需要的字幕,则可通过遥控器等设备进行字幕切换。具体地,选择字幕切换功能,并在弹出的可选项列表中选择需求的字幕类型,生成字幕切换指令,当检测到该字幕切换指令时,接收该字幕切换指令。步骤S12、获取存储于对应的预设缓冲区中与所述字幕切换指令对应的待切换字幕数据及播放中的影音数据的当前显示时间戳。根据字幕切换指令,获取对应用户选择的字幕类型的待切换字幕数据,所述待切换字幕数据存储于对应的预设缓冲区中,且每一字幕数据具有一对应的预设缓冲区,即不同字幕数据存储于不同的预设缓冲区内。同时,获取正在播放的影音数据(包括视频数据与音频数据)的当前显示时间戳,即获取影音数据中当前播放的数据帧的时间戳。步骤S13、将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示。将待切换字幕数据中的数据帧的时间戳等于当前播放的数据帧对应的时间戳的数据进行输出显示,使得切换后的字幕与当前播放时视频数据相匹配,。本实施例的字幕切换方法,通过在影音文件播放时,对所有语言的字幕进行缓存,并通过清除缓冲区中非当前播放语言字幕数据的时间戳小于当前播放的影音数据的时间戳的存储数据,并将缓冲区中待切换字幕数据的时间戳等于当前播放的影音数据的时间戳的数据进行输出显示,以使得切换后的字幕数据的数据帧的内容与当前播放的数据帧的内容相匹配,进而使得字幕切换较为平滑,且不会出现顿卡现象。进一步地,参照图4,图4为本发明字幕切换方法的第二实施例的流程图。基于上述实施例,在所述接收用户输入的字幕切换指令的步骤之前,还包括:步骤S21、对影音文件进行解复用,得到影音数据及对应所述影音数据的数组字幕数据;步骤S22、将所述影音数据与所述数组字幕数据存储于对应的预设缓冲区内;步骤S23、将所述影音数据与当前语言的字幕数据进行解码;步骤S24、将解码后的影音数据与当前语言的字幕数据同步输出显示。具体地,接收到影音文件播放指令时,首先对影音文件进行解复用,以将所述影音文件中的数组字幕数据、影音数据进行分离;然后,将所述影音数据存储至对应的缓冲区,同时将数组字幕数据分别存储于对应的缓冲区;接着,将影音文件进行解码操作,同时将数组字幕数据中预设的当前语言的字幕数据进行解码操作,最后,在输出显示影音数据的同时输出对应的当前语言的字幕数据。进一步地,参照图5,图5为本发明字幕切换方法的第三实施例的流程图。基于上述实施例,在所述接收用户输入的字幕切换指令步骤之后,还包括:步骤S31、判断待切换的字幕数据是否是当前语言的字幕数据;如果是,则进入步骤S32;如果否,则进入步骤S12步骤S32、继续输出显示当前播放的语言字幕数据;步骤S12、获取存储于对应的预设缓冲区中的待切换字幕数据,同时获取播放中的影音数据的当前显示时间戳。具体地,当接收到字幕切换指令时,首先判断所选择的待切换的字幕数据是否是预设的当前语言的字幕数据,如果是,则继续显示当前播放语言字幕数据,如果不是,则执行步骤S12,获取存储于对应的预设缓冲区中的待切换字幕数据,同时获取播放中的影音数据的当前显示时间戳。进一步地,参照图6,图6为本发明字幕切换方法的第四实施例的流程图。基于上述实施例,在获取存储于对应的预设缓冲区中与所述字幕切换指令对应的待切换字幕数据及播放中的影音数据的当前显示时间戳步骤之后,还包括:步骤S41,清除所述待切换字幕数据中时间戳小于所述当前显示时间戳的字幕数据。将存储于预设缓冲区中的待切换字幕数据与其他非当前语言的字幕数据中的数据帧的时间戳与当前播放的数据帧的时间戳进行比较,并将待切换字幕数据中的数据帧的时间戳小于当前播放的数据帧的时间戳的数据帧释放。进一步地,参照图7,图7为本发明字幕切换方法的第五实施例的流程图。基于上述实施例,在将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示步骤之前,还包括:步骤S51、将所述待切换字幕数据中时间戳大于或等于所述当前显示时间戳的字幕数据进行解码。具体地,在将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示之前,将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行解码操作,以字幕数能够显示。本发明还提供一种字幕切换装置,参照图8,在一实施例中,所述字幕切换装置包括:接收模块101,用于接收用户输入的字幕切换指令。当户用在观看影音文件时,发现默认显示的字幕不是自己需要的字幕,则可通过遥控器等设备进行字幕切换。具体地,选择字幕切换功能,并在弹出的可选项列表中选择需求的字幕类型,生成字幕切换指令,当检测到该字幕切换指令时,接收该字幕切换指令。获取模块102,用于获取存储于对应的预设缓冲区中的待切换字幕数据,同时获取播放中的影音数据的当前显示时间戳。根据字幕切换指令,获取对应用户选择的字幕类型的待切换字幕数据,所述待切换字幕数据存储于对应的预设缓冲区中,且每一字幕数据具有一对应的预设缓冲区,即不同字幕数据存储于不同的预设缓冲区内。同时,获取正在播放的影音数据的当前显示时间戳,即获取影音数据中当前播放的数据帧的时间戳。输出模块103,用于将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示。将待切换字幕数据中的数据帧的时间戳等于当前播放的数据帧对应的时间戳的数据进行输出显示。本实施例的字幕切换装置,通过在影音文件播放时,对所有语言的字幕进行缓存,并通过清除缓冲区中字幕数据的时间戳小于当前播放的影音数据的时间戳的存储数据,并将缓冲区中字幕数据的时间戳等于当前播放的影音数据的时间戳的数据进行输出显示,以使得切换后的字幕数据的数据帧的内容与当前播放的数据帧的内容相匹配,进而使得字幕切换较为平滑,且不会出现顿卡现象。进一步地,参照图9,图9为本发明字幕切换装置的第二实施例的构架图。基于上述实施例,在本实施例中,所述字幕切换装置还包括:解复用模块201,用于对影音文件进行解复用,得到影音数据及对应所述影音数据的数组字幕数据。数据缓存模块202,用于将所述影音数据与所述数组字幕数据存储于对应的预设缓冲区内;优选地,所述数据缓存模块202包括:数个字幕缓冲单元222,用于将所述数组字幕数据存储于对应的预设缓冲区内;影音缓冲单元224,用于将所述影音数据存储于对应的预设缓冲区内。解码模块203,用于将所述影音数据与所述数组字幕数据中的当前语言的字幕数据进行解码;优选地,所述解码模块203包括:字幕解码单元232,用于将所述当前语言的字幕数据进行解码;影音解码单元234,用于将所述影音数据进行解码。所述输出模块103,还用于将解码后的影音数据与当前语言的字幕数据同步输出显示。具体地,接收到影音文件播放指令时,首先对影音文件进行解复用,以将所述影音文件中的数组字幕数据、影音数据进行分离;然后,将所述影音数据存储至对应的缓冲区,同时将数组字幕数据分别存储于对应的缓冲区;接着,将影音文件进行解码操作,同时将数组字幕数据中预设的当前语言的字幕数据进行解码操作,最后,在输出显示影音数据的同时输出对应的当前语言的字幕数据。进一步地,参照图10,图10为本发明字幕切换装置的第三实施例的构架图。基于上述实施例,在本实施例中,所述字幕切换装置还包括:判断模块301,用于判断待切换的字幕数据是否是所述当前语言的字幕数据;所述输出模块104,还用于输出当前显示的字幕数据。具体地,当接收到字幕切换指令时,首先判断所选择的待切换的字幕数据是否是预设的当前语言的字幕数据,如果是,则继续显示当前语言的字幕数据,如果不是,则获取存储于对应的预设缓冲区中的待切换字幕数据,同时获取播放中的影音数据的当前显示时间戳。进一步地,参照图11,图11为本发明字幕切换装置的第四实施例的构架图。基于上述实施例,在本实施例中,清除模块401,用于清除所述待切换字幕数据中时间戳小于所述当前显示时间戳的字幕数据。将存储于预设缓冲区中的待切换字幕数据中的数据帧的时间戳与当前播放的数据帧的时间戳进行比较,并将待切换字幕数据中的数据帧的时间戳小于当前播放的数据帧的时间戳的数据帧释放。进一步地,基于上述实施例,在本实施例中,所述解码模块203,还用于将清除所述待切换字幕数据中时间戳大于或等于所述当前显示时间戳的字幕数据进行解码。具体地,在将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行输出显示之前,将所述待切换字幕数据中时间戳等于所述当前显示时间戳的字幕数据进行解码操作,以字幕数据能够显示。综上所述,本实施例的字幕切换方法及装置,通过在影音文件播放时,对所有语言的字幕进行缓存,并通过清除缓冲区中字幕数据的时间戳小于当前播放的影音数据的时间戳的存储数据,并将缓冲区中字幕数据的时间戳等于当前播放的影音数据的时间戳的数据进行输出显示,以使得切换后的字幕数据的数据帧的内容与当前播放的数据帧的内容相匹配,进而使得字幕切换较为平滑,且不会出现顿卡现象。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1