发明内容
本发明要解决的问题是:能够实现对基于P2P技术传输的视频数据进行计费。
为了解决上述问题,本发明的一个实施例提供了一种点对点信息传输方法,包括:
服务端的网关单元将该网关单元中保存的来自于视频源服务器的视频数据拆分成相互关联的关键帧和非关键帧;
所述网关单元接收到来自于第一用户端主机的视频请求消息后,根据该视频请求消息查找所请求的视频数据的非关键帧发送给所述第一用户端主机;
所述网关单元向所述第一用户端主机发送所述视频数据的关键帧,并根据所述关键帧进行计费;
所述第一用户端主机根据接收到的关键帧及非关键帧生成视频数据进行播放。
为了解决上述问题,本发明的另一个实施例提供了一种点对点信息传输系统,包括:视频源服务器、服务端及用户端主机;
所述视频源服务器,用于将视频数据发送给服务端;
所述服务端,包括网关单元,用于将该网关单元中保存的来自于视频源服务器的视频数据拆分成相互关联的关键帧和非关键帧,当接收到来自于用户端主机的视频请求消息后,查找所请求的视频数据的非关键帧发送给该用户端主机,然后发送相应的关键帧,并根据发送的关键帧进行计费;
所述用户端主机,用于根据来自于所述网关单元的关键帧及已保存的非关键帧生成视频数据进行播放。
为了解决上述问题,本发明的又一个实施例提供了一种网关单元,包括:
模块,用于将该网关单元中保存的来自于视频源服务器的视频数据拆分成相互关联的关键帧和非关键帧;
第一模块,用于接收来自于视频源服务器的视频数据及来自于用户端主机的视频请求消息;
第二模块,用于向所述用户端主机发送视频数据的关键帧;
第三模块,根据第一模块接收到的所述视频请求消息查找所请求的视频数据的非关键帧发送给所述用户端主机;
第四模块,根据第二模块发送的所述关键帧进行计费。
通过本发明,基于对关键帧的传输实现了对点对点传输的视频数据进行计费。由于用户端主机只有接收到关键帧之后才能进行视频播放,因此计费过程准确、合理。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
实施例1
本实施例提供了一种点对点信息传输方法,如图1所示,包括:
步骤101,服务端中的网关单元将其保存的视频数据拆分成相互关联的关键帧和非关键帧,并将其中的非关键帧发送给服务端的后台服务单元。
其中,非关键帧是指需要参考关键帧才能生成的数据帧;相应地,关键帧是指可以进行独立解码并且被其他帧参考的帧。例如,在现有视频编解码标准中,主要有三种类型的帧,即I帧、P帧和B帧。I帧就是帧内编码产生的帧,它可以提供随机存取的存取位置;P帧是通过基于I帧进行前向预测而得到的帧,也就是通过帧间编码产生的帧,当前预测得到的P帧又可以作为将来的P帧的参考值;B帧是通过基于I帧、P帧进行双向预测而得到的帧,在预测时需要先前和后续的帧做参考,并且B帧不能作为其他帧的预测参考值。由此可见,I帧可以作为本实施例所述的关键帧,P帧及B帧可以作为本实施例所述的非关键帧。
其中,关键帧和非关键帧之间相互关联是指为上述二者建立关联关系。具体地,可以按照视频数据的播放顺序为关键帧和非关键帧建立序列号,在对视频数据进行播放时,根据该序列号的顺序进行播放。
其中,网关单元中保存的视频数据可以来自于视频源服务器。视频源服务器是指用于保存视频数据的服务器。在开始P2P视频数据传输之前,视频源服务器预先将视频数据发给网关单元。此处需要说明的是,视频源服务器将视频数据发送给网关单元的过程与用户端主机向服务端请求视频数据的过程可以是相互独立的,即两者直接没有必然的逻辑关系;也可以是相互关联的,即只有当存在某个用户端主机请求某个视频数据的时候,视频源服务器才将所述视频数据发送给服务端。
另外需要特别指出的是,将非关键帧发送给后台服务单元是为了减小网关单元的设备负担。如果网关单元有足够的数据处理能力,也可以不将非关键帧发送给后台服务单元也是可以的。
步骤102,当网关单元接收到来自于第一用户端主机的视频请求消息后,根据该视频请求消息查找所请求的视频数据的非关键帧,并将查找到的非关键帧发送给该第一用户端主机。
其中,第一用户端主机即可以是个人电脑,也可以是电视顶盒、智能手机、或智能电视机等终端。具体地,将非关键帧发送给第一用户端主机后,第一用户端主机可以对其进行保存,也可以不保存。如果保存则可以将其做为种子使用;如果不保存则不作种子使用。并且,在传输非关键帧时,既可以采用点对点方式进行传输;也可以不采用点对点方式,而采用现有技术中的其他方式进行传输。
另外,如果非关键帧保存在后台服务单元中,则网关单元可以先向后台服务单元发送命令消息;后台服务单元根据该命令消息在该后台服务单元中查找非关键帧,然后由该后台服务单元将查找到的非关键帧直接发送给该第一用户端主机。
由于非关键帧需要参考关键帧,因此,此时的第一用户端主机仅根据这些非关键帧尚不能进行视频播放。
步骤103,网关单元向该第一用户端主机发送所请求的视频数据的关键帧,并根据发送的关键帧进行计费。
具体地,既可以在非关键帧的发送过程中发送关键帧,也当所有的非关键帧发送完毕后,再开始发送关键帧。后者的好处是使非关键帧的传输过程更加灵活。例如,用户可以在网络空闲时,如在夜里,将所有的非关键帧预先下载保存,当需要播放视频数据时,再开始请求下载关键帧。
其中的计费方式具体可以有多种,例如:可以根据关键帧的数据流量、相应的视频节目的个数、收看时长、请求次数等进行计费。并且计费过程可以实时进行也可以不实时进行,也就是说,既可以在关键帧的传输过程中进行实时计费,当关键帧传输结束后,则结束计费过程;也可以在关键帧传输完成后进行计费。
其中,关键帧始终保存在网关单元中,因此无需到后台服务单元中进行查找。由于关键帧在视频数据中所占比例较小,因此不会对网关单元造成很大的设备负担。
另外需要特别指出的是,为了提高数据传输的安全性,网关单元在发送关键帧之前可以根据与该第一用户端主机预先约定的加密方式对所述视频数据中的关键帧进行加密。具体的加密方式可以有多种,既可以采用对称式的密钥加密方式,也可以采用非对称式的密钥加密方式,如发放数字证书等方式对关键帧进行加密。
步骤104,第一用户端主机接收到来自于网关单元的关键帧后,根据该关键帧及已收到的非关键帧生成视频数据进行播放。
具体地,如果第一用户端主机接收到的关键帧在步骤103中进行了加密处理,则可以根据预先与网关单元约定的加密方式在生成视频数据之前对该关键帧进行解密。
通过本实施例所述方法,基于对关键帧的传输实现了对点对点传输的视频数据进行计费。由于用户端主机只有接收到关键帧之后才能进行视频播放,因此计费过程准确、合理。并且,通过对关键帧的加密还可以提高信息传输的安全性,防止了在传输过程的视频数据被窃取,保护了运营商的利益及推广新业务的积极性。
实施例2
本实施例提供了另一种点对点信息传输方法,如图2所示,包括:
步骤201,在实施例1中,当第一用户端主机开始进行点对点视频数据传输后,如果有第二用户端主机也请求点对点视频数据传输,则向服务端发送视频请求消息。
步骤202,判断当前正在进行点对点视频传输的第一用户端主机所传输的视频数据是否包含有该第二用户端主机所请求的视频数据,是则向第一用户端主机发送命令消息;否则向服务端发送命令消息,请求查询相应的非关键帧。
其中,上述判断过程可以由服务端完成,也可以由第二用户端主机进行。
另外,第一用户端主机所传输的视频数据不一定与第二用户端主机所请求的视频数据严格相同,只要第一用户端主机上有第二用户端主机需要的视频数据,既可以是全部视频数据,也可以是部分视频数据,均可以向第二用户端主机发送其所需的视频数据。
此处需要说明的是,第一用户端主机表示当前正在进行点对点视频传输的所有用户端主机,该第一用户端主机的可以为一个用户端主机,也可能为多个用户端主机。
步骤203,第一用户端主机或服务端接收到上述命令消息后,查询相应的非关键帧发送给第二用户端主机。
步骤204,服务端向第二用户端主机发送相应的关键帧并进行计费;第二用户端主机根据接收到的该关键帧及已收到的非关键帧生成视频数据进行播放,以实现点对点视频数据传输。
具体地,如果第二用户端主机获得的非关键帧来自于第一用户端主机而非服务端,则可以向服务端发送通知消息,通知服务端第二用户端主机获得了哪些非关键帧;服务端可以根据该通知消息查找得到相应的关键帧发送给第二用户端主机。
通过本实施例所述方法,除了具有实施例1所述方法的优点外,由于发出视频请求的第二用户端主机获得的非关键帧可以来自于正在进行点对点视频传输的第一用户端主机,因此,能够充分利用于其他用户端主机的系统资源,并且有利于减小服务端中的网关单元或后台服务单元的工作负担及设备开销。
另外,实施例1、2所述方法的信令图可参见图3。
实施例3
本实施例提供了一种点对点信息传输系统1,如图4所示,包括:服务端3及视频源服务器2。其中,服务端3包括:网关单元10及后台服务单元30。具体地,网关单元10中还包括:第一模块11、第二模块12、第三模块13及第四模块14。以下介绍该点对点信息传输系统1的工作原理:
在开始点对点视频数据传输之前,视频源服务器2预先将视频数据发送给网关单元10。网关单元10中的第一模块11接收到该视频数据后进行保存。具体地,可以保存在该网关单元10中;或者,为了减少网关单元10的设备开销,点对点信息传输系统1中还可以设置后台服务单元30,相应地,网关单元10中还可以设置第五模块15,用于将第一模块11接收到的该视频数据中的非关键帧发送给后台服务单元30进行保存。
当网关单元10中的第一模块11接收到来自于用户端主机40的视频请求消息后,第三模块13根据第一模块11接收到的该视频请求消息查找所请求的视频数据的非关键帧发送给用户端主机40。具体地,如果非关键帧保存在网关单元10中,则第三模块13可以直接在该网关单元中查找非关键帧发送给用户端主机40。如果非关键帧保存在后台服务单元30中,则第三模块13可以先向后台服务单元30发送命令消息;后台服务单元30根据该命令消息在该后台服务单元30中查找非关键帧直接发送给用户端主机40。
另外,如果此时有其他的用户端主机正在进行点对点传输相同的视频数据,则第三模块13还可以向该用户端主机发送命令消息,请求该用户端主机查询相应的非关键帧发送给用户端主机40进行保存。这样可以充分利用于其他用户端主机的系统资源,减小了网关单元或后台服务单元的工作负担及设备开销。
当第三模块13将所有的非关键帧发送完毕后,由第二模块12向用户端主机40发送所请求的视频数据的关键帧;并在关键帧的发送过程中,由第四模块14根据关键帧进行计费。当关键帧传输结束后,则结束计费过程。
另外需要特别指出的是,为了提高数据传输的安全性,在网关单元10中还可以设置第六模块16,用于在第二模块12发送关键帧之前根据与用户端主机40预先约定的加密方式对该关键帧进行加密。
用户端主机40接收到关键帧后,根据该关键帧及已收到的非关键帧生成视频数据进行播放。具体地,如果接收到的关键帧进行了加密处理,则可以根据预先与网关单元10中的第六模块16约定的加密方式在生成视频数据之前对该关键帧进行解密。
另外需要说明的是,根据实际生产或应用的需要,用户端主机40也可以作为点对点信息传输系统1中一个组成部分。
通过本实施例所述系统,基于对关键帧数据流量的统计,实现了对点对点传输的视频数据进行计费。由于用户端主机只有接收到关键帧之后才能进行视频播放,因此计费过程准确、合理。并且,通过对关键帧的加密还可以提高信息传输的安全性,防止了在传输过程的视频数据被窃取,保护了运营商的利益及推广新业务的积极性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。