一种动态字幕渲染方法及系统与流程

文档序号:37271169发布日期:2024-03-12 21:00阅读:17来源:国知局
一种动态字幕渲染方法及系统与流程

本发明属于字幕渲染,特别是涉及一种动态字幕渲染方法及系统。


背景技术:

1、当今主流的字幕渲染系统采用操作系统内置的文字渲染技术,字幕渲染效果过于简单,只能支持简单的调整文字的字体、颜色、字号、位置等功能。随着短视频的流行,现在对于字幕的需求更加的多样化,需要有多样的特效样式、文字动画,能够展示不同的图标等功能。传统的字幕渲染方式已经不能支持这些多样、复杂的功能。


技术实现思路

1、本发明的目的在于克服现有技术的不足,提供一种动态字幕渲染方法及系统。

2、本发明的目的是通过以下技术方案来实现的:

3、本发明的第一方面公开了一种动态字幕渲染系统,包括:

4、动态字幕管理器,用于生成字幕数据;

5、字幕渲染器,用于对所述字幕数据进行渲染;

6、数据交换器,用于实现动态字幕管理器和字幕渲染器之间的数据交换;

7、其中,动态字幕管理器根据设置的字幕信息生成字幕数据,所述字幕信息包括文字内容、文字的字体、文字的字号、字体颜色、字幕位置、动画、特效和图标数据;

8、其中,字幕渲染器渲染出某一帧的渲染数据的过程为:字幕渲染器首先根据文字内容、文字的字体、文字的字号、字体颜色和字幕位置,采用操作系统内置的文字渲染函数对当前帧进行渲染;然后根据选择的动画,调用对应的动画渲染函数,使用javascript的canvas技术渲染出当前帧的动画样式;再根据选择的特效,调用对应的特技函数,使用javascript的canvas技术渲染出当前帧的特效效果;最后调用图标解码函数,使用javascript的canvas技术将图标数据渲染到字幕上,则当前帧渲染完毕。

9、进一步地,所述动态字幕渲染系统的启动过程包括:

10、动态字幕管理器生成字幕数据,并将字幕数据和第一标志发送给数据交换器;

11、数据交换器在收到字幕数据和第一标志后向动态字幕管理器发送第二标志;

12、数据交换器调用启动函数启动字幕渲染器;

13、数据交换器解析字幕数据,并将解析后的字幕数据和回调函数发送给字幕渲染器;

14、字幕渲染器渲染出第一帧的渲染数据,并缓存该渲染数据;

15、数据交换器调用回调函数获取字幕渲染器缓存的渲染数据;字幕渲染器在其缓存的渲染数据被数据交换器读走后渲染出下一帧的渲染数据,并缓存该渲染数据;

16、数据交换器对获取到的渲染数据进行转码;

17、数据交换器向通道发送转码后的渲染数据和第三标志,完成动态字幕渲染系统的启动。

18、进一步地,所述动态字幕渲染系统的渲染过程包括:

19、动态字幕管理器在其目前无正在处理的渲染数据时获取通道中的渲染数据,并在获取到该渲染数据后向数据交换器发送第四标志和帧号;

20、数据交换器在收到第四标志和帧号后,调用回调函数获取字幕渲染器当前缓存的渲染数据以及该渲染数据对应的帧号,判断来自动态字幕管理器的帧号和来自字幕渲染器的帧号是否相同:若是,则对获取到的渲染数据进行转码;若否,则调用帧号设置函数设置字幕渲染器的起始渲染帧,然后循环执行数据清除步骤,直到获取到起始渲染帧的渲染数据,然后对起始渲染帧的渲染数据进行转码,其中,数据清除步骤包括:清除获取到的渲染数据,再调用回调函数获取字幕渲染器当前缓存的渲染数据及帧号;数据交换器将转码后的渲染数据和第三标志发送至通道中;

21、字幕渲染器在其缓存的渲染数据被数据交换器读走后判断是否存在设置的起始渲染帧:若是,则渲染出起始渲染帧的渲染数据,并缓存该渲染数据;若否,则渲染出下一帧的渲染数据,并缓存该渲染数据。

22、进一步地,所述动态字幕渲染系统结束渲染的过程包括:

23、字幕渲染器在完成全部字幕数据的渲染后,若其缓存的最后一个渲染数据被数据交换器读走,则字幕渲染器向数据交换器发送第五标志,然后字幕渲染器自动关闭;

24、数据交换器在收到第五标志后,若已将最后一个转码后的渲染数据和第三标志发送至通道,则数据交换器向动态字幕管理器发送第五标志;

25、动态字幕管理器在收到第五标志后向数据交换器发送第六标志;

26、数据交换器在收到第六标志后自动关闭;

27、动态字幕管理器在处理完最后一个渲染数据后结束渲染流程。

28、本发明的第二方面公开了一种动态字幕渲染方法,应用于本发明的第一方面所述的字幕渲染系统,所述方法包括动态字幕渲染系统启动步骤、动态字幕渲染步骤和动态字幕渲染系统关闭步骤;

29、动态字幕渲染步骤包括:

30、动态字幕管理器在其目前无正在处理的渲染数据时获取通道中的渲染数据,并在获取到该渲染数据后向数据交换器发送第四标志和帧号;

31、数据交换器在收到第四标志和帧号后,调用回调函数获取字幕渲染器当前缓存的渲染数据以及该渲染数据对应的帧号,判断来自动态字幕管理器的帧号和来自字幕渲染器的帧号是否相同:若是,则对获取到的渲染数据进行转码;若否,则调用帧号设置函数设置字幕渲染器的起始渲染帧,然后循环执行数据清除步骤,直到获取到起始渲染帧的渲染数据,然后对起始渲染帧的渲染数据进行转码,其中,数据清除步骤包括:清除获取到的渲染数据,再调用回调函数获取字幕渲染器当前缓存的渲染数据及帧号;数据交换器将转码后的渲染数据和第三标志发送至通道中;

32、字幕渲染器在其缓存的渲染数据被数据交换器读走后判断是否存在设置的起始渲染帧:若是,则渲染出起始渲染帧的渲染数据,并缓存该渲染数据;若否,则渲染出下一帧的渲染数据,并缓存该渲染数据。

33、进一步地,动态字幕渲染系统启动步骤包括:

34、动态字幕管理器生成字幕数据,并将字幕数据和第一标志发送给数据交换器;

35、数据交换器在收到字幕数据和第一标志后向动态字幕管理器发送第二标志;

36、数据交换器调用启动函数启动字幕渲染器;

37、数据交换器解析字幕数据,并将解析后的字幕数据和回调函数发送给字幕渲染器;

38、字幕渲染器渲染出第一帧的渲染数据,并缓存该渲染数据;

39、数据交换器调用回调函数获取字幕渲染器缓存的渲染数据;字幕渲染器在其缓存的渲染数据被数据交换器读走后渲染出下一帧的渲染数据,并缓存该渲染数据;

40、数据交换器对获取到的渲染数据进行转码;

41、数据交换器向通道发送转码后的渲染数据和第三标志,完成动态字幕渲染系统的启动。

42、进一步地,动态字幕渲染系统关闭步骤包括:

43、字幕渲染器在完成全部字幕数据的渲染后,若其缓存的最后一个渲染数据被数据交换器读走,则字幕渲染器向数据交换器发送第五标志,然后字幕渲染器自动关闭;

44、数据交换器在收到第五标志后,若已将最后一个转码后的渲染数据和第三标志发送至通道,则数据交换器向动态字幕管理器发送第五标志;

45、动态字幕管理器在收到第五标志后向数据交换器发送第六标志,数据交换器在收到第六标志后自动关闭;

46、动态字幕管理器在处理完最后一个渲染数据后结束渲染流程。

47、进一步地,所述方法还包括:

48、动态字幕管理器检测其自身是否发生故障,若是,则向数据交换器发送第七标志;

49、数据交换器在收到第七标志后终止字幕渲染器,然后向动态字幕管理器发送第八标志,然后数据交换器自动关闭;

50、动态字幕管理器在收到第八标志后结束渲染流程。

51、进一步地,所述方法还包括:

52、数据交换器检测其自身是否发生故障,若是,则终止字幕渲染器,然后向动态字幕管理器发送第七标志;

53、动态字幕管理器在收到第七标志后向数据交换器发送第八标志,然后结束渲染流程;

54、数据交换器在收到第八标志后自动关闭。

55、进一步地,所述方法还包括:

56、字幕渲染器检测其自身是否发生故障,若是,则通过回调函数向数据交换器发送空的帧数据;

57、数据交换器在收到空的帧数据后终止字幕渲染器,然后向动态字幕管理器发送第七标志;

58、动态字幕渲染系统在收到第七标志后向数据交换器发送第八标志,然后结束渲染流程;

59、数据交换器在收到第八标志后自动关闭。

60、本发明的有益效果是:

61、(1)本发明除采用操作系统内置的文字渲染技术外,还采用了javascript的canvas技术,能够实现文字的动画效果和特技,以及添加图标的功能,从而能够渲染出更加多样、复杂、美观的动态字幕;

62、(2)动态字幕管理器、数据交换器和字幕渲染器之间进行数据交换时带有帧号,能够实现帧精确的定位;

63、(3)字幕渲染器还能设置起始渲染帧,通过设置不同的起始渲染帧或者多次设置起始渲染帧,从而可以实现正序渲染以外的其他方式进行渲染,如进行倒序渲染、间断渲染、以及任意帧渲染。

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