动态静态视频流图片覆盖方法与流程

文档序号:12789941阅读:510来源:国知局
动态静态视频流图片覆盖方法与流程

本发明涉及实时直播,尤其涉及实时直播的图片覆盖技术。



背景技术:

随着实时直播技术的发展,带来了巨大的商机。但是用户观看直播时,仅仅能收看直播,而不能在直播流上实时覆盖图片,互动性较差。现有的技术中,弹幕和直播流是相互独立的,因此,换一个视频网站弹幕就会消失,不能实现任一平台覆盖所有平台实时接收,限制很大。水印技术也仅仅应用于转码阶段。因此,通过现有技术完全无法实时修改直播视频流。用户登录各个视频平台来收看直播节目,各个平台间没有交流和互动,十分不方便。

有必要进一步改进实时直播技术,使收看直播更加便捷。



技术实现要素:

本发明之目的是一种动态静态视频流图片覆盖方法,其能够实时修改直播视频流,并且,任一平台实时覆盖图片所有平台均可实时接收修改后的直播视频流。

本发明提供一种动态静态视频流图片覆盖方法,用于在视频上叠加静态和动态图像,使得直播可以提供和电视节目一样的观看体验,包括:

步骤1:直播发起方推送源视频流至直播云;

步骤2:监听器开始侦听直播云事件,调用图片处理事件;

步骤3:当监听器侦听到任意一件直播云事件被触发时,直播云按照相应的叠加模式对源视频流自动叠加所需要的动态静态图片生成合成视频流;

步骤4:直播云将合成视频流推送给观众的直播终端。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,步骤3包括:

步骤31:直播云对原视频流进行解码生成解码视频流;

步骤32:直播云对解码视频流的码率和画面进行调整生成覆盖了图片的视频流;

步骤33:直播云编码覆盖了图片的视频流生成合成视频流。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,步骤32包括:

步骤321:从ffmpeg和live555获取推送过来的H.264源视频流(实时视频流);

步骤322:将图片转化为视频帧叠加到源视频流中生成中间视频流;

步骤323:中间视频流数据覆盖源视频流数据。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,步骤322包括:

步骤3221:检测覆盖图像的文件格式是否是预设文件格式;

步骤3222:检测覆盖图像的尺寸是否大于预设像素数;

步骤3223:检测覆盖图像宽度和高度是否是偶数数目的像素;

步骤3224:检测覆盖图像坐标并校正覆盖图像在适配的每一帧的位置;

步骤3225:直播云按照相应的叠加模式对源视频流自动叠加所需要的动态静态图片。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,步骤3的叠加模式包括:

预设模式,对用户编辑的相应直播模板下的所有直播流编辑生效的模式;

基于直播云的API实时编程模式,只对用户编辑的特定的直播流编辑生效的模式。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,步骤31包括:

将源视频流中的每个帧均解码为YUV12格式;

将覆盖图像均转换为YUV12格式。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,

步骤3221包括:检查覆盖图像的文件格式为GIF、JPEG、PNG、BMP或RGB类型图像时,输出第一检测结果为合格;

步骤3222包括:第一检测结果为合格时,检测叠加图像尺寸大于4x 4像素时,输出第二检测结果为合格;

步骤3223包括:第二检测结果为合格时,检测叠加图像宽度像素和高度像素均为偶数时,输出第三检测结果为合格;

步骤3224包括:第三检测结果为合格时,检测覆盖图像位于视频上的x和y坐标上,输出第四检测结果为合格;

步骤3225包括:当第一检测结果、第二检测结果、第三检测结果和第四检测结果均为合格时,直播云按照相应的叠加模式对源视频流自动叠加所需要的动态静态图片生成合成视频流。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,对解码视频流的码率和画面进行调整包括:

直播时在视频画面中实时增加广告、标题、水印、公司徽标或符号或体育/股票行情收报器。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,步骤32还包括:

通过配置编码器的转码器模板和覆盖API,来对当前视频帧的尺寸进行调整。

作为优选方式,本发明提供一种动态静态视频流图片覆盖方法,其中,覆盖API包括:

在每个视频帧上覆盖一组或多组透明或半透明的图层,其中,每组图层可以包括一层或多层图层;

将后一组图层与前一组图层融合在一起。

本发明提供的一种动态静态视频流图片覆盖方法一方面能够在直播视频流的不同阶段自动添加动态或者静态的图像。另一方面能够在直播流上实时覆盖图片,能够实时修改直播视频流,并且,任一平台实时覆盖图片所有平台均可实时接收修改后的直播视频流。用户可以通过手动配置或基于直播云生命周期的外部事件的预编程序,使得网络直播获得电视直播一样的效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅用于解释本发明的构思。

图1为本发明动态静态视频流图片覆盖方法的示意框图;

图2为本发明动态静态视频流图片覆盖方法的示意框图步骤流程图;

图3为本发明动态静态视频流图片覆盖方法的原理图。

附图标记汇总:

1、直播发起方 2、直播云 3、监听器

4、直播终端

具体实施方式

在下文中,将参照附图描述本发明的动态静态视频流图片覆盖方法的实施例。

在此记载的实施例为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施例外,本领域技术人员还能够基于本申请权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括对在此记载的实施例做出任何显而易见的替换和修改的技术方案。

本说明书的附图为示意图,辅助说明本发明的构思,示意性地表示各部分的相互关系。相同或相似的参考标记用于表示相同或相似的部分。

参见图1和图2,本发明提出的一种动态静态视频流图片覆盖方法,用于在视频上叠加静态和动态图像,使得直播可以提供和电视节目一样的观看体验,包括:

步骤1:S1直播发起方1推送源视频流至直播云2;

步骤2:S2监听器3开始侦听直播云2事件,调用图片处理事件;

步骤3:S3当监听器3侦听到任意一件直播云2事件被触发时,直播云2按照相应的叠加模式对源视频流自动叠加所需要的动态静态图片生成合成视频流;

步骤4:S4直播云2将合成视频流推送给观众的直播终端4。

在本实施例中,本发明可以基于直播云2的生命周期模型,可以在直播过程中合适的事件发生时叠加所需要的动态静态图片,比如直播开始时、直播进行中、直播结束时或者直播全程。

本发明可以同时提供两种叠加方式:预设模式,将某种直播模板下的所有直播流生效。基于直播云2开发API实时编程模式,只对具体的直播流生效。

本发明一方面能够在直播视频流的不同阶段自动添加动态或者静态的图像。另一方面能够在直播流上实时覆盖图片,能够实时修改直播视频流,并且,任一平台实时覆盖图片所有平台均可实时接收修改后的直播视频流。用户可以通过手动配置或基于直播云2生命周期的外部事件的预编程序,使得网络直播获得电视直播一样的效果。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,步骤3包括:

步骤31:直播云2对原视频流进行解码生成解码视频流;

步骤32:直播云2对解码视频流的码率和画面进行调整生成覆盖了图片的视频流;

步骤33:直播云2编码覆盖了图片的视频流生成合成视频流。

在本实施例中,本发明可以通过Java来实现视频流的编码、解码和动态/静态视频流图片的覆盖,其中,动态/静态视频流图片的覆盖的方法可以通过使用基于Java的直播云2API在直播视频流上叠加静态和动态图像来实现。监听器3开始侦听直播云2事件之前,可以是手动配置叠加图片的触发事件或基于直播云2生命周期的外部事件来预编程序来实现当事件触发时实时自动叠加图片的效果(例如:设置触发事件为在直播开始时、直播进行中和直播结束时自动叠加图片,也可以设置为用户切换直播命令时触发自动叠加图片),使得直播可以提供和电视节目一样的观看体验。基于该发明在直播时在视频画面中可以实时增加广告、标题、水印、公司徽标或符号、体育/股票行情收报器、气象信息、或是防洪防灾信息、弹幕等等。

使用直播云2实时编解码器来叠加图像图形,以便覆盖物是可能的最高标准,可以通过直播云2自动检测叠加图片的过程例如:检测覆盖图像的文件格式是否是GIF、JPEG、PNG、BMP或RGB类型图像。叠加图像尺寸是否大于4x4像素。叠加图像宽度和高度是否是偶数数目的像素。覆盖图像是否位于视频上的x和y坐标上。

当检测到图像类型、图像尺寸、图像像素数目和图像位置不符合标准时,可以发送不符合标准的相关消息告知叠加图片的用户,也可以调用用户预设的编码来自动修正图像类型、图像尺寸、图像像素数目和图像位置。

视频源中的每个帧解码后要求是YUV12格式,这是一个2x2像素格式。因为RGB是1x1像素格式,覆盖图像也必须转换为YUV12。可以在叠加图像之前先转码。如果覆盖图像是奇数个像素(宽度或高度),可能会覆盖后留边,因此可以先自动裁剪之后再覆盖图像。如果覆盖图像覆盖在视频帧的(x,y)坐标上,其中,x或y坐标位置造成留边现象,可以先自动校正覆盖的(x,y)坐标,然后再覆盖图像。

图像可以在解码帧,编码帧或解码和编码帧时叠加。在转码过程中,不同的叠加步骤将产生不同的结果:

可以在解码帧时覆盖图像,通过配置解码器或是通过直播云2上的覆盖API来实现覆盖。通过解码器和覆盖API来实现在解码帧之前进行图片大小和定位调整,以及帧缩放。通过帧缩放能够大大减少图片处理的时间,但是会降低画质。

可以在编码帧时覆盖图像,通过配置解码器或是通过直播云2上的覆盖API来实现覆盖。通过解码器和覆盖API来实现图片大小和定位调整,先对每个视频帧进行缩放,再对每个视频帧分别全尺寸覆盖图像。这样能够增加画质,但是会增加图片处理的时间。可以通过预设模式或者接口编程模式两种方式叠加图像,以适应不同场景。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,参见图3,其中,步骤32包括:

步骤321:从ffmpeg和live555获取推送过来的H.264源视频流(实时视频流);

步骤322:将图片转化为视频帧叠加到源视频流中生成中间视频流;

步骤323:中间视频流数据覆盖源视频流数据。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,步骤322包括:

步骤3221:检测覆盖图像的文件格式是否是预设文件格式;

步骤3222:检测覆盖图像的尺寸是否大于预设像素数;

步骤3223:检测覆盖图像宽度和高度是否是偶数数目的像素;

步骤3224:检测覆盖图像坐标并校正覆盖图像在适配的每一帧的位置;

步骤3225:直播云2按照相应的叠加模式对源视频流自动叠加所需要的动态静态图片。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,步骤3的叠加模式包括:

预设模式,对用户编辑的相应直播模板下的所有直播流编辑生效的模式;

基于直播云2的API实时编程模式,只对用户编辑的特定的直播流编辑生效的模式。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,步骤31包括:

将源视频流中的每个帧均解码为YUV12格式;

将覆盖图像均转换为YUV12格式。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,

步骤3221包括:检查覆盖图像的文件格式为GIF、JPEG、PNG、BMP或RGB类型图像时,输出第一检测结果为合格;

步骤3222包括:第一检测结果为合格时,检测叠加图像尺寸大于4x 4像素时,输出第二检测结果为合格;

步骤3223包括:第二检测结果为合格时,检测叠加图像宽度像素和高度像素均为偶数时,输出第三检测结果为合格;

步骤3224包括:第三检测结果为合格时,检测覆盖图像位于视频上的x和y坐标上,输出第四检测结果为合格;

步骤3225包括:当第一检测结果、第二检测结果、第三检测结果和第四检测结果均为合格时,直播云2按照相应的叠加模式对源视频流自动叠加所需要的动态静态图片生成合成视频流。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,对解码视频流的码率和画面进行调整包括:

直播时在视频画面中实时增加广告、标题、水印、公司徽标或符号或体育/股票行情收报器。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,步骤32还包括:

通过配置编码器的转码器模板和覆盖API,来对当前视频帧的尺寸进行调整。

本实施例进一步优选地,提供了一种动态静态视频流图片覆盖方法,其中,覆盖API包括:

在每个视频帧上覆盖一组或多组透明或半透明的图层,其中,每组图层可以包括一层或多层图层;

将后一组图层与前一组图层融合在一起。

以上对本发明的动态静态视频流图片覆盖方法进行了说明。对于本发明的动态静态视频流图片覆盖方法涉及的装置的具体特征可以根据本发明披露的特征的作用进行具体设计,这些设计均是本领域技术人员能够实现的。而且,本发明披露的各技术特征并不限于已披露的与其它特征的组合,本领域技术人员还可根据本发明之目的进行各技术特征之间的其它组合,以实现本发明之目的为准。

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