发明内容
针对相关技术中通过服务器来实现实时通讯的时移功能而导致网络资源及设备的浪费的问题,本发明提供了一种实时视频通讯回放数据流的获取方法、装置及系统,以至少解决上述问题。
根据本发明的一个方面,提供了一种实时视频通讯回放数据流的获取方法,包括:在实时视频通讯过程中,对实时视频通讯终端当前实时输出的音视频码流中的视频码流进行有间隔性的带有关键帧的重新编码;将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中。
优选地,在将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中之后,所述方法还包括:接收回放请求,从请求回放的起始时间点或距离所述起始时间点最近的关键帧开始播放保存的所述音视频码流;或者,将保存的所述音视频码流传输到具有解码能力的播放设备,所述播放设备接收回放请求,从请求回放的起始时间点或距离所述起始时间点最近的关键帧开始播放保存的所述音视频码流。
优选地,接收回放请求,包括:响应寻找回放的时间点的快进或快退播放命令,搜索保存的所述视频码流中与所述快进或快退播放命令对应的关键帧,将搜索到的关键帧解码到播放设备上;接收在快进或快退播放过程中输入的回放请求。
优选地,接收回放请求,包括:接收回放请求,其中,所述回放请求中携带有回放的起始时间点。
优选地,将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中之后,所述方法还包括:播放保存的所述音视频码流,其中,对于所述音视频码流中的音频码流,进行降采样率后播放。
优选地,播放保存的所述音视频码流,还包括:对于所述音视码流中的视频码流,丢弃部分视频帧后播放,使所述视频码流与所述音频码流的播放速率一致。
优选地,重新编码后的所述视频码流包括:多路不同制式编码的视频码流。
优选地,在将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中之前,所述方法还包括:对输出的所述音视频码流中的音频码流进行重新编码。
优选地,对实时视频通讯终端当前实时输出的音视频码流中的视频码流进行有间隔性的带有关键帧的编码时,所述方法还包括:在所述视频码流需要关注的位置设置一个或多个批注信息。
优选地,对实时视频通讯终端当前实时输出的音视频码流中的视频码流进行有间隔性的带有关键帧的编码时,所述方法还包括:在设置所述批注信息的位置的视频帧按照关键帧进行编码。
优选地,在将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中之后,所述方法还包括:接收来自具有解码能力的播放设备的点播请求,将保存的所述音视频码流传输到所述播放设备中播放。
根据本发明的另一个方面,提供了一种实时视频通讯回放数据流的获取装置,包括:编解码模块,用于在实时视频通讯过程中,对实时视频通讯终端当前实时输出的音视频码流中的视频码流重新进行间隔性有关键帧的重新编码;存储模块,用于将经所述编解码模块重新编码后的音视频码流保存到所述实时视频通讯终端的存储设备中。
优选地,所述装置还包括:主控模块,用于接收回放请求,从请求回放的起始时间点或距离所述起始时间点最近的关键帧开始播放保存的所述音视频码流。
优选地,所述主控模块用于响应寻找回放的时间点的快进或快退播放命令,搜索保存的所述视频码流中与所述快进或快退播放命令对应的关键帧,将搜索到的关键帧解码到播放设备上,接收在快进或快退播放过程中输入的回放请求。
优选地,还包括:播放模块,用于播放保存的所述音视频码流,其中,对于保存的所述音视频码流中的音频码流进行降采样率后播放。
优选地,所述播放模块还用于:对于保存的所述音视频码流中的视频码流,丢弃部分视频帧后播放,使所述视频码流与所述音频码流的播放速率一致。
优选地,还包括:传输模块,用于将所述存储模块保存的所述音视频码流传输到具有解码能力的播放设备。
优选地,接收模块,用于接收来自所述播放设备的点播请求,其中,所述点播请求用于请求点播保存的所述音视频码流。
优选地,所述编解码模块还用于对输出的所述音视频码流中的音频码流进行重新编码。
优选地,所述编解码模块还用于在实时视频通讯终端当前实时输出的音视频码流中的所述视频码流需要关注的位置设置一个或多个标志位。
根据本发明的又一个方面,提供了一种实时视频通讯终端,上述的装置。
根据本发明的再一个方面,提供了一种实时视频通讯数据流的点播系统,包括:具有解码功能的播放设备和上述的实时视频通讯终端,其中,所述播放设备用于点播所述实时视频通讯终端中保存的音视频码流,其中,所述音视频码流为所述实时视频通讯终端在实时视频通讯过程中,对当前实时输出的音视频码流中的视频码流进行有间隔性的带有关键帧的编码后保存的音视频码流。
优选地,所述播放设备与所述实时视频通讯终端之间通过本地网络连接。
通过本发明,实时视频通讯终端对当前实时视频通讯中输出的音视频码流进行重新编码,在视频码流中定时加入关键帧,从而可以从实时视频通讯终端侧获取能够回放的视频码流,而无需通过服务器实现实时视频通讯内容的时移,节约了网络资源,降低了成本。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
由于在实时视频通讯中,为了节省宝贵的网络资源,在视频编码过程中除开丢包等关键点时使用关键帧编码,大部分码流使用的是B帧和P帧编码,在只有B帧和P帧解码的时候会出现马赛克,因此这种码流如果直接回放,会出现大量的马赛克,由于图像有马赛克而且没有声音,因此,无法定位应该从哪里开始回放,影响通讯效果。本发明实施例提供的解决方案是:实时视频通讯终端在输出当前实时通讯的音视频码流是,同时对输出的视频码流重新完成定时有关键帧(如I帧)的视频编码(如1秒一个关键帧或者几秒一个关键帧等),将编码后的码流保存在实时视频通讯终端的存储设备中,如SD卡,TF卡,U盘或者硬盘等,从而可以获取能够回放的实时通讯数据流。当用部分人员或全部人员,需要回看之前的通讯的内容的时候,解码原来编码好的定时带有关键帧的视音频码流,并把解码后的视音频数据输出到播放设备中,此播放设备可以是原来的播放设备,也可以是其它的播放设备。在回放的时候,搜索要求回放时间点附近的关键帧,从关键帧开始,由于从关键帧开始回放,从而可以准确定位回放点。
在本发明实施例中,实时视频通讯终端包括手机、会议电视等支持实时音视频通讯的终端。关键帧是指不需要其它参考帧,可以独立解压而没有错误图像的压缩帧,例如,I帧。
实施例一
图3是根据本发明实施例的实时视频通讯回放数据流的获取的结构示意图。如图3所示,本发明实施例的实时视频通讯回放数据流的获取主要包括:编解码模块10,用于在实时视频通讯过程中,对实时视频通讯终端当前实时输出的音视频码流中的视频码流重新进行间隔性有关键帧的重新编码;存储模块20,用于将经所述编解码模块重新编码后的音视频码流保存到所述实时视频通讯终端的存储设备中。
在本实施例中,编解码模块10在完成实时视频通讯终端当前音视频通讯内容的视频码流的解码和合成,以及音频的解码和处理后并准备输出的时候,同时对准备输出的视频进行间隔有关键帧的重新编码,即对视频流中的某些视频帧进行重新编码,编码为关键帧。在本实施例的一个实施方式中,编码制式可以按照要求设定,例如,视频会议使用的是1080p60,而此时视频编码可以是720p60,也可以对准备输出的视频完成两路路或者多路不同制式的编码,以满足不同设备的回放要求。此编码后的音视频码流直接由存储模块20保存在实时视频通讯终端的存取设备中。
在本实施例的一个实施方式中,为了使保存的音视频码流能够进一步满足用户的需求,在存储模块20保存所述音视频码流之前,所述编解码模块10还用于对输出的所述音视频码流中的音频码流进行重新编码。
在本实施例的一个实施方式中,在存储模块20保存编码后的音视频码流之后,用户需要回放实时视频通讯内容时,可以直接在实时视频通讯终端上进行回放。因此,如图4所示,该实施视频通讯终端还可以包括:主控模块30,用于接收输入的回放请求,从请求回放的起始时间点开始播放保存的所述音视频码流。优选地,也可以从距离请求回放的起始时间点最近的关键帧开始播放。
当用户请求回放时,可以通过快进或快退播放的方式寻找合适的回放时间点,在本实施例的一个实施方式中,主控模块30用于响应输入的寻找回放的时间点的快进或快退播放命令,搜索保存的视频码流中与快进或快退播放命令对应的关键帧,将搜索到的关键帧解码到播放设备上,并接收在快进或快退播放过程中输入的回放请求。在该实施方式中,实时视频通讯终端通过快退或快进的模式搜索码流找到合适位置,从这个合适的位置开始解码回放,由于每次搜索的时候解码的都是关键帧,因此搜索过程中没有马赛克,因此,用户可以准确的定位到回放的起始时间点。
在用户请求播放保存的音视频码流时,用户可以选择按照正常速度播放已经发生的通讯的内容,但如果一直如此播放无法在时间上追上正常通讯内容,因此,用户可以选择快进播放,例如,以正常速度的倍数播放已存储的通讯内容,比如2倍数或4倍速播放。在这种情况下,为了让用户听到已存储的通讯内容的声音部分,在本实施例的一个实施方式中,可以将解码后的音频数据降采样率后播放,比如丢弃一半数据或插值获得一半数据,虽然声音有变调,但可以听清楚说话内容。因此,在本实施例的该实施方式中,如图4所示,该装置还可以包括:播放模块40用于播放保存的所述音视频码流,其中,对于保存的音视频码流中的音频流进行降采样率后播放。
同样,视频也可以解码后丢弃帧来实现2倍或4倍数或者非整数倍播放,以保持与音频一致。因此,在本实施例的一个实施方式中,对于保存的音视频码流中的视频码流,所述播放模块40还用于丢弃部分视频帧后播放,使所述视频码流与所述音频码流的播放速率一致。
在本实施例的一个可选实施方式中,编解码模块10还用于在实时视频通讯终端当前实时输出的音视频码流中的所述视频码流需要关注的位置设置一个或多个批注信息。批注信息可以保存在视音频码流文件中,也可以单独放在一个文件中,可以同时设置多个批注信息。例如,可以在会议开始时的视频帧位置设置一个批注信息“会议开始”,在某个发言人开始发言时,在对应的位置设置一个批注信息“XXX开始讲话”。后续在回放或者前进的时候,可以很快通过批注信息找到回看或者需要看的点。在一个可选实施例中,设置批注信息的位置和关键帧的位置是重合。
在本实施例的上述实施方式中,解码功能是在实时视频通讯回放数据流的获取装置本身完成,即回放是在实时视频通讯回放数据流的获取装置实现的,当然也可以在有解码能力的播放设备中完成(如手机,pad等)。也可以是先把码流传输到播放设备中,再回放。因此,在本实施例的一个实施方式中,如图5所示,该实时视频通讯回放数据流的获取装置还可以包括:传输模块50,用于将所述存储模块20保存的所述音视频码流传输到具有解码能力的播放设备。
或者,也可以是具有解码能力的播放设备点播保存的音视频码流,即播放设备向实时视频通讯数据流的获取装置发送点播请求,因此,在本实施例的一个可选实施方式中,如图5所示,该装置还可以包括:接收模块60,用于接收来自具有解码能力的播放设备的点播请求,其中,所述点播请求用于请求点播保存的所述音视频码流。
实施例二
本发明实施例提供了一种实时视频通讯终端,该实时视频通讯终端包括上述实施例一所述的任意一种实施方式的实时视频通讯回放数据流的获取装置,并可以实现上述实施例一所述的任意一种实施方式的实时视频通讯回放数据流的获取装置的功能。
在本实施例的一个可选实施方式中,为了将当前实时通讯的音视频码流以及回放的音视频码流输出,如图6a所示,实时视频通讯终端还可以包括:第一路音视频输出模块60,用于输出当前实时视频通讯的音视频码流;第二路音视频输出模块70,用于输出回放的音视频码流。其中,第二路音视频输出模块70可以是有线的视音频输出接口,也可以是无线的视音频输出接口。
在实际应用中,实时视频通讯终端中可以增加无线WIFI的功能模块来实现传输模块50的功能,以支持WIFI热点,其它无线设备可以通过WIFI下载码流来回放之前的实时视频通讯内容。图6b是本发明实施例的一个可选实施方式中,实时视频通讯终端(即带回放的实时视频通讯终端)的结构示意图,如图6b所示,在该优选实施例中,对现有的实时视频通讯终端的编解码模块和主控模块进行了改进,同时,在实时视频通讯终端中增加了存储模块和WIFI模块。编解码模块除了完成正常的视频编解码外,还需要完成回放视频的编码和解码。并且,实时视频通讯终端必须有存取设备保存编码后的码流,另外,实时视频通讯终端增加一路WIFI模块,从而可以满足无线设备的接入。该实时视频通讯终端可以通过网络与其他的实时视频通讯终端进行实时视频通讯。
在图6b所示的实时视频通讯终端中,对编解码模块和主控模块的改进主要在于:对于本端输出的视频,进行定时有关键帧的视频编码和解码,根据用户输入的时间确定回放的位置,快速回放的时候解码关键帧到显示器上显示。此时可以选择按照正常速度播放旧的内容,但如果一直如此播放无法在时间上追上正常视频通讯内容,因此用户可以选择倍数播放旧内容,比如2倍数或4倍速播放,此时为了让用户听到旧内容声音部分,将解码后的音频数据降采样率后播放,比如丢弃一半数据或插值获得一半数据,虽然声音有变调,但可以听清楚说话内容。同样,视频也可以解码后丢弃帧来实现2倍或4倍数播放,保持与音频一致。
实施例三
根据本发明实施例还提供了一种实时视频通讯数据流的点播系统。
图7是根据本发明实施例的实时视频通讯数据流的点播系统的结构示意图,如图7所示,该系统包括:具有解码功能的播放设备2和实时视频通讯终端4,其中,实时视频通讯终端4可以为上述实施例二中任一可选实施方式的实时视频通讯终端。播放设备2用于点播所述实时视频通讯终端4中保存的音视频码流,其中,所述音视频码流为所述实时视频通讯终端4在实时视频通讯过程中,对当前实时输出的音视频码流中的视频码流进行有间隔性的带有关键帧的编码后保存的音视频码流。
在本实施例的一个优选实施方式中,播放设备2与实时视频通讯终端4之间可以通过本地网络(例如,WIFI等)连接。
在本实施例中,播放设备4可以是手机、平板电脑、个人电脑及手持播放器等。
实施例四
图8是根据本发明实施例四的实时视频通讯回放数据流的获取方法的流程图,如图8所示,该方法主要包括以下步骤S802-S804。
步骤S802,在实时视频通讯过程中,对实时视频通讯终端当前实时输出的音视频码流中的视频码流进行有间隔性的带有关键帧的重新编码。
步骤S804,将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中。
在本实施例中,对当前实时视频通讯中实时视频通讯终端输出的音视频码流进行重新编码,在视频码流中定时加入关键帧,从而可以从实时视频通讯终端侧获取能够回放的视频码流,而无需通过服务器实现实时视频通讯内容的时移,节约了网络资源,降低了成本。
在本实施例的一个实施方式中,为了保证在快进和快退的时候能听清声音,该方法还包括:对实时视频通讯终端输出的所述音视频码流中的音频码流进行重新编码。
在本实施例的一个实施方式中,在将重新编码后的音视频码流保存在所述实时视频通讯终端的存储设备中之后,所述方法还包括:接收用户输入的回放请求,从请求回放的起始时间点开始播放保存的所述音视频码流;或者,所将保存的所述视频码流和音频码流传输到具有解码能力的播放设备,所述播放设备接收用户输入的回放请求,从请求回放的起始时间点开始播放保存的所述视频码流和音频码流。可选地,在回放时也可以从距离请求的起始时间点最近的关键帧开始播放。
在本实施例中,用户可以通过快进或快退播放命令搜索回放的起始时间点,或者,用户也可以直接输入回放的起始时间点。在用户通过快进或快退播放命令寻索回放的起始时间点时,接收用户输入的回放请求包括:响应用户输入的寻找回放的时间点的快进或快退播放命令,搜索保存的所述视频码流中与所述快进或快退播放命令对应的关键帧,将搜索到的关键帧解码到播放设备上;接收用户在快进或快退播放过程中输入的回放请求。由于快进或快退播放时,搜索的是关键帧,不存在马赛克的情况,因此,用户可以准确的定位到需要回放的时间点。
在本实施例的一个可选实施方式中,在将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中之后,解码能力的播放设备还可以点播保存的音视码流,因此,该方法还可以包括:接收来自具有解码能力的播放设备的点播请求,将保存的所述音视频码流传输到所述播放设备中播放。
在用户请求回放时,可以按照正常的速度播放码流,或者,用户也可以情况快进播放,以追上当前的实时视频通讯内容。在本实施例的一个可选实施方式中,在用户请求快速回放时,为了使用户能够获取到足够的讯息,在回放时,对于保存的从所述起始时间点开始的音频码流,解码后,降采样率后播放。更优的,为了使视频播放与音频播放完全一致,所述方法还包括:对于保存的从所述起始时间点或距离所述起始时间点最近的关键帧开始的视频码流,解码后,丢弃部分视频帧后播放,使所述视频码流与所述音频码流的播放速率一致。
在上述实施方式中,所述用户请求回放的播放速率可以是正常播放的整数倍。例如,2倍或4倍。
在本实施例的一个可选实施方式中,在将重新编码后的所述音视频码流保存在所述实时视频通讯终端的存储设备中之后,可以播放保存的音视频码流。优选地,为追上当前的实时视频通讯内容,在播放时,对于所述音视频码流中的音频码流,进行降采样率后播放。
在本实施例的另一个可选实施方式中,为了使视频与音频保持一持,在播放时,对于所述音视码流中的视频码流,丢弃部分视频帧后播放,使所述视频码流与所述音频码流的播放速率一致。
在本实施例的一个实施方式中,为了满足不同设备的回放要求,在对输出的视频码流进行定时有关键帧的编码时,重新编码的所述视频码流可以包括两路或多路不同制式编码的视频码流。
在本实施例的一个实施方式中,在对实时视频通讯终端输出的视频码流进行编码的时候,可以在重要的位置加上批注信息,批注信息可以保存在视音频码流文件中,也可以单独保存在一个文件中,可以同时设置多个批注信息,后续在回放或者前进的时候,可以通过批注快速地找到回看或者需要看的点。在一个可选实施方式中,设置批注信息的位置可以与关键帧的位置是重合。即可以在添加关键帧的某些位置设置批注信息,或者,也可以在某些关键位置设置批注信息,并对设置批注信息的位置的视频帧按照关键帧进行编码,即将设置批注信息处的视频帧编码为关键帧。
实施例五
本实施例结合图6b对实时视频通讯内容的回放流程进行说明。如图9所示,在本实施例中,实时视频通讯内容的回放主要包括以下步骤:
步骤S902,在实时视频通讯过程中,实时视频通讯终端的编解码模块除了完成正常的实时视频通讯的编解码外,同时对准备在本实时视频通讯终端输出的视频进行定时有关键帧的编码,音频保持不变。
步骤S904,实时视频通讯终端将重新编码后的音频及视频码流保存在存储设备中。
步骤S906,用户使用快进或者快退播放寻找回放的起始点,主控模块根据用户需求搜索关键帧,在快进或者快退过程中部分或者全部关键帧直接解码到播放设备上。由于是关键帧解码没有马赛克,因此,用户可以直接根据显示的图像确认从什么时候开始回放。
或者,在本步骤中,用户也可以直接输入时间回放,直接寻找时戳位置,找到回放的位置。
步骤S908,编解码模块对搜索到的码流进行解码。在该步骤中,用户可以选择按照正常速度播放已通讯的内容,但由于一直如此播放无法在时间上追上正常通讯内容,因此用户可以选择倍数播放旧内容,比如2倍数或4倍速播放,此时为了让用户听到旧内容声音部分,可以将解码后的音频数据降采样率后播放,比如丢弃一半数据或插值获得一半数据,虽然声音有变调,但可以听清楚说话内容。同样,视频也可以解码后丢弃帧来实现2倍或4倍数播放,保持与音频一致。然后将处理后的音视频数据送到播放设备中显示,完成回放功能。
上述步骤以在实时视频通讯终端上实现回放为例进行说明,但并不限于此,在实时应用中,其它播放设备如PAD,手机等也可以从实时视频通讯终端中下载码流,在本地解码回放。
从以上的描述中,可以看出,通过本发明实施例的一个或多个实施方式,解决了实时视频通讯终端本身不能回放或者前进看以前视频的问题,在不需要系统参与的情况下,实现了实时视频通讯内容的时移。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。