本发明涉及网络技术领域,尤其涉及一种视频广告拦截方法及装置。
背景技术:
近年来,越来越多的用户使用视频软件观看视频,但是在视频正式播放之前或者视频播放过程中,都会插播一些视频广告,而且视频广告的时间是越来越长,严重影响用户的使用体验,目前,有些视频广告拦截软件可以实现拦截广告视频的目的,但是,在现有视频广告拦截技术中,需要等待视频广告加载播放之后,才能对播放的视频广告进行识别并拦截,导致在拦截视频广告时电脑的显示界面出现闪动情况,因此,有必要提供一种及时在广告视频播放之前及时拦截广告视频的方法。
技术实现要素:
本发明实施例提供一种视频广告拦截方法及装置。可以在广告视频加载播放之前对广告视频进行拦截,从而提高了拦截视频广告的及时性。
本发明实施例提供了一种视频广告拦截方法,包括:
将Hook函数加入到视频播放进程中,并调用所述Hook函数对所述视频播放进程中的网络请求函数进行监控;
调用所述网络请求函数向所述网络服务器发送视频服务请求,以使所述网络服务器返回视频数据信息;
当监控接收到所述网络服务器返回的所述视频数据信息时,使用所述Hook函数截获所述视频数据信息;
确定截获的所述视频数据信息是否为广告视频数据;
若确定所述视频数据信息为广告视频数据,则对所述视频播放进程将要播放的所述视频数据信息进行拦截。
其中,所述确定截获的所述视频数据信息是否为广告视频数据包括:
判断所述视频数据信息是否与预设的广告视频信息匹配;
若所述视频数据信息与预设的广告视频信息匹配,则确定所述视频数据信息为广告视频数据。
其中,所述若确定所述视频数据信息为广告视频数据,则对所述视频播放进程将要播放的所述视频数据信息进行拦截包括:
若确定所述视频数据信息为广告视频数据,获取所述Hook函数返回的调用结果;
根据所述调用结果,通知所述视频播放进程所述视频数据信息接收失败进而停止处理所述视频数据信息。
其中,所述将Hook函数加入到视频播放进程中之前,还包括:
当检测到所述视频播放进程启动时,从预设的动态链接库中调取所述Hook函数。
其中,所述调用所述网络请求函数向所述网络服务器发送视频服务请求包括:
获取所述网络服务器的网络服务地址;
根据所述网络服务器的网络服务地址,调用所述网络请求函数向所述网络服务器发送视频服务请求。
相应地,本发明实施例提供了一种视频广告拦截装置,包括:
函数加入模块,用于将Hook函数加入到视频播放进程中,并调用所述Hook函数对所述视频播放进程中的网络请求函数进行监控;
请求发送模块,用于调用所述网络请求函数向所述网络服务器发送视频服务请求,以使所述网络服务器返回视频数据信息;
信息获取模块,用于当监控接收到所述网络服务器返回的所述视频数据信息时,使用所述Hook函数截获所述视频数据信息;
信息确定模块,用于确定截获的所述视频数据信息是否为广告视频数据;
信息拦截模块,用于若确定所述视频数据信息为广告视频数据,则对所述视频播放进程将要播放的所述视频数据信息进行拦截。
其中,所述信息确定模块包括:
信息匹配单元,用于判断所述视频数据信息是否与预设的广告视频信息匹配;
信息确定单元,用于若所述视频数据信息与预设的广告视频信息匹配,则 确定所述视频数据信息为广告视频数据。
其中,所述信息拦截模块具体用于:
若确定所述视频数据信息为广告视频数据,获取所述Hook函数返回的调用结果;
根据所述调用结果,通知所述视频播放进程所述视频数据信息接收失败进而停止处理所述视频数据信息。
其中,所述函数加入模块,还用于当检测到所述视频播放进程启动时,从预设的动态链接库中调取所述Hook函数。
其中,所述请求发送模块具体用于:
获取所述网络服务器的网络服务地址;
根据所述网络服务器的网络服务地址,调用所述网络请求函数向所述网络服务器发送视频服务请求。
实施本发明实施例,首先将Hook函数加入到视频播放进程中,并调用Hook函数对视频播放进程中的网络请求函数进行监控;然后调用网络请求函数向网络服务器发送视频服务请求,以使网络服务器返回视频数据信息;其次当监控接收到网络服务器返回的视频数据信息时,使用Hook函数截获视频数据信息;并确定截获的视频数据信息是否为广告视频数据;最后若确定视频数据信息为广告视频数据,则对视频播放进程将要播放的视频数据信息进行拦截。从而实现在广告视频加载播放之前对广告视频进行拦截,提高了拦截视频广告的及时性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提出的一种视频广告拦截方法的第一实施例的流程图;
图2是本发明提出的一种视频广告拦截方法的第二实施例的流程图;
图3是本发明实施例提出的一种视频广告拦截装置的结构示意图;
图4是本发明实施例提出的装置中信息确定模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1是本发明提出的一种视频广告拦截方法的第一实施例的流程图。如图所示,本发明实施例中的方法包括:
S101,将Hook函数加入到视频播放进程中,并调用所述Hook函数对所述视频播放进程中的网络请求函数进行监控。
具体实现中,可以首先检测视频播放进程是否启动,当检测到所述视频播放进程启动时,从预设的动态链接库中调取所述Hook函数,并将Hook函数加入到视频播放进程中。其中,所述预设的动态链接库为一个包含可由多个进程同时使用的代码和数据的库,进程执行过程中可以从动态链接库调用可执行代码的函数。
需要说明的是,Hook(钩子)是Windows消息处理机制的一个平台,应用程序可以在上面设置子程序以监视从网络服务器返回的视频数据信息,当接收到视频数据信息到达后,在执行视频播放函数之前处理该视频数据信息。另外,Hook机制允许应用程序截获处理Window消息或特定事件,钩子实际上是一个处理消息的程序段,通过系统调用,将Hook函数挂入系统,在视频播放进程加载播放视频数据信息之前,Hook函数就先捕获该视频数据信息,进而Hook函数可以加工处理该视频数据信息,也可以不作处理而继续传递该视频数据信息,还可以强制结束该视频数据信息的传递。
S102,调用所述网络请求函数向所述网络服务器发送视频服务请求,以使所述网络服务器返回视频数据信息。
具体实现中,可以获取所述网络服务器的网络服务地址;根据所述网络服务器的网络服务地址,调用所述网络请求函数向所述网络服务器发送视频服务请求。其中,网络服务地址可以为视频播放进程所调用的应用程序中的预设地址,所述网络请求函数可以包括connect函数和WSARecv函数等等,视频数据信息可以包括视频链接信息和视频数据内容等等。
S103,当监控接收到所述网络服务器返回的所述视频数据信息时,使用所述Hook函数截获所述视频数据信息。
具体实现中,由于在该视频数据信息加入了Hook函数,在接收到所述网络服务器返回的所述视频数据信息之后,Hook函数优先截获该视频数据信息,Hook函数可以不作处理而继续传递该视频数据信息,Hook函数也可以强制结束该视频数据信息的传递。
S104,确定截获的所述视频数据信息是否为广告视频数据。
具体实现中,可以对所述目标窗口的窗口信息进行识别,以确定截获的所述视频数据信息是否为广告视频数据。
S105,若确定所述视频数据信息为广告视频数据,则对所述视频播放进程将要播放的所述视频数据信息进行拦截。
具体实现中,若确定所述视频数据信息为广告视频数据,获取所述Hook函数返回的调用结果;根据所述调用结果,通知所述视频播放进程所述视频数据信息接收失败进而停止处理所述视频数据信息,其中,所述调用结果可以为拒绝传递信息,由于根据拒绝传递信息,所述视频播放进程判断所述视频数据信息接收失败,因此无法加载该视频数据信息,进而不能播放该视频数据信息。若确定所述视频数据信息为非广告视频数据,则将该视频数据信息传递给视频播放进程,视频播放进程确定视频数据信息接收成功后,加载该视频数据信息并播放。
在本发明实施例中,首先将Hook函数加入到视频播放进程中,并调用Hook函数对视频播放进程中的网络请求函数进行监控;然后调用网络请求函数向网络服务器发送视频服务请求,以使网络服务器返回视频数据信息;其次当监控接收到网络服务器返回的视频数据信息时,使用Hook函数截获视频数据信息;并确定截获的视频数据信息是否为广告视频数据;最后若确定视频数据信息为广告视频数据,则对视频播放进程将要播放的视频数据信息进行拦截。从而实现在广告视频加载播放之前对广告视频进行拦截,提高了拦截视频广告的及时性。
请参考图2,图2是本发明提出的一种视频广告拦截方法的第二实施例的流程图。如图所示,本发明实施例中的方法包括:
S201,将Hook函数加入到视频播放进程中,并调用所述Hook函数对所述视频播放进程中的网络请求函数进行监控。
具体实现中,可以首先检测视频播放进程是否启动,当检测到所述视频播放进程启动时,从预设的动态链接库中调取所述Hook函数,并将Hook函数加入到视频播放进程中。其中,所述预设的动态链接库为一个包含可由多个进程同时使用的代码和数据的库,进程执行过程中可以从动态链接库调用可执行代码的函数。
需要说明的是,Hook(钩子)是Windows消息处理机制的一个平台,应用程序可以在上面设置子程序以监视从网络服务器返回的视频数据信息,当接收到视频数据信息到达后,在执行视频播放函数之前处理该视频数据信息。另外,Hook机制允许应用程序截获处理Window消息或特定事件,钩子实际上是一个处理消息的程序段,通过系统调用,将Hook函数挂入系统,在视频播放进程加载播放视频数据信息之前,Hook函数就先捕获该视频数据信息,进而Hook函数可以加工处理该视频数据信息,也可以不作处理而继续传递该视频数据信息,还可以强制结束该视频数据信息的传递。
S202,调用所述网络请求函数向所述网络服务器发送视频服务请求,以使所述网络服务器返回视频数据信息。
具体实现中,可以获取所述网络服务器的网络服务地址;根据所述网络服务器的网络服务地址,调用所述网络请求函数向所述网络服务器发送视频服务请求。其中,网络服务地址可以为视频播放进程所调用的应用程序中的预设地址,所述网络请求函数可以包括connect函数和WSARecv函数等等,视频数据信息可以包括视频链接信息和视频数据内容等等。
S203,当监控接收到所述网络服务器返回的所述视频数据信息时,使用所述Hook函数截获所述视频数据信息。
具体实现中,由于在该视频数据信息加入了Hook函数,在接收到所述网络服务器返回的所述视频数据信息之后,Hook函数优先截获该视频数据信息,Hook函数可以不作处理而继续传递该视频数据信息,Hook函数也可以强制结束该视频数据信息的传递。
S204,判断所述视频数据信息是否与预设的广告视频信息匹配。
具体实现中,可以在预设的广告视频规则库中设置多种广告视频信息,进 而在截获到从网络服务器返回的所述视频数据信息之后,查找预设的广告视频规则库中是否存在与所述视频数据信息匹配的广告视频信息。
S205,若所述视频数据信息与预设的广告视频信息匹配,则确定所述视频数据信息为广告视频数据。
具体实现中,若从预设的广告视频规则库中未查找与所述视频数据信息匹配的广告视频信息,则确定所述所述视频数据信息为非广告视频数据,若从预设的广告视频规则库中查找与所述视频数据信息匹配的广告视频信息,则确定所述视频数据信息为广告视频数据。
S205,若确定所述视频数据信息为广告视频数据,则对所述视频播放进程将要播放的所述视频数据信息进行拦截。
具体实现中,若确定所述视频数据信息为广告视频数据,获取所述Hook函数返回的调用结果;根据所述调用结果,通知所述视频播放进程所述视频数据信息接收失败进而停止处理所述视频数据信息,其中,所述调用结果可以为拒绝传递信息,由于根据拒绝传递信息,所述视频播放进程判断所述视频数据信息接收失败,因此无法加载该视频数据信息,进而不能播放该视频数据信息。若确定所述视频数据信息为非广告视频数据,则将该视频数据信息传递给视频播放进程,视频播放进程确定视频数据信息接收成功后,加载该视频数据信息并播放。
本发明实施例中,首先将Hook函数加入到视频播放进程中,并调用Hook函数对视频播放进程中的网络请求函数进行监控;然后调用网络请求函数向网络服务器发送视频服务请求,以使网络服务器返回视频数据信息;其次当监控接收到网络服务器返回的视频数据信息时,使用Hook函数截获视频数据信息;并确定截获的视频数据信息是否为广告视频数据;最后若确定视频数据信息为广告视频数据,则对视频播放进程将要播放的视频数据信息进行拦截。从而实现在广告视频加载播放之前对广告视频进行拦截,提高了拦截视频广告的及时性。
请参考图3,图3是本发明实施例提出的一种视频广告拦截装置的结构示意图。如图所示,本发明实施例中的装置包括:
函数加入模块301,用于将Hook函数加入到视频播放进程中,并调用所述 Hook函数对所述视频播放进程中的网络请求函数进行监控。
具体实现中,可以首先检测视频播放进程是否启动,当检测到所述视频播放进程启动时,从预设的动态链接库中调取所述Hook函数,并将Hook函数加入到视频播放进程中。其中,所述预设的动态链接库为一个包含可由多个进程同时使用的代码和数据的库,进程执行过程中可以从动态链接库调用可执行代码的函数。
需要说明的是,Hook(钩子)是Windows消息处理机制的一个平台,应用程序可以在上面设置子程序以监视从网络服务器返回的视频数据信息,当接收到视频数据信息到达后,在执行视频播放函数之前处理该视频数据信息。另外,Hook机制允许应用程序截获处理Window消息或特定事件,钩子实际上是一个处理消息的程序段,通过系统调用,将Hook函数挂入系统,在视频播放进程加载播放视频数据信息之前,Hook函数就先捕获该视频数据信息,进而Hook函数可以加工处理该视频数据信息,也可以不作处理而继续传递该视频数据信息,还可以强制结束该视频数据信息的传递。
请求发送模块302,用于调用所述网络请求函数向所述网络服务器发送视频服务请求,以使所述网络服务器返回视频数据信息。
具体实现中,可以获取所述网络服务器的网络服务地址;根据所述网络服务器的网络服务地址,调用所述网络请求函数向所述网络服务器发送视频服务请求。其中,网络服务地址可以为视频播放进程所调用的应用程序中的预设地址,所述网络请求函数可以包括connect函数和WSARecv函数等等,视频数据信息可以包括视频链接信息和视频数据内容等等。
信息获取模块303,用于当监控接收到所述网络服务器返回的所述视频数据信息时,使用所述Hook函数截获所述视频数据信息。
具体实现中,由于在该视频数据信息加入了Hook函数,在接收到所述网络服务器返回的所述视频数据信息之后,Hook函数优先截获该视频数据信息,Hook函数可以不作处理而继续传递该视频数据信息,Hook函数也可以强制结束该视频数据信息的传递。
信息确定模块304,用于确定截获的所述视频数据信息是否为广告视频数据。
具体实现中,可以对所述目标窗口的窗口信息进行识别,以确定截获的所 述视频数据信息是否为广告视频数据。
进一步的,如图4所示,信息确定模块304可以包括:
信息匹配单元401,用于判断所述视频数据信息是否与预设的广告视频信息匹配。
具体实现中,可以在预设的广告视频规则库中设置多种广告视频信息,进而在截获到从网络服务器返回的所述视频数据信息之后,查找预设的广告视频规则库中是否存在与所述视频数据信息匹配的广告视频信息。
信息确定单元402,用于若所述视频数据信息与预设的广告视频信息匹配,则确定所述视频数据信息为广告视频数据。
具体实现中,若从预设的广告视频规则库中未查找与所述视频数据信息匹配的广告视频信息,则确定所述所述视频数据信息为非广告视频数据,若从预设的广告视频规则库中查找与所述视频数据信息匹配的广告视频信息,则确定所述视频数据信息为广告视频数据。
信息拦截模块305,用于若确定所述视频数据信息为广告视频数据,则对所述视频播放进程将要播放的所述视频数据信息进行拦截。
具体实现中,若确定所述视频数据信息为广告视频数据,获取所述Hook函数返回的调用结果;根据所述调用结果,通知所述视频播放进程所述视频数据信息接收失败进而停止处理所述视频数据信息,其中,所述调用结果可以为拒绝传递信息,由于根据拒绝传递信息,所述视频播放进程判断所述视频数据信息接收失败,因此无法加载该视频数据信息,进而不能播放该视频数据信息。若确定所述视频数据信息为非广告视频数据,则将该视频数据信息传递给视频播放进程,视频播放进程确定视频数据信息接收成功后,加载该视频数据信息并播放。
本发明实施例中,首先将Hook函数加入到视频播放进程中,并调用Hook函数对视频播放进程中的网络请求函数进行监控;然后调用网络请求函数向网络服务器发送视频服务请求,以使网络服务器返回视频数据信息;其次当监控接收到网络服务器返回的视频数据信息时,使用Hook函数截获视频数据信息;并确定截获的视频数据信息是否为广告视频数据;最后若确定视频数据信息为广告视频数据,则对视频播放进程将要播放的视频数据信息进行拦截。从而实现在广告视频加载播放之前对广告视频进行拦截,提高了拦截视频广告的及时 性。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。