一种在线视频中插播Flash的方法和装置的制作方法

文档序号:7663317阅读:175来源:国知局
专利名称:一种在线视频中插播Flash的方法和装置的制作方法
技术领域
本发明涉及网络通信技术,特别涉及一种在线视频中插播Flash的方法和 装置。
背景技术
随着多媒体和网络通讯技术的发展,各种在线视频播放应用已经越来越普及,许多用户都通过网络观看各种视频内容。目前,通过网络观看视频的用户不断地增多,各种新兴的互联网产品也大 量出现,比如视频分享、在线电影播放、在线电视等等。由于视频播放时所 具有的视觉独占性,在视频内容里增加广告内容已经成为了 一种很现实的可以 产生价值的需求所在。现有的在视频内容中增加广告内容的方法是在客户端中,采用 一种实现 Flash动画内容的叠加的方法实现的,具体的步骤包括1 )创建一个独立于视频播放窗口的悬浮窗口 。
2 )在悬浮窗口中放置一个Flash播放控件播放Flash动画。 通过响应窗口缩放改变悬浮窗口的大小,通过移动的"视窗"操作系统(Windows)消息改变悬浮窗口的位置,实现在线视频中播放Flash动画。但是目前的在线视频中播放Flash动画的方法,由于视频播放和Flash播 放是在两个独立窗口中进行,不利于对视频播放和Flash播放进行控制,比如 视频播放区域改变后(假设用户将播放视频由最大化变为窗口化),由于Flash 动画有延迟,无法立即同步改变。综上所述,现有的在线视频中播放Flash的方法,由于视频播放和Flash 播放是在两个独立窗口中进行,不利于对视频播放和Flash播放进行控制
发明内容
本发明提供一种在线视频中插播Flash的方法和装置,用以解决现有技术 存在的在线视频中插播Flash时,由于视频播放和Flash播放是在两个独立窗 口中进行,不利于对视频播放和Flash播放进行控制的问题。 本发明实施例提供的一种在线视频中插播Flash的方法包括 将需要插播的Flash的内容转换成位图; 将转换后的所述位图与^L频内容进行叠加,并输出。 本发明实施例提供的一种在线视频中插播Flash的装置包括 转换模块,用于将需要插播的Flash的内容转换成位图; 叠加模块,用于将转换后的所述位图与视频内容进行叠加,并输出。 本发明实施例将需要插播的Flash的内容转换成位图;将转换后的所述位 图与视频内容进行叠加,并输出,从而能够快速、方便地对视频播放和Flash 播放进行控制。


图1A为本发明实施例第一种在线视频中插播Flash的装置结构示意图; 图IB为本发明实施例第二种在线视频中插播Flash的装置结构示意图; 图1C为本发明实施例第三种在线视频中插播Flash的装置结构示意图; 图2为本发明实施例第一种在线视频中插播Flash的方法流程示意图; 图3为本发明实施例第二种在线视频中插播Flash的方法流程示意图; 图4为本发明实施例第三种在线视频中插播Flash的方法流程示意图; 图5A为现有技术播放视频的链路示意图; 图5B为本发明实施例播放视频的链路示意图。
具体实施例方式
在本发明实施例中,将Flash内容转换成与视频流相同的4各式,并将转换 后的Flash内容与视频流叠加,并输出,实现了同一个窗口既显示视频流又显 示Flash。下面结合说明书附图对本发明实施例作进一步详细描述。如图1A所示,本发明实施例第一种在线视频中插播Flash的装置包括转换模块10和叠加模块20。转换模块10,与叠加模块20连接,用于将需要插播的Flash的内容转换成位图。其中,转换模块IO还可以进一步包括创建模块IOO和绘制模块110。 创建模块100,用于创建绑定位图的内存。在本实施例中,创建才莫块100可以利用Windows API CreateCompatibleDC进行创建。绘制模块110,用于将Flash的当前帧的内容绘制到创建模块100创建的 位图上。叠加模块20,与转换模块IO连接,用于将转换模块IO转换后的位图与视 频内容进4亍叠加,并l俞出。在本实施例中,叠加模块20在YUV颜色空间中进行叠加,常用的方式为 叠加混合运算。其中,本发明实施例第一种在线视频中插播Flash的装置还可以进一步包 括获取模块30。获取模块30,与转换模块10连接,用于显示需要插播的Flash的内容,获取显示的当前帧的内容。获取模块30可以是ActiveX控件或其他能够播放Flash内容的软件。 如果获取模块30是ActiveX控件,则转换模块10可以查询ActiveX控件的IViewObj ect接口 ,通过调用IViewObj ect: :Draw创建绑定位图的内存,并将接口的内容绘制到该内存上。 其中,如果视频输出一般采用YUV格式,则本发明实施例第一种在线视 频中插播Flash的装置还可以进一步包括緩存模块40。緩存模块40,与转换模块10和叠加模块20连接,用于在转换模块10将 需要插播的Flash的内容转换成位图之后,叠加模块20将转换后的位图与视频 内容进行叠加之前,从转换的位图中取出RGB格式的数据,将RGB格式的数 据转换成YUV格式的位图,并进行缓存。如果创建模块100利用Windows API CreateCompatibleDC进行创建,则緩 存模块40从设备无关位图(DIB)中取出RGB格式的数据。在本实施例中,緩存模块40根据下面的公式将RGB格式的数据转换为 YUV格式的位图Y-0.299R + 0.587G + 0.114BU = -0.147R - 0.289G + 0.436BV = 0.615R-0.515G-0.100B 位图中的RGB格式包括但不限于下列格式中的一种或几种 RGB1、 RGB4、 RGB8、 RGB565、 RGB555、 RGB24、 RGB32、 ARGB32等。换成后的YUV格式包括但不限于下列格式中的一种或几种YUY2、 YUYV、 YVYU、 UYVY、 AYUV、 Y41P、 Y411、 Y211、 IF09、IYUV、 YV12、 YVU9、 YUV411、 YUV420等。为了使转换后的YUV格式与视频内容更易于重叠, 一般都将转换为YV12格式。其中,叠加模块20还可以进一步包括第一处理模块200和第一输出模 块210。第一处理模块200,用于将緩存模块40中的YUV格式的位图按存储的顺 序与视频内容进行叠加。第一输出模块210,用于输出第一处理模块200叠加后的视频。
其中,叠加模块20还可以进一步包括第三处理模块220。 第三处理模块220,用于根据设定的透明值,对转换模块IO转换后的位图 进4亍处理。则第 一处理模块第三处理模块220将转换后的位图按存储顺序与视频内容 进行叠力口。其中,本发明实施例第一种在线视频中插播Flash的装置还可以进一步包 括第一判断模块50。第一判断模块50,与叠加模块20、获取模块30和緩存模块40连接,用 于在緩存模块40将YUV格式的位图进行緩存之后,叠加模块20将转换后的 位图与视频内容进行叠加之前,查看当前帧是否是最后一帧,如果是,则通知 叠加模块将转换后的位图与视频内容进行叠加;否则通知获取模块30继续获取显示的下一帧的内容。在本发明实施例中,如果装置中有第一判断模块50,则叠加模块20中包 括第一处理模块200和第 一输出模块210。如果装置中没有第 一判断模块50, 则叠加模块20还可以进一步包括第二处理模块230和第二输出模块240,如 图1B所示,本发明实施例第二种在线视频中插播Flash的装置中,第二处理模块230,用于将緩存中的YUV格式的位图与视频内容进行叠加。第二输出模块240,用于输出第二处理模块230叠加后的视频。 则本发明实施例第二种在线视频中插播Flash的装置还可以进一步包括 第二判断模块60。第二判断模块60,与叠加模块20和获取模块30连接,用于若当前帧不是 最后一帧,则在叠加模块20输出视频后,通知获取模块30继续获取显示的下 一帧的内容。本发明实施例第二种在线视频中插播Flash的装置适用于Flash内容较多 的情况。
当然,有一种实施方式是将图1A和图1B装置合起来使用,如图1C所示, 本发明实施例第三种在线视频中插播Flash的装置中,有图1A所有的模块, 还有图1B的第二判断模块60、第二处理模块230以及第二输出模块240。在实现过程中,装置可以根据Flash的内容,自由进行切换,比如如果 Flash的内容较少,则选择图1A的模块进行工作;如果Flash的内容较多,则 选择图IB的模块进行工作。如图2所示,本发明实施例第一种在线视频中插播Flash的方法包括下列 步骤步骤201 、将获取的Flash的内容转换成位图。 其中,步骤201还可以进一步包括将获取的Flash的当前帧的内容绘制到绑定位图的内存上。 在本实施例中,可以利用Windows API CreateCompatibleDC创建一个绑定 了位图的内存,将获取的Flash的当前帧的绘制到该内存上。 步骤202、将转换后的位图与视频内容进行叠加,并输出。 在本实施例中还可以设定位图的透明值,则步骤202还可以进一步包括 根据设定的透明值,对转换后的位图进行处理; 将处理后的位图与视频内容进行叠加。其中,可以根据下列方式确定转换后的位图叠加到视频内容的位置以及透明值的大小用户设定,预先设定,根据视频内容确定等等。其中,步骤201之前还可以进一步包括显示需要插播的Flash的内容,获取显示的当前帧的内容。在本实施例中,可以采用ActiveX控件或其他能够播放Flash内容的软件,显示需要插播Flash的内容。如果是ActiveX控件,则步骤201中,可以查询ActiveX控件的IViewObject接口,通过调用IViewObject::Draw将接口的内容绘制到绑定位图的内存上。
其中,步骤201和步骤202之间还可以进一步包括 从位图中取出RGB格式的数据;将RGB格式的数据转换成YUV格式的位图,并进行緩存,Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436BV = 0.615R-0.515G-0.100B位图中的RGB格式包括但不限于下列格式中的 一种或几种RGB1、 RGB4、 RGB8、 RGB565、 RGB555、 RGB24、 RGB32、 ARGB32等。换成后的YUV格式包括但不限于下列格式中的 一种或几种YUY2、 YUYV、 YVYU、 UYVY、 AYUV、 Y41P、 Y411、 Y211、 IF09、IYUV、 YV12、 YVU9、 YUV411、 YUV420等。为了使转换后的YUV格式与视频内容更易于重叠, 一般都将转换为YV12格式。在本实施例中,将RGB格式的数据转换成YUV格式的位图,并进行緩存 之后,步骤202之前还可以进一步包括步骤a201、查看所述当前帧是否是最后一帧,如果是,则将转换后的所述 位图与视频内容进行叠加,否则继续获取显示的下一帧的内容。则步骤202中,将緩存中的YUV格式的位图按存储的顺序与视频内容进 行叠力口。在本实施例中,如果步骤202中,将緩存中的YUV格式的位图与视频内 容进行叠加,则步骤202之后还可以进一步包括步骤a202、查看当前帧是否是最后一帧,如果是,则结束流程;否则,继 续获取显示的下一帧的内容。由于緩存位图需要占用大量的内存,所以对于Flash内容较多时,可以选
择步骤a202的流程,即转换一张位图就叠加一张位图;而步骤a201的流程是 和Flash内容较少的情况,即将所有的Flash内容全部转换成位图后,在进行 叠加,在实现过程中选择哪种流程的方式包括但不限于下列方式中的 一种
根据Flash的内容大小决定,根据用户的设置决定,根据用户终端的内存 容量决定等等。
—(明实施例的方^ 如图3所示,本发明实施例第二种在线视频中插播Flash的方法包括下列 步骤
在本实施例中,Flash的内容较小,即采用将所有的Flash内容全部转换成 位图后,在进行叠加的方法。
步骤300、利用ActiveX控件播放Flash的内容。
步骤301 、跳转到Flash的第 一帧。
步骤302、查询ActiveX控件的IViewObject接口 。
步骤303 、通过调用IViewObject::Draw将获取的Flash的当前帧的内容绘 制到绑定了内存的位图上。
步骤304、从DIB中取出RGB格式的位图数据,转换成YV12格式的位图。
步骤305、按照转换的顺序緩存YV12格式的位图。 步骤306、查看当前帧是否是最后一帧,如果是,则执行步骤308;否贝'J, 执行步骤307。
步骤307、跳转到下一帧,并执行步骤302。
步骤308、根据透明值,将緩存中的YV12格式的位图按存储的顺序与视 频内容在YUV颜色空间中进行叠加,并输出。
如图4所示,本发明实施例第三种在线视频中插播Flash的方法包括下列 步骤
在本实施例中,Flash的内容较大,即采用转换一张位图就叠加一张位图
的方法。
步骤400、利用ActiveX控件播放Flash的内容。
步骤401、跳转到Flash的第一帧。
步骤402、查询ActiveX控件的IViewObject接口 。
步骤403 、通过调用IViewObject::Draw将获取的Flash的当前帧的内容绘 制到绑定了内存的位图上。
步骤404、从DIB中取出RGB格式的位图数据,转换成YV12格式的位图。
步骤405、緩存YV12格式的位图。
步骤406、根据透明值,将緩存中的YV12格式的位图与视频内容在YUV 颜色空间中进行叠加,并输出。
步骤407、查看当前帧是否是最后一帧,如果是,则结束本流程;否则, 执行步骤408。
步骤408、跳转到下一帧,并执行步骤402。
其中,步骤405中,会先删除上一帧转换的YV12格式的位图,在緩存当 前帧转换的YV12格式的位图。当然,也可以设定緩存YV12格式的数量,采 用先进先出方式进行緩存。
需要说明的是,在具体实施过程中,将图3和图4合并起来,根据设定的 条件决定使用哪个流程;使用其他播放Flash软件获取Flash内容,并进行转 换和叠加的方法与图2 -图4所示的方法类似,不再赘述。
在Windows平台上,定义了如何利用标准组件来处理流媒体数据,这些组 件称为过滤器(Filter),将各种Filter组合在一起形成一个链路,即可对各种 流媒体进行处理。
如图5A所示,现有技术播放视频的链路示意图中,首先由原始滤波器 (Source Filter)从文件或网络获取视频数据,形成字节流;再由分离滤波器 (Splitter Filter)将4见频流和音频流分开,分别由视频解码器(Video Decoder)
和音频解码器(Audio Decoder)对视频流和音频流进4亍解码;最后由一见频输出 解码器(Video Render Filter)和音频输出解码器(Audio Render Filter)分别输 出图像和声音。
本发明实施例可以在图5A的基础上,通过一个转换滤波器(Transform Filter)完成位图的叠加,如图5B所示,本发明实施例播放视频的链路示意图 中,
以上链路建立完成后,播放视频时,每帧视频图像在输出前都会先输出到 Transform Filter,由于Transform Filter在Video Render Filter之前,所以在llr出 视频流之前,可以从Flash转换得到的位图中取出相应的YV12格式的位图, 和当前视频帧的位图完成叠加后,由Video Render Filter输出新的视频帧的位 图。
本领域的技术人员应该明白,上述的本发明实施例中的各模块或各步骤可 以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在 多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代 码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它 们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个 集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。应脱离本发明的精神保护范围。
从上述实施例中可以看出本发明实施例将需要插播的Flash的内容转换 成位图;将转换后的所述位图与视频内容进行叠加,并输出,从而能够快速、 方便地对视频播放和Flash播放进行控制,并且对于Flash播放,能够给用户 带来更好的视觉效果,在Flash播放的尺寸和位置上可以更灵活的配置,消除 了移动窗口带来的重绘和托影的现象。
精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等
同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种在线视频中插播Flash的方法,其特征在于,该方法包括将需要插播的Flash的内容转换成位图;将转换后的所述位图与视频内容进行叠加,并输出。
2、 如权利要求l所述的方法,其特征在于,所述需要插播的Flash的内容 是根据下列步骤获取的显示需要插播的Flash的内容,获取显示的当前帧的内容。
3、 如权利要求2所述的方法,其特征在于,所述将需要插播的所述Flash 的内容转换成位图包括将需要插播的所述Flash的当前帧的内容绘制到绑定位图的内存上。
4、 如权利要求2或3所述的方法,其特征在于,所述将需要插播的所述 Flash的内容转换成位图之后,所述将转换后的所述位图与视频内容进行叠加 之前还包括从所述位图中取出RGB格式的数据;将RGB格式的数据转换成YUV格式的位图,并进行緩存。
5、 如权利要求4所述的方法,其特征在于,所述将RGB格式的数据转换 成YUV格式的位图,并进行緩存之后,所述将转换后的所述位图与视频内容 进行叠加之前还包括查看所述当前帧是否是最后一帧,如果是,则将转换后的所述位图与视频 内容进行叠加,否则继续获取显示的下一帧的内容。
6、 如权利要求5所述的方法,其特征在于,所述将转换后的所述位图与 3见频内容进行叠加包括将緩存中的YUV格式的位图按存储的顺序与视频内容进行叠加。
7、 如权利要求4所述的方法,其特征在于,所述将转换后的所述位图与 视频内容进行叠加包括将緩存中的YUV格式的位图与视频内容进行叠加; 则所述将转换后的所述位图与视频内容进行叠加,并输出之后包括 若所述当前帧不是最后一帧,则继续获取显示的下一帧的内容。
8、 如权利要求1所述的方法,其特征在于,所述将转换后的所述位图与 视频内容进行叠加包括根据设定的透明值,对转换后的所述位图进行处理; 将处理后的位图与视频内容进行叠加。
9、 一种在线视频中插播Flash的装置,其特征在于,该装置包括 转换模块,用于将需要插播的Flash的内容转换成位图; 叠加模块,用于将转换后的所述位图与视频内容进行叠加,并输出。
10、 如权利要求9所述的装置,其特征在于,所述装置还包括 获取模块,用于显示需要插播的Flash的内容,获取显示的当前帧的内容。
11、 如权利要求IO所述的装置,其特征在于,所述转换模块包括 创建模块,用于创建绑定位图的内存;绘制模块,用于将需要插播的所述Flash的当前帧的内容绘制到位图上。
12、 如权利要求10或11所述的装置,其特征在于,所述装置还包括 緩存模块,用于在所述转换模块将需要插播的所述Flash的内容转换成位图之后,所述叠加模块将转换后的所述位图与视频内容进行叠加之前,从所述 位图中取出RGB格式的数据,将RGB格式的数据转换成YUV格式的位图, 并进行缓存。
13、 如权利要求12所述的装置,其特征在于,所述装置还包括 第一判断模块,用于在所述緩存模块将YUV格式的位图进行緩存之后,所述叠加模块将转换后的所述位图与视频内容进行叠加之前,查看所述当前帧 是否是最后一帧,如果是,则通知所述叠加模块将转换后的所述位图与视频内 容进行叠加;否则通知获取模块继续获取显示的下一帧的内容。
14、 如权利要求13所述的装置,其特征在于,所述叠加模块包括 第一处理模块,用于将緩存中的YUV格式的位图按存储的顺序与视频内 容进行叠加;第一输出模块,用于输出叠加后的视频。
15、 如权利要求12所述的装置,其特征在于,所述叠加模块包括 第二处理模块,用于将緩存中的YUV格式的位图与视频内容进行叠加; 第二输出模块,用于输出叠加后的视频;则所述装置包括第二判断模块,用于若所述当前帧不是最后一帧,则在所述叠加模块输出 视频后,通知所述获取模块继续获取显示的下一帧的内容。
16、 如权利要求9所述的装置,其特征在于,所述叠加模块还包括 第三处理模块,用于根据设定的透明值,对转换后的所述位图进行处理。
全文摘要
本发明实施例公开了一种在线视频中插播Flash的方法,包括将需要插播的Flash的内容转换成位图;将转换后的所述位图与视频内容进行叠加,并输出。通过本发明实施例解决了现有技术存在的在线视频中插播Flash时,由于视频播放和Flash播放是在两个独立窗口中进行,不利于对视频播放和Flash播放进行控制的问题。本发明实施例同时公开了一种在线视频中插播Flash的装置。
文档编号H04N5/262GK101159819SQ200710165969
公开日2008年4月9日 申请日期2007年11月9日 优先权日2007年11月9日
发明者蔚 周, 熊晓林 申请人:深圳市迅雷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1