本申请公开了一种在渲染器中利用HOOK实现弹幕的方法,包括步骤:播放线程播放视频,获取当前视频播放时的弹幕数据;利用HOOK渲染器将所述弹幕数据渲染成弹幕图像;利用HOOK技术将所述弹幕图像嵌合到所述视频的画面中。本申请还公开了一种在渲染器中利用HOOK实现弹幕的装置。本发明专利技术通过HOOK技术将弹幕图像嵌合到视频帧画面中进行播放,避免了使用浮窗播放弹幕内容造成视频画面与弹幕脱离的问题。
【技术实现步骤摘要】
本专利技术涉及在视频中播放弹幕的
,具体地说,是涉及一种在渲染器中利用HOOK实现弹幕的方法及装置。
技术介绍
弹幕,在播放视频画面中以字幕形式显示评论的现象称为弹幕。用户可以通过弹幕的形式边看视频边与其它用户进行弹幕讨论沟通。现有的视频弹幕都是通过在线播放的形式,在线播放视频时从各个用户端收集弹幕后在视频对应的时间段上进行展现。现有技术中是通过在视频画面上设置弹幕浮窗的形式实现对弹幕内容的播放,具体地说现有的浮窗显示弹幕是通过在视频播放窗口上层创建一个窗口,通过向窗口内绘制弹幕信息,然后,通过窗口间alpha透明合成,实现弹幕信息展现在视频区域,但是在实际的弹幕视频播放过程中,会因为网速、用户硬件条件等问题造成视频播放卡顿,而弹幕还在继续播放导致的视频画面与弹幕脱离的问题。专利技术名称:弹幕显示方法及装置,申请号:201510481649.4,在显示在线视频时,获取在线视频的弹幕信息;获取当前的弹幕显示模式,弹幕显示模式包括:曲线弹幕显示模式或三维弹幕显示模式;将弹幕信息按照弹幕显示模式叠加在在线视频上进行显示;解决了弹幕显示方式的形式单一,仅能够将弹幕信息按行来进行滚动显示的问题。专利技术名称:弹幕显示方法及装置,申请号:201510920994.3,该申请公开了:接收弹幕信息;确定用户对所述弹幕信息的目标喜好程度值;根据所述目标喜好程度值和预设的与喜好程度值对应的弹幕显示方式,确定所述弹幕信息的目标弹幕显示方式;按照所述目标弹幕显示方式,显示所述弹幕信息。本公开可以根据用户的喜好将弹幕信息采用用户设定的显示方式进行显示,从而提高用户获取感兴趣的弹幕信息的可能性。专利技术名称:一种视频弹幕显示方法及装置,申请号:201610009073.6,该申请公开了接收视频弹幕停止移动指令;根据所述视频弹幕停止移动指令停止移动当前视频弹幕。该方法使得用户在观看视频弹幕时,若遇到感兴趣的弹幕时,可以发出视频弹幕停止移动指令,此时视频弹幕将会停止移动,用户即可观看感兴趣的弹幕,从而避免了观众还未看清楚感兴趣的弹幕时,弹幕已经消失在屏幕上的情况,达到提高用户观看视频体验感的目的。但是上述现有技术中,存在弹幕视频播放时会出现视频画面与弹幕相脱离的问题,窗口实现的弹幕形式,由于窗口和弹幕是两个独立的窗口,所以在窗口改变位置、大小以及刷新时,无法与弹幕的窗口保持同步,窗口间的消息比较慢,会造成窗口的悬浮感,以及与播放内容的同步也需要分别处理,容易出现于视频内容的不一致,特别视频播放比较卡的时候,会出现不同步。而且,窗口间叠加合成的效率要低于直接渲染器数据的合成,有助于提升效率。
技术实现思路
本专利技术所要解决的技术问题是提供一种在渲染器中利用HOOK实现弹幕的方法和装置,通过HOOK技术拦截本应展现在浮层视窗中的弹幕内容,再将其展开嵌合到视频画面中,避免使用浮窗播放弹幕内容造成视频画面与弹幕脱离的问题。为解决上述技术问题,本专利技术提供了一种在渲染器中利用HOOK实现弹幕的方法,包括步骤:播放线程播放视频,获取当前视频播放时的弹幕数据;利用HOOK渲染器将所述弹幕数据渲染成弹幕图像,所述HOOK渲染器的渲染函数,采用系统默认的渲染器,在不改变渲染连路的情况下,直接植入所述弹幕数据,渲染过程中根据当前弹幕展示的位置,将所有当前位置待展示的弹幕排布到一张内存DC上,排列原则是任意两条弹幕不能重合,优先从顶行展示,如当前行不能展示则展示下一行,确保不出现文字内容重合,然后将所述内存DC的数据拷贝给所述渲染器,所述渲染器将所述内存DC的数据渲染成弹幕图像;利用HOOK技术将所述弹幕图像嵌合到所述视频的画面中。优选地,所述弹幕数据,包括时间信息。优选地,所述利用HOOK技术将所述弹幕图像嵌合到所述视频的画面中,进一步为,利用HOOK技术将所述弹幕图像嵌合到所述视频播放的屏幕中自上而下1/3至1/2的位置。优选地,所述弹幕数据,还包括:文字内容、字体和颜色。本申请还公开了在渲染器中利用HOOK实现弹幕的装置,包括:弹幕数据获取模块、渲染模块和嵌合模块,其中,所述弹幕数据获取模块,与所述渲染模块相耦接,用于播放线程播放视频,获取当前视频播放时的弹幕数据,发送至所述渲染模块;所述渲染模块,分别与所述弹幕数据获取模块和嵌合模块相耦接,用于接收所述弹幕数据,利用HOOK渲染器将所述弹幕数据渲染成弹幕图像,发送至所述嵌合模块,所述HOOK渲染器的渲染函数,采用系统默认的渲染器,在不改变渲染连路的情况下,直接植入所述弹幕数据,渲染过程中根据当前弹幕展示的位置,将所有当前位置待展示的弹幕排布到一张内存DC上,排列原则是任意两条弹幕不能重合,优先从顶行展示,如果当前行不能展示则展示下一行,确保不出现文字内容重合,然后将所述内存DC的数据拷贝给所述渲染器,所述渲染器将所述内存DC的数据渲染成弹幕图像;所述嵌合模块,与所述渲染模块相耦接,用于接收所述弹幕图像,利用HOOK技术将所述弹幕图像嵌合到所述视频的画面中。优选地,所述弹幕数据,包括时间信息。优选地,所述嵌合模块,进一步地,利用HOOK技术将所述弹幕图像嵌合到所述视频播放的屏幕中自上而下1/3至1/2的位置。优选地,所述弹幕数据,还包括文字内容、字体和颜色。Hook渲染器的渲染函数,采用系统默认渲染器,在不改变渲染链路的情况下,直接植入弹幕数据。如果不使用hook技术则混合可使用渲染器无渲染模式,该模式下播放视频的成功率及效率较低,或者采用浮层窗口实现,则与视频不能完全同步而且合成效率低。与视频同步渲染,弹幕的时间信息可以与视频的帧号绑定,所以展现时可以依据视频的帧号进行更准确的关联。生成弹幕数据直接合并到视频中,减少了窗口间的alpha合成时间,直接在内存数据中完成叠加,效率更高。与现有技术相比,本专利技术所述的在渲染器中利用HOOK实现弹幕的方法和装置,达到了如下效果:本专利技术通过HOOK技术将弹幕图像嵌合到视频帧画面中进行播放,避免了使用浮窗播放弹幕内容造成视频画面与弹幕脱离的问题。本专利技术在视频播放时,利用HOOK(钩子函数)视频渲染的展现函数,在视频内容展示时,直接将弹幕数据合成到视频数据中,这样弹幕即无缝成为视频的一部分,跟随视频的帧率实时刷新,并能同步的视频进行拖动以及缩放。由于,刷新的频次完全与视频同步,所以,弹幕可以精确到视频的帧号的精度,并能完好的保持同步。Hook技术直接使用系统的默认渲染器,更加稳定,减少使用无渲染渲染器的导致无法正常播放视频的问题。与视频紧密契合,跟随视频的刷新去更新展示,防止出现视频卡顿但是弹幕却在飞行的情况。直接合并数据到视频数据中,减少后续窗口间透明叠加的消耗,提升效率。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本专利技术的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为实施例1的在渲染器中利用hook实现弹幕的方法流程图;图2为实施例2的在渲染器中利用hook实现弹幕的装置结构图;图3为实施例3的在渲染器中利用hook实现弹幕的方法流程图。具体实施方式如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不本文档来自技高网...
【技术保护点】
在渲染器中利用HOOK实现弹幕的方法,其特征在于,包括步骤:播放线程播放视频,获取当前视频播放时的弹幕数据;利用HOOK渲染器将所述弹幕数据渲染成弹幕图像,所述HOOK渲染器的渲染函数,采用系统默认的渲染器,在不改变渲染连路的情况下,直接植入所述弹幕数据,渲染过程中根据当前弹幕展示的位置,将所有当前位置待展示的弹幕排布到一张内存DC上,排列原则是任意两条弹幕不能重合,优先从顶行展示,如当前行不能展示则展示下一行,确保不出现文字内容重合,然后将所述内存DC的数据拷贝给所述渲染器,所述渲染器将所述内存DC的数据渲染成弹幕图像;利用HOOK技术将所述弹幕图像嵌合到所述视频的画面中。
【技术特征摘要】
1.在渲染器中利用HOOK实现弹幕的方法,其特征在于,包括步骤:播放线程播放视频,获取当前视频播放时的弹幕数据;利用HOOK渲染器将所述弹幕数据渲染成弹幕图像,所述HOOK渲染器的渲染函数,采用系统默认的渲染器,在不改变渲染连路的情况下,直接植入所述弹幕数据,渲染过程中根据当前弹幕展示的位置,将所有当前位置待展示的弹幕排布到一张内存DC上,排列原则是任意两条弹幕不能重合,优先从顶行展示,如当前行不能展示则展示下一行,确保不出现文字内容重合,然后将所述内存DC的数据拷贝给所述渲染器,所述渲染器将所述内存DC的数据渲染成弹幕图像;利用HOOK技术将所述弹幕图像嵌合到所述视频的画面中。2.根据权利要求1所述的在渲染器中利用HOOK实现弹幕的方法,其特征在于,所述弹幕数据,包括时间信息。3.根据权利要求1所述的在渲染器中利用HOOK实现弹幕的方法,其特征在于,所述利用HOOK技术将所述弹幕图像嵌合到所述视频的画面中,进一步为,利用HOOK技术将所述弹幕图像嵌合到所述视频播放的屏幕中自上而下1/3至1/2的位置。4.根据权利要求2所述的在渲染器中利用HOOK实现弹幕的方法,其特征在于,所述弹幕数据,还包括:文字内容、字体和颜色。5.在渲染器中利用HOOK实现弹幕的装置,其特征在于,包括:弹幕数据获取模块、渲染模块和嵌合模块,其中,所述弹...
【专利技术属性】
技术研发人员:李永超,朱春明,朱彦东,张鹏宇,
申请(专利权)人:暴风集团股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。