CN110012251B - 视频录制方法、装置及可读存储介质 - Google Patents
视频录制方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN110012251B CN110012251B CN201810007829.2A CN201810007829A CN110012251B CN 110012251 B CN110012251 B CN 110012251B CN 201810007829 A CN201810007829 A CN 201810007829A CN 110012251 B CN110012251 B CN 110012251B
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- recording
- display time
- starting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种视频录制方法、装置及可读存储介质,涉及多媒体技术领域。该方法包括:接收终端发送的开始录制信令;获取与流标识对应的视频流;根据起始显示时间,从视频数据帧中确定起始视频帧;从起始视频帧开始,将视频数据帧写入录制文件中,所述录制文件用于存储被录制的所述视频流的视频数据帧。通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,并根据起始视频帧确定录制文件,避免了由于数据传输的延时,当录制服务器接收到开始录制信令并从缓存服务器中获取对应的视频流时,会获取到多余的视频数据帧,导致录制文件中包括了不想录制的多余的视频数据帧的问题。
Description
技术领域
本申请实施例涉及多媒体技术领域,特别涉及一种视频录制方法、装置及可读存储介质。
背景技术
直播录制是一种在直播过程中对直播画面进行录制的技术。通常会设置一个直播服务器和一个录制服务器,直播服务器接收用户在直播时生成的视频流,录制服务器从直播服务器拉取视频流生成录制文件。
相关技术中,在用户通过终端进行直播录制时,可以在终端的用户界面上选择“开始录制”按钮,终端将开始录制信令发送至录制服务器。录制服务器接收到开始录制信令后,从直播服务器中拉取视频流并存储至录制文件中,用户需要结束录制时,在用户界面上选择“结束录制”按钮,终端将结束录制信令会发送至录制服务器,录制服务器终止拉取视频流,并停止将视频流中的视频帧写入录制文件中。
在终端将开始录制信令发送至录制服务器,然后录制服务器从直播服务器拉取视频流时,由于直播服务器中缓存的视频流中还可能包括终端发送开始录制信令之前的直播视频帧,这种情况会导致录制服务器生成的录制文件中,包括了用户不想录制的直播视频帧。
发明内容
本申请实施例提供了一种视频录制方法、装置及可读存储介质,可以解决录制文件中包括了不想录制的视频帧的问题。所述技术方案如下:
一方面,提供了一种视频录制方法,所述方法包括:
接收终端发送的开始录制信令,所述开始录制信令中包括流标识和起始显示时间,所述流标识是与待录制的视频流对应的标识;
获取与所述流标识对应的视频流,所述视频流包括至少一个按序排列的视频数据帧;
根据所述起始显示时间,从所述视频数据帧中确定起始视频帧;
从所述起始视频帧开始,将所述视频数据帧写入录制文件中,所述录制文件用于存储被录制的所述视频流的视频数据帧。
另一方面,提供了一种直播录制方法,所述方法包括:
在终端进行直播,并显示直播用户界面;
当所述直播用户界面中显示第一直播视频帧时,接收到在所述直播用户界面上触发的录制启动信号,所述录制启动信号用于对直播生成的直播视频流的直播视频帧进行录制;
获取录制后生成的第一录制文件,所述第一录制文件中的第一帧视频帧为所述第一直播视频帧;或,所述第一录制文件中的第一帧视频帧为第二直播视频帧,所述第二直播视频帧为所述第一直播视频帧的下一帧。
另一方面,提供了一种视频录制方法,所述方法包括:
在终端进行视频聊天,并显示视频用户界面;
当所述视频用户界面中显示第一聊天视频帧时,接收到在所述视频用户界面上触发的录制启动信号,所述录制启动信号用于对视频聊天生成的视频流的聊天视频帧进行录制;
获取录制后生成的第二录制文件,所述第二录制文件中的第一帧视频帧为所述第一聊天视频帧;或,所述第二录制文件中的第一帧视频帧为第二聊天视频帧,所述第二聊天视频帧为所述第一聊天视频帧的下一帧。
另一方面,提供了一种视频录制装置,所述装置包括:
接收模块,用于接收终端发送的开始录制信令,所述开始录制信令中包括流标识和起始显示时间,所述流标识是待录制的视频流对应的标识;
获取模块,用于获取与所述流标识对应的视频流,所述视频流包括至少一个按序排列的视频数据帧;
确定模块,用于根据所述起始显示时间,从所述视频数据帧中确定起始视频帧;
写入模块,用于从所述起始视频帧开始,将所述视频数据帧写入录制文件中,所述录制文件用于存储被录制的所述视频流的视频数据帧。
另一方面,提供了一种录制服务器,所述录制服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例的第一方面及其可选的实施例中任一所述的视频录制方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请第一方面及其可选的实施例中任一所述的视频录制方法。
另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述本申请第一方面及其可选的实施例中任一所述的视频录制方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,并根据起始视频帧确定录制文件,避免了由于数据传输的延时,缓存服务器中需要对视频流中一定数量的视频数据帧进行缓存,当录制服务器接收到开始录制信令并从缓存服务器中获取对应的视频流时,会获取到多余的视频数据帧,导致录制文件中包括了不想录制的多余的视频数据帧的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请一个示例性的实施例提供的视频录制方法的实施环境示意图;
图1B是本申请另一个示例性的实施例提供的视频录制方法的实施环境示意图;
图2是本申请一个示例性的实施例提供的视频录制方法的流程图;
图3是本申请另一个示例性的实施例提供的视频录制方法的流程图;
图4A是本申请另一个示例性的实施例提供的视频录制方法的流程图;
图4B是本申请一个示例性的实施例提供的终端的直播用户界面的示意图;
图4C是本申请另一个示例性的实施例提供的视频录制方法的流程图;
图4D是本申请一个示例性的实施例提供的终端的视频用户界面的示意图;
图5A是本申请一个示例性的实施例提供的视频录制方法的原理示意图;
图5B是本申请一个示例性的实施例提供的视频录制方法的原理示意图;
图6是本申请一个示例性的实施例提供的视频录制装置的结构框图;
图7是本申请一个示例性的实施例提供的直播录制装置的结构框图;
图8是本申请一个示例性的实施例提供的视频录制装置的结构框图;
图9是本申请一个示例性的实施例提供的录制服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的以下名词进行解释:
流标识:流标识是与视频流对应的标识。直播服务器或录制服务器中存在多个视频流,每个视频流对应各自的流标识。也即,一段视频流对应一个流标识,如:终端生成一段直播视频流,该直播视频流对应一个流标识。
视频数据帧:视频数据帧为视频流中的图像帧,可选地,该视频流包括若干个依序排列的视频画面组(英文:group of pictures,GOP),该视频画面组中包括若干个依序排列的视频数据帧。可选地,每个视频数据帧可以是关键帧、前向预测编码帧或者双向预测内插编码帧。
音频数据帧:音频数据帧为与视频数据帧对应的数据帧。
显示时间:每个视频数据帧具有各自的显示时间。显示时间为当前视频帧与视频流的第一帧之间的时间偏移量,视频流的第一帧的显示时间可以是预设的,也可以是终端随机生成的。比如,视频流的第一帧的显示时间为0毫秒(millisecond,ms),第二帧的显示时间为30ms,第三帧的显示时间为60ms,以此类推;又比如:视频流的第一个视频帧的显示时间为20ms,第二帧的显示时间为30ms,第三帧的显示时间为60ms,以此类推。
起始显示时间:起始显示时间是指终端接收到录制启动信号时,终端的用户界面中显示的当前视频帧的显示时间,如:终端在显示视频帧A时接收到录制启动信号,该视频帧A与视频流中的第一帧之间的偏移量为20ms,也即视频帧A的显示时间为20ms,则该起始显示时间为20ms。
起始视频帧:起始视频帧是指在视频流中,录制服务器根据开始录制指令获取与起始显示时间对应的视频帧。
视频画面组:视频画面组为一组连续的视频数据帧,通常,该视频画面组的第一帧为关键帧,第一帧之后的帧可以是前向预测编码帧,也可以是双向预测内插编码帧。
关键帧(I帧):关键帧又称帧内编码帧,是指不需要参考其他帧便可以进行解码的帧,即可以直接解码得到图像数据。
前向预测编码帧(P帧):P帧为解码时需要参考前一帧解码得到图像数据的视频帧。
双向预测内插编码帧(B帧):B帧为解码时需要参考前一帧以及后一帧的视频帧。
下面,结合上述本申请实施例中涉及的名词对本申请实施例进行说明,首先,请参考图1A,图1A是本申请一个示例性的实施例提供的视频录制方法的实施环境示意图,如图1A所示,结合上述实施环境示意图,对本申请中的实施环境以直播场景为例进行说明:
该视频录制方法的实施环境包括:终端11、缓存服务器12、录制服务器13以及观看终端14,该视频录制方法通常应用于由终端11拍摄视频进行直播的场景中;
可选地,终端11包括摄像头,该终端11通过摄像头对图像数据进行采集,并对图像数据进行压缩并编码,生成直播视频流进行直播,终端11将采集到的图像数据进行压缩并编码后,以直播视频帧的形式发送至缓存服务器12,可选地,该终端11将视频画面组中的视频数据帧发送至缓存服务器。
可选地,终端11与缓存服务器12通过通信网络进行连接,该通信网络可以是有线网络也可以是无线网络。
缓存服务器12用于缓存终端11发送视频数据帧,可选地,缓存服务器以若干个依序排列的视频画面组的形式将视频数据帧进行缓存。可选地,该缓存服务器12还用于将接收到的视频画面组转发至观看终端,观看终端对终端11拍摄的视频进行观看。缓存服务器12也可称为直播服务器。
该录制服务器13用于对终端11生成的直播视频进行录制,并生成录制文件。可选地,终端11将开始录制信令发送至录制服务器13,录制服务器13可以根据开始录制信令从缓存服务器12获取视频流的视频数据帧。
可选地,终端11将直播视频流通过通信网络发送至观看终端14,该观看终端14对接收到的直播视频流进行观看,可选地,观看终端14通过缓存服务器12接收终端11发送的直播视频流,可选地,该观看终端14包括观看终端141、观看终端142、观看终端143以及观看终端144。
图1B是本申请一个示例性的实施例提供的视频录制方法的实施环境示意图,如图1B所示,结合上述实施环境示意图,对本申请中的实施环境以视频聊天场景或视频交流场景为例进行说明:该视频录制方法的实施环境包括:终端11、缓存服务器12、录制服务器13以及终端15,该视频录制方法通常应用于由终端11和终端15进行视频聊天的场景中;
可选地终端11包括摄像头,该终端11通过摄像头对图像数据进行采集,并进行压缩并编码,生成视频流,可选地,终端14也包括摄像头,终端11将视频流通过通信网络发送至终端14,终端14将采集到的图像数据进行压缩并编码,并以视频流的形式通过通信网络发送至终端11,且,可选地,终端11和终端14将摄像头采集到的图像数据进行压缩编码生成视频流后,以视频数据帧的形式发送至缓存服务器12。
可选地,终端11与缓存服务器12通过通信网络进行连接,终端14与缓存服务器12通过通信网络进行连接,该通信网络可以是有线网络也可以是无线网络。
缓存服务器12用于缓存终端11发送的图像帧,以及终端14发送的图像帧,可选地,该缓存服务器12还用于将接收到的终端11发送的以及终端14发送的图像帧进行结合,如:将终端14发送的图像帧以小窗口的形式叠加显示在终端11发送的图像帧上,并得到若干个依序排列的视频画面组,视频画面组中包括若干个叠加得到的视频数据帧。在该应用场景中,缓存服务器12也可称为视频服务器。
该录制服务器13用于对终端11和终端15视频聊天过程中生成的聊天视频进行录制,并生成录制文件。可选地,终端11将开始录制信令发送至录制服务器13,录制服务器13可以根据开始录制信令从缓存服务器12获取对应的视频画面组。
可选地,当视频聊天场景为多人视频场景时,该终端15还包括终端151、终端152、终端153以及终端154,对于终端11和终端15中的任一终端,需要接收其他终端发送的视频流,如:终端11需要接收终端151、终端152、终端153以及终端154发送的视频流。可选地,当视频聊天场景为多人视频场景时,缓存服务器可以将每个终端发送的视频流的视频帧并列显示以及存储为视频数据帧。
结合上述图1A及图1B所述的视频录制方法的实施环境,对本申请提供的视频录制方法进行说明,以该方法应用在如图1A及图1B所示的录制服务器13中为例,如图2所示,该视频录制方法包括:
步骤201,接收终端发送的开始录制信令。
可选地,该开始录制信令中包括流标识和起始显示时间,该流标识为与待录制的视频流对应的标识。
可选地,起始显示时间是指终端接收到录制启动信号时,终端的用户界面中显示的当前视频帧对应的显示时间。
步骤202,获取与流标识对应的视频流。
该视频流中包括至少一个按序排列的视频数据帧。
可选地,录制服务器向缓存服务器发送一个视频流获取请求,该获取请求中包括视频流对应的流标识,从而从缓存服务器中拉取与流标识对应的视频流,且,录制服务器按序获取视频流,即从显示时间最小的视频帧开始进行拉取。
步骤203,根据起始显示时间,从视频数据帧中确定起始视频帧。
可选地,将视频数据帧中,显示时间与该起始显示时间相同的视频帧确定为起始视频帧,或者,该起始视频帧还可以是视频数据帧中,显示时间在该起始显示时间之后的第一帧。
步骤204,从起始视频帧开始,将视频数据帧写入录制文件中。
该录制文件用于存储被录制的视频流的视频数据帧。可选地,该录制文件中写入的视频数据帧包括:从起始视频帧开始的多个视频数据帧。
可选地,在录制服务器将视频数据帧写入录制文件之后,录制服务器可以在获取到与该视频流对应的所有视频数据帧之后,结束获取视频数据帧,并生成录制文件;录制服务器也可以在录制过程中根据接收到的结束录制信令停止获取视频数据帧,以及停止将视频数据帧写入录制文件,并生成该录制文件。
综上所述,本实施例提供的视频录制方法,通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,并根据起始视频帧确定录制文件,避免了由于数据传输的延时,缓存服务器中需要对视频流中一定数量的视频数据帧进行缓存,当录制服务器接收到开始录制信令并从缓存服务器中获取对应的视频流时,会获取到多余的视频数据帧,导致录制文件中包括了不想录制的多余的视频数据帧的问题。
图3是本申请另一个示例性的实施例提供的视频录制方法的流程图,以该视频录制方法应用在如图1A及图1B所示的实施环境中为例进行说明,如图3所示,该视频录制方法包括:
步骤301,终端接收在用户界面上触发的录制启动信号。
可选地,该终端在屏幕上显示有用户界面,当用户界面中显示第一视频帧时,接收到在用户界面上触发的录制启动信号,该录制启动信号用于对第一视频帧对应的视频流进行录制;
步骤302,终端向录制服务器发送开始录制信令。
可选地,终端根据接收到的录制启动信号,获取与该录制启动信号对应的视频流的流标识,以及接收到该录制启动信号时,终端的用户界面上显示的当前视频数据帧的起始显示时间,并根据上述流标识和起始显示时间生成开始录制信令,并向录制服务器发送该开始录制信令。
步骤303,录制服务器接收到终端发送的开始录制信令。
可选地,该开始录制信令中包括流标识和起始显示时间,该流标识为待录制的视频流对应的标识。
可选地,起始显示时间是指终端接收到录制启动信号时,用户界面中显示的当前视频帧对应的显示时间。
步骤304,录制服务器从缓存服务器获取与流标识对应的视频流。
可选地,缓存服务器中缓存有与该流标识对应的视频流。
可选地,录制服务器向缓存服务器发送一个视频流获取请求,该获取请求中包括视频流对应的流标识,从而从缓存服务器中拉取与流标识对应的视频流,且,录制服务器按序获取视频流,即从显示时间最小的视频帧开始进行拉取。
步骤305,录制服务器在视频画面组中,将显示时间与起始显示时间相同的视频数据帧确定为起始视频帧。
可选地,上述视频流中包括若干个依序排列的视频画面组,该视频画面组中包括若干个依序排列的视频数据帧。
可选地,录制服务器依次获取视频画面组中的视频数据帧的显示时间,且,该录制服务器可以依次获取每一个视频数据帧的显示时间,也可以每隔预设帧数获取视频数据帧的显示时间,其中,视频数据帧的显示时间存储于视频数据帧的头数据中。
当录制服务器在视频画面组中获取到的视频数据帧的显示时间与起始显示时间相同时,则将该显示时间与起始显示时间相同的视频数据帧确定为起始视频帧。
可选地,当录制服务器每隔预设帧数获取视频数据帧的显示时间时,若未获取到显示时间与起始显示时间相同的视频数据帧便直接获取到显示时间在起始显示时间之后的第一帧视频数据帧时,即执行步骤306。
步骤306,录制服务器在视频画面组中,将显示时间位于起始显示时间之后的第一帧视频数据帧确定为起始视频帧。
可选地,录制服务器可以每隔预设帧数对视频数据帧的显示时间进行获取。
可选地,当视频数据帧中不包括显示时间与起始显示时间相同的视频数据帧时,将显示时间位于起始显示时间之后的第一帧视频数据帧,确定为起始视频帧。
示意性的,起始显示时间为00:00:22,录制服务器获取的视频数据帧的显示时间依次为00:00:15,00:00:18,00:00:21以及00:00:24,即00:00:24为起始显示时间之后的第一帧视频数据帧对应的显示时间,则将该视频数据帧确定为起始视频帧。
示意性的,若录制服务器获取的显示时间在起始显示时间之前,便继续获取下一个显示时间,若录制服务器获取的显示时间在起始显示时间之后,便将第一个在起始显示时间之后的显示时间对应的视频数据帧确定为起始视频帧。
可选地,录制服务器在确定起始视频帧后,无需继续获取起始视频帧之后的视频数据帧的显示时间。
可选地,视频数据帧的显示时间存储在视频数据帧的头数据中。
步骤307,当起始视频帧不是关键帧时,解码得到与起始视频帧对应的图像数据。
可选地,该起始视频帧可以是前向预测编码帧,也可以是双向预测内插编码帧。
可选地,当该起始视频帧为P帧时,参考该起始视频帧的前一帧解码得到图像数据的视频数据帧,并对该起始视频帧进行解码得到图像数据;当该起始视频帧为B帧时,参考该起始视频帧的前一帧解码得到图像数据的视频数据帧以及后一帧解码得到图像数据的视频数据帧,对该起始视频帧进行解码得到图像数据。
步骤308,录制服务器对图像数据进行编码,得到起始关键帧。
可选地,录制服务器将该图像数据编码为起始关键帧,也即I帧,即可以无需参考其他帧便进行解码的图像帧。
可选地,当该起始视频帧是关键帧时,直接从该起始视频帧开始,将视频数据帧写入录制文件中,即执行步骤309。
步骤309,录制服务器从起始关键帧开始,将视频数据帧写入录制文件中。
可选地,录制服务器从该起始关键帧开始,将起始关键帧之后,下一帧关键帧之前的非关键帧进行解码及编码,并写入录制文件中。
该录制文件用于存储被录制的视频流的视频数据帧。可选地,该录制文件中写入的视频数据帧包括:从该起始关键帧开始的多个视频数据帧。
可选地,在录制服务器将起始关键帧开始的多个视频数据帧写入录制文件之后,录制服务器可以在获取到与该视频流对应的所有视频数据帧之后,结束获取视频数据帧,并生成录制文件;录制服务器也可以在录制过程中根据接收到的结束录制信令停止获取视频数据帧,以及停止将视频数据帧写入录制文件,并生成该录制文件。
步骤310,终端获取录制后生成的录制文件。
可选地,终端可以获取录制后生成的录制文件,并对录制文件进行播放。
综上所述,本实施例提供的视频录制方法,通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,并根据起始视频帧确定录制文件,避免了由于数据传输的延时,缓存服务器中需要对视频流中一定数量的视频数据帧进行缓存,当录制服务器接收到开始录制信令并从缓存服务器中获取对应的视频流时,会获取到多余的视频数据帧,导致录制文件中包括了不想录制的多余的视频数据帧的问题。
本实施例提供的视频录制方法,通过将显示时间与起始显示时间相同的视频数据帧确定为起始视频帧,确保了录制文件中的第一帧,为终端接收到录制启动信号时正在终端进行显示的视频数据帧;通过将显示时间在起始显示时间之后的第一帧视频数据帧确定为起始视频帧,确保了录制文件中的第一帧,在终端接收到录制启动信号时正在终端进行显示的视频数据帧之后,即录制文件中不会有多余的视频数据帧。
本实施例提供的视频录制方法,当起始视频帧不是关键帧时,通过将起始视频帧进行解码,并重新编码得到起始关键帧,避免了录制文件中的第一帧只能是I帧而不能是P帧或者B帧时,起始视频帧为P帧或者B帧,录制文件中的第一帧为上述P帧或者B帧对应的I帧,而导致录制文件中包括多余的视频数据帧的问题。
图4A是本申请另一个示例性的实施例提供的视频录制方法流程图,以该视频录制方法应用在如图1A所示的实施环境中,以及应用场景为直播应用场景为例进行说明,如图4A所示,该视频录制方法包括:
步骤401,显示直播用户界面。
可选地,该终端上显示有直播用户界面,该直播用户界面是终端在直播的过程中显示的用户界面,可选地,该直播用户界面是通过回显功能进行显示的用户界面。其中,回显功能即为摄像头采集图像数据后,对图像数据进行压缩编码,得到视频流,并在直播用户界面上显示该视频流的功能。
步骤402,终端将视频流发送至缓存服务器。
可选地,终端将摄像头采集得到的图像数据压缩编码为视频流后发送至缓存服务器,其中,终端发送的视频流还包括:流标识。
步骤403,缓存服务器将视频流进行缓存。
可选地,在直播场景中,缓存服务器将接收到的视频流进行缓存,可选地,缓存服务器将该视频流以若干个依序排列的视频画面组的形式进行缓存,且,缓存服务器中仅缓存预设时间长度内的视频画面组,也即,该缓存服务器仅缓存预设数量的视频画面组,而该视频画面组的数量可以是预先设定的,如:缓存服务器被设定为缓存5个视频画面组,则缓存服务器中依次缓存视频流的第1至5个视频画面组,当缓存服务器接收到视频流的第6个视频画面组时,便将第1个视频画面组丢弃,并将第6个视频画面组存储在第5个视频画面组之后。
步骤404,终端接收在直播用户界面上触发的录制启动信号。
可选地,当直播用户界面中显示第一直播视频帧时,接收到在直播用户界面上触发的录制启动信号,该录制启动信号用于对直播生成的直播视频流的直播视频帧进行录制;
步骤405,终端向录制服务器发送开始录制信令。
可选地,终端根据接收到的录制启动信号,获取与该录制启动信号对应的视频流的流标识,以及接收到该录制启动信号时,终端的用户界面上显示的当前视频数据帧的起始显示时间,并根据上述流标识和起始显示时间生成开始录制信令,并向录制服务器发送该开始录制信令。
示意性的,结合图4B对上述步骤401至步骤405进行说明,如图4B所示,终端显示直播用户界面41,该直播用户界面41中包括直播过程中终端拍摄的画面,终端将直播的视频流发送至缓存服务器,缓存服务器将视频流进行缓存。终端接收到在直播用户界面41上触发的录制启动信号,如图4B所示,用户在直播至00:00:35时,在直播用户界面41中点击开始录制,终端将根据录制启动信号将开始录制信令发送至录制服务器,该开始录制信令中包括00:00:35时,直播用户界面41中显示的直播视频帧的显示时间,也即起始显示时间。
步骤406,录制服务器接收到终端发送的开始录制信令。
可选地,该开始录制信令中包括流标识和起始显示时间,该流标识为待录制的视频流对应的标识。
可选地,起始显示时间是指终端接收到录制启动信号时,用户界面中显示的当前视频帧的显示时间。
步骤407,录制服务器获取与流标识对应的视频流。
可选地,录制服务器根据流标识从缓存服务器中拉取与流标识对应的视频流。
在一个可选的实施例中,图1A及图1B所示的实施环境中还设置有地址服务器,该地址服务器用于存储流标识以及与流标识对应的缓存服务器的地址,可选地,当终端通过摄像头采集图像数据并生成视频流后,首先将该视频流的流标识以及对应的缓存服务器的地址发送至地址服务器。
可选地,录制服务器首先根据流标识从地址服务器中查询与该流标识对应的缓存服务器的地址,并根据该地址从缓存服务器中拉取与流标识对应的视频流。
可选地,缓存服务器中存储有与该流标识对应的视频流,可选地,该缓存服务器中缓存的视频流为终端发送至该缓存服务器的。
可选地,录制服务器依次获取该视频流的视频数据帧。
步骤408,录制服务器在视频画面组中,将显示时间与起始显示时间相同的视频数据帧确定为起始视频帧。
可选地,上述视频流中包括若干个依序排列的视频画面组,该视频画面组中包括若干个依序排列的视频数据帧。
可选地,录制服务器依次获取视频画面组中的视频数据帧的显示时间,且,该录制服务器可以依次获取每一个视频数据帧的显示时间,也可以每隔预设帧数获取视频数据帧的显示时间。
当录制服务器在视频画面组中获取到的视频数据帧的显示时间与起始显示时间相同时,则将该显示时间与起始显示时间相同的视频数据帧确定为起始视频帧。
可选地,当录制服务器每隔预设帧数获取视频数据帧的显示时间时,若未获取到显示时间与起始显示时间相同的视频数据帧便直接获取到显示时间在起始显示时间之后的第一帧视频数据帧时,即执行步骤409。
值得注意的是,开始录制信令达到录制服务器的时间通常在起始显示时间对应的视频数据帧到达缓存服务器的时间之前,原因如下:
第一、开始录制信令的数据较小,通常小于1千字节(kilobytes,KB),而视频流的数据较大,通常大于300千字节每秒(kilobytes per second,Kbps),所以发送开始录制信令的耗时较小;
第二、缓存服务器中对视频数据帧进行缓存,并按序等待出列,所以通常录制服务器在接收到开始录制信令时,从缓存服务器拉取的视频数据帧为开始显示时间之前的视频数据帧。
第三、开始录制信令经过的节点数通常较少,可以直接从终端发送至录制服务器,而视频数据帧首先需要缓存至缓存服务器。
第四、录制服务器可以增加缓存,即可以对拉取的视频数据帧进行缓存,确定起始视频帧后再将缓存的视频数据帧进行删除。
步骤409,录制服务器在视频画面组中,将显示时间位于起始显示时间之后的第一帧视频帧确定为起始视频帧。
可选地,录制服务器每隔预设帧数获取视频数据帧的显示时间。
可选地,当视频数据帧中不包括显示时间与起始显示时间相同的视频数据帧时,将显示时间位于起始显示时间之后的第一帧视频数据帧,确定为起始视频帧。
示意性的,起始显示时间为00:00:20,录制服务器获取的视频数据帧的显示时间依次为00:00:15,00:00:17,00:00:19以及00:00:21,即00:00:21为起始显示时间之后的第一帧视频数据帧对应的显示时间,则将该视频数据帧确定为起始视频帧。
示意性的,若录制服务器获取的显示时间在起始显示时间之前,便继续获取下一个显示时间,若录制服务器获取的显示时间在起始显示时间之后,便将第一个在起始显示时间之后的显示时间对应的视频数据帧确定为起始视频帧。
可选地,录制服务器在确定起始视频帧后,无需继续获取起始视频帧之后的视频数据帧的显示时间,直至录制服务器接收到终端发送的结束录制信令。
可选地,视频数据帧的显示时间存储在视频数据帧的头数据中。
步骤410,当起始视频帧不是关键帧时,解码得到与起始视频帧对应的图像数据。
可选地,该起始视频帧可以是前向预测编码帧,也可以是双向预测内插编码帧。
可选地,当该起始视频帧为P帧时,参考该起始视频帧的前一帧解码得到图像数据的视频数据帧,并对该起始视频帧进行解码得到图像数据;当该起始视频帧为B帧时,参考该起始视频帧的前一帧解码得到图像数据的视频数据帧以及后一帧解码得到图像数据的视频数据帧,对该起始视频帧进行解码得到图像数据。
步骤411,录制服务器对图像数据进行编码,得到起始关键帧。
可选地,录制服务器将该图像数据编码为起始关键帧,也即I帧,即可以无需参考其他帧便进行解码的图像帧。
可选地,当该起始视频帧是关键帧时,直接从该起始视频帧开始,将视频数据帧写入录制文件中,即执行步骤309。
步骤412,从起始关键帧开始,录制服务器将视频数据帧写入录制文件中。
可选地,录制服务器从该起始关键帧开始,将起始关键帧之后,下一帧关键帧之前的非关键帧进行解码及编码,并写入录制文件中。
该录制文件用于存储被录制的视频流的视频数据帧。可选地,该录制文件中写入的视频数据帧包括:从该起始关键帧开始的多个视频数据帧。
可选地,录制服务器中还包括缓存池,录制服务器可以先将起始关键帧开始的视频数据帧写入缓存池中,再从缓存池写入录制文件,其中,缓存池用于缓存预设数量的视频数据帧。
示意性的,缓存池中可以缓存192帧视频数据帧,从起始关键帧开始将视频数据帧写入缓存池中,直至写满192帧时,将起始关键帧开始的视频数据帧依次从缓存池中读出,并写入录制文件,同时,缓存池中继续读取192帧之后的视频数据帧。
步骤413,终端接收在直播用户界面上触发的录制停止信号。
可选地,该录制停止信号用于指示终端,停止对视频流的录制。
结合图4B,用户可以在直播用户界面42中选择结束录制触发录制停止信号,此时,直播录制停止,直播继续;用户也可以在直播用户界面42中选择退出直播触发录制停止信号,此时,直播录制停止,且直播也停止。
步骤414,终端向录制服务器发送结束录制信令。
步骤415,录制服务器接收终端发送的结束录制信令。
可选地,该结束录制信令中包括结束显示时间,该结束显示时间为终端接收到录制停止信号时,在用户界面上显示的当前视频帧的显示时间。
步骤416,录制服务器根据结束显示时间,从视频数据帧中确定结束视频帧。
可选地,该视频流包括若干个依序排列的视频画面组,该视频画面组中包括若干个依序排列的视频数据帧,录制服务器在接收到结束录制信令后,对每个视频数据帧的显示时间进行查看。
可选地,录制服务器在视频画面组中,将显示时间与结束显示时间相同的视频数据帧确定为结束视频帧,或者,录制服务器在视频画面组中,将显示时间位于起始显示时间之前的最后一帧视频数据帧确定为结束视频帧。
可选地,当与结束显示时间对应的视频帧为双向预测内插编码帧,且视频帧的下一帧不是双向预测内插编码帧时,将该视频帧的下一帧,确定为结束视频帧。
步骤417,生成录制文件。
可选地,录制文件中的最后一帧视频数据帧即为上述结束视频帧。
可选地,视频画面组中还包括音频数据帧,且在视频画面组中的数据帧为视频数据帧与音频数据帧交叉排列,如:每2帧视频数据帧后跟有一帧与视频数据帧的显示时间对应的音频数据帧,可选地,从起始视频帧开始将视频数据帧写入录制文件中之后,还需要同时从与起始显示时间对应的音频数据帧开始,将音频数据帧写入录制文件中,并丢弃与结束显示时间对应的音频数据帧之后的音频数据帧。
值得注意的是,视频数据帧与音频数据帧的写入往往是交叉进行的,即按照视频画面组中视频数据帧与音频数据帧的排列顺序,如:将视频数据帧写入后,将与视频数据帧的显示时间对应的音频数据帧写入,再写入下一个视频数据帧。
步骤418,终端获取录制后生成的第一录制文件。
可选地,该第一录制文件中的第一帧视频帧为第一直播视频帧,或者,该第一录制文件中的第一帧视频帧为第二直播视频帧,该第二直播视频帧为第一直播视频帧的下一帧,可选地,该第二直播视频帧为第一直播视频帧之后的视频数据帧;
值得注意的是,本实施例提供的视频录制方法中,以获取视频数据帧的显示时间,并通过起始显示时间确定起始视频帧为例进行说明,在一个可选的实施例中,还可以将本实施例中的显示时间替换实现为解码时间,该解码时间为视频数据帧被解码的时间。
综上所述,本实施例提供的视频录制方法,通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,并根据起始视频帧确定录制文件,避免了由于数据传输的延时,缓存服务器中需要对视频流中一定数量的视频数据帧进行缓存,当录制服务器接收到开始录制信令并从缓存服务器中获取对应的视频流时,会获取到多余的视频数据帧,导致录制文件中包括了不想录制的多余的视频数据帧的问题。
本实施例提供的视频录制方法,通过将显示时间与起始显示时间相同的视频数据帧确定为起始视频帧,确保了录制文件中的第一帧,为终端接收到录制启动信号时正在终端进行显示的视频数据帧;通过将显示时间在起始显示时间之后的第一帧视频数据帧确定为起始视频帧,确保了录制文件中的第一帧,在终端接收到录制启动信号时正在终端进行显示的视频数据帧之后,即录制文件中不会有多余的视频数据帧。
本实施例提供的视频录制方法,当起始视频帧不是关键帧时,通过将起始视频帧进行解码,并重新编码得到起始关键帧,避免了录制文件中的第一帧只能是I帧而不能是P帧或者B帧时,起始视频帧为P帧或者B帧,录制文件中的第一帧为上述P帧或者B帧对应的I帧,而导致录制文件中包括多余的视频数据帧的问题。
本实施例提供的视频录制方法,通过在结束录制信令中增加结束显示时间,录制服务器可以根据该结束显示时间确定视频数据帧中的结束视频帧,避免了由于数据传输的延时,录制文件中包括用户不想录制的多余的视频数据帧的问题。
在一个可选的实施例中,上述步骤401至步骤404可以替代实现为步骤401a至步骤404a,步骤418可以替换实现为步骤418a,以该视频录制方法应用在如图1B所示的实施环境中,且应用场景为视频聊天场景为例进行说明,如图4C所示,该视频录制方法包括:
步骤401a,显示视频用户界面。
可选地,第一终端上显示有视频用户界面,该视频用户界面是通过回显功能进行显示的用户界面。其中,回显功能即为摄像头采集图像数据后,对图像数据进行压缩编码,得到视频流,并在直播用户界面上显示该视频流的功能。
步骤402a,第一终端将视频流发送至缓存服务器。
可选地,第一终端将摄像头采集得到的图像数据进行压缩编码,得到视频流,并将该视频流发送至缓存服务器,其中,终端发送的视频流还包括:流标识。
步骤403a,缓存服务器将视频流进行缓存。
可选地,在视频聊天场景中,缓存服务器接收到第一终端发送的视频流以及第二终端发送的视频流,第一终端和第二终端是进行视频聊天的两个终端,缓存服务器将接收到的两端视频流进行结合,并将结合得到的视频流进行缓存,可选地,该结合得到的视频流包括若干个依序排列的视频画面组,且视频画面组的缓存形式与步骤403中所述的视频画面组的缓存形式相同。
可选地,上述将第一终端的视频流和第二终端的视频流进行结合的方式可以是:将第二终端的视频流中的图像帧以小窗口的形式叠加显示在第一终端的视频流的图像帧之上。
步骤404a,第一终端接收在视频用户界面上触发的录制启动信号。
可选地,当视频用户界面中显示第一聊天视频帧时,接收到在视频用户界面上触发的录制启动信号,该录制启动信号用于对视频聊天生成的视频流的聊天视频帧进行录制。
步骤405,终端向录制服务器发送开始录制信令。
示意性的,结合图4D对上述步骤401a至步骤405进行说明,如图4D所示,终端显示视频用户界面43,该视频用户界面43中包括视频聊天过程中终端通过摄像头采集的画面,终端将视频聊天的视频流发送至缓存服务器,缓存服务器将视频流进行缓存。终端接收到在视频用户界面43上触发的录制启动信号,如图4D所示,用户在视频至00:00:35时,在视频用户界面43中点击开始录制,终端将根据录制启动信号将开始录制信令发送至录制服务器,该开始录制信令中包括00:00:35时,视频用户界面43中显示的聊天视频帧的显示时间,也即起始显示时间。
步骤406,录制服务器接收到终端发送的开始录制信令。
步骤407,录制服务器获取与流标识对应的视频流。
步骤408,录制服务器在视频画面组中,将显示时间与起始显示时间相同的视频数据帧确定为起始视频帧。
步骤409,录制服务器在视频画面组中,将显示时间位于起始显示时间之后的第一帧视频帧确定为起始视频帧。
步骤410,当起始视频帧不是关键帧时,解码得到与起始视频帧对应的图像数据。
步骤411,录制服务器对图像数据进行编码,得到起始关键帧。
步骤412,从起始关键帧开始,录制服务器将视频数据帧写入录制文件中。
步骤413a,终端接收在视频用户界面上触发的录制停止信号。
可选地,该录制停止信号用于指示第一终端停止对视频流的录制。
结合图4D,用户可以在视频用户界面44中选择结束录制,从而触发录制停止信号,此时,视频录制停止,视频继续;用户也可以在视频用户界面44中选择退出视频,从而触发录制停止信号,此时,视频录制停止,且视频也结束。
步骤414,终端向录制服务器发送结束录制信令。
步骤415,录制服务器接收终端发送的结束录制信令。
步骤416,录制服务器根据结束显示时间,从视频数据帧中确定结束视频帧。
步骤417,生成录制文件。
步骤418a,终端获取录制后生成的第二录制文件。
可选地,该第二录制文件中的第一帧视频帧为第一聊天视频帧,或者,该第二录制文件中的第一帧视频帧为第二聊天视频帧,该第二聊天视频帧为第一直聊天视频帧的下一帧,可选地,该第二聊天视频帧为第一聊天视频帧之后的视频数据帧。
综上所述,本实施例提供的视频录制方法,通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,并根据起始视频帧确定录制文件,避免了由于数据传输的延时,缓存服务器中需要对视频流中一定数量的视频数据帧进行缓存,当录制服务器接收到开始录制信令并从缓存服务器中获取对应的视频流时,会获取到多余的视频数据帧,导致录制文件中包括了不想录制的多余的视频数据帧的问题。
本实施例提供的视频录制方法,解决了金融证券视频开户等场景的精确录制的需求,使得金融、证券、政府、企业类可以通过视频交流的方式完成业务,同时得到录制文件。
结合图4A,图5A是本申请一个示例性的实施例提供的视频录制方法的原理示意图,以该信息流的传递是应用在直播场景中为例进行说明,如图5A所示,该信息流的传递过程包括:
步骤501,终端通过摄像头采集视频流。
可选地,终端通过摄像头采集图像数据,并将该图像数据进行压缩编码,得到视频流。
步骤502,终端向缓存服务器推流,推流即为终端将视频流发送至缓存服务器,可选地,该视频流包括对应的流标识,缓存服务器以若干个GOP的形式对视频流进行缓存。
步骤503,终端向录制服务器发送开始录制信令。
该开始录制信令中包括起始显示时间,即终端接收到录制启动信号时,用户界面上显示的当前视频帧对应的显示时间。
步骤504,录制服务器从缓存服务器拉流,即录制服务器从缓存服务器拉取视频流,可选地,在步骤504中,录制服务器向缓存服务器发送拉流请求,可选地,该拉流请求中包括有待录制的视频流对应的流标识。
步骤505,录制服务器从缓存服务器拉取GOP。
根据该流标识,录制服务器从缓存服务器拉取视频流,可选地,录制服务器依次拉取GOP中的视频数据帧。
步骤506,终端向录制服务器发送结束录制信令。
可选地,该结束录制信令中包括视频流对应的流标识。
步骤507,录制服务器生成录制文件。
综上所述,本实施例提供的视频录制方法,通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,避免了由于数据传输的延时,缓存服务器中需要对视频流中一定数量的视频数据帧进行缓存,当录制服务器接收到开始录制信令并从缓存服务器中获取对应的视频流时,会获取到多余的视频数据帧,导致录制文件中包括了不想录制的多余的视频数据帧的问题。
结合图4C,图5B是本申请一个示例性的实施例提供的视频录制方法的原理示意图,以该信息流的传递是应用在直播场景中为例进行说明,如图5B所示,该信息流的传递过程包括:
步骤501a,第一终端通过摄像头采集视频流。
可选地,第一终端通过摄像头采集图像数据,并将该图像数据进行压缩编码,得到视频流。
步骤501b,第二终端通过摄像头采集视频流。
可选地,第二终端通过摄像头采集图像数据,并将该图像数据进行压缩编码,得到视频流。
步骤502a,第一终端向缓存服务器推流,推流即为第一终端将视频流发送至缓存服务器,可选地,该视频流包括对应的流标识。
步骤502b,第二终端向缓存服务器推流,推流即为第二终端将视频流发送至缓存服务器,可选地,该视频流包括对应的流标识,缓存服务器将第一终端发送的视频流和第二终端发送的视频流以若干个GOP的形式进行缓存,其中,两个视频流的结合方式在上述步骤403a中进行了说明,此处不再赘述。
步骤503,第一终端向录制服务器发送开始录制信令。
该开始录制信令中包括起始显示时间,即终端接收到录制启动信号时,用户界面上显示的当前视频帧对应的显示时间。
步骤504,录制服务器从缓存服务器拉流,即录制服务器从缓存服务器拉取视频流,可选地,在步骤504中,录制服务器向缓存服务器发送拉流请求,可选地,该拉流请求中包括有待录制的视频流对应的流标识。
步骤505,录制服务器从缓存服务器拉取GOP。
根据该流标识,录制服务器从缓存服务器拉取视频流,可选地,录制服务器依次拉取GOP中的视频数据帧。
步骤506,第一终端向录制服务器发送结束录制信令。
可选地,该结束录制信令中包括视频流对应的流标识。
步骤507,录制服务器生成录制文件。
图6是本申请一个示例性的实施例提供的视频录制装置的结构框图,如图6所示,该视频录制装置包括:接收模块61、获取模块62、确定模块63以及写入模块64;
接收模块61,用于接收终端发送的开始录制信令,开始录制信令中包括流标识和起始显示时间,流标识是与待录制的视频流对应的标识;
获取模块62,用于获取与流标识对应的视频流,视频流包括至少一个按序排列的视频数据帧;
确定模块63,用于根据起始显示时间,从视频数据帧中确定起始视频帧;
写入模块64,用于从起始视频帧开始,将视频数据帧写入录制文件中,录制文件用于存储被录制的视频流的视频数据帧。
在一个可选的实施例中,确定模块63,还用于在视频画面组中,将显示时间与起始显示时间相同的视频数据帧确定为起始视频帧;
确定模块63,还用于在视频画面组中,将显示时间位于起始显示时间之后的第一帧视频数据帧确定为起始视频帧。
在一个可选的实施例中,写入模块64,包括:
解码单元,当起始视频帧不是关键帧时,用于解码得到与起始视频帧对应的图像数据;
编码单元,用于对图像数据进行编码,得到起始关键帧;
写入单元,用于从起始关键帧开始,将视频数据帧写入录制文件中。
在一个可选的实施例中,接收模块61,还用于接收终端发送的结束录制信令,结束录制信令中包括结束显示时间;
确定模块63,还用于根据结束显示时间,从视频数据帧中确定结束视频帧。
在一个可选的实施例中,确定模块63,还用于在视频画面组中,将显示时间与结束显示时间相同的视频数据帧确定为结束视频帧;
确定模块63,还用于在视频画面组中,将显示时间位于起始显示时间之前的最后一帧视频数据帧确定为结束视频帧。
在一个可选的实施例中,确定模块63,还用于当与结束显示时间对应的视频帧为双向预测内插编码帧,且视频帧的下一帧不是双向预测内插编码帧时,将视频帧的下一帧,确定为结束视频帧。
在一个可选的实施例中,写入模块64,还用于从与起始显示时间对应的音频数据帧开始,将音频数据帧写入录制文件中;
写入模块64,还用于丢弃与结束显示时间对应的音频数据帧之后的音频数据帧。
综上所述,本实施例提供的视频录制装置,通过在开始录制信令中增加起始显示时间,录制服务器可以根据该起始显示时间确定视频数据帧中的起始视频帧,避免了由于数据传输的延时,录制文件中包括用户不想录制的多余的视频数据帧的问题。
本实施例提供的视频录制装置,通过将显示时间与起始显示时间相同的视频数据帧确定为起始视频帧,确保了录制文件中的第一帧,为终端接收到录制启动信号时正在终端进行显示的视频数据帧;通过将显示时间在起始显示时间之后的第一帧视频数据帧确定为起始视频帧,确保了录制文件中的第一帧,在终端接收到录制启动信号时正在终端进行显示的视频数据帧之后,即录制文件中不会有多余的视频数据帧。
本实施例提供的视频录制装置,当起始视频帧不是关键帧时,通过将起始视频帧进行解码,并重新编码得到起始关键帧,避免了录制文件中的第一帧只能是I帧而不能是P帧或者B帧时,起始视频帧为P帧或者B帧,录制文件中的第一帧为上述P帧或者B帧对应的I帧,而导致录制文件中包括多余的视频数据帧的问题。
本实施例提供的视频录制装置,通过在结束录制信令中增加结束显示时间,录制服务器可以根据该结束显示时间确定视频数据帧中的结束视频帧,避免了由于数据传输的延时,录制文件中包括用户不想录制的多余的视频数据帧的问题。
本实施例提供的视频录制装置,解决了金融证券视频开户等场景的精确录制的需求,使得金融、证券、政府、企业类可以通过视频交流的方式完成业务,同时得到录制文件。
图7是本申请一个示例性的实施例提供的一种直播录制装置的结构框图,如图7所示,该视频录制装置包括:第一显示模块71、第一接收模块72以及第一获取模块73;
第一显示模块71,用于在终端进行直播,并显示直播用户界面;
第一接收模块72,用于当直播用户界面中显示第一直播视频帧时,接收到在直播用户界面上触发的录制启动信号,录制启动信号用于对直播生成的直播视频流的直播视频帧进行录制;
第一获取模块73,用于获取录制后生成的第一录制文件,第一录制文件中的第一帧视频帧为第一直播视频帧;或,第一录制文件中的第一帧视频帧为第二直播视频帧,第二直播视频帧为第一直播视频帧的下一帧。
在一个可选的实施例中,所述装置,还包括:
第一发送模块,用于向录制服务器发送开始录制信令,开始录制信令中包括起始显示时间。
图8是本申请一个示例性的实施例提供的视频录制装置的结构框图,如图8所示,该视频录制装置包括:第二显示模块81、第二接收模块82以及第二获取模块83;
第二显示模块,用于在终端进行视频聊天,并显示视频用户界面;
第二接收模块,用于当视频用户界面中显示第一聊天视频帧时,接收到在视频用户界面上触发的录制启动信号,录制启动信号用于对视频聊天生成的视频流的聊天视频帧进行录制;
第二获取模块,用于获取录制后生成的第二录制文件,第二录制文件中的第一帧视频帧为第一聊天视频帧;或,第二录制文件中的第一帧视频帧为第二聊天视频帧,第二聊天视频帧为第一聊天视频帧的下一帧。
在一个可选的实施例中,所述装置,还包括:
第二发送模块,用于向录制服务器发送开始录制信令,开始录制信令中包括起始显示时间。
本申请还提供了一种录制服务器,该录制服务器包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的视频录制方法。需要说明的是,该录制服务器可以是如下图9所提供的录制服务器。
请参考图9,其示出了本申请一个示例性实施例提供的录制服务器的结构示意图。具体来讲:所述录制服务器900包括中央处理单元(CPU)901、包括随机存取存储器(RAM)902和只读存储器(ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述录制服务器900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。
所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为录制服务器900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者CD-ROI驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元901执行,一个或多个程序包含用于实现上述视频录制方法的指令,中央处理单元901执行该一个或多个程序实现上述各个方法实施例提供的视频录制方法。
根据本发明的各种实施例,所述录制服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即录制服务器900可以通过连接在所述系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的视频录制方法中由服务器所执行的步骤。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器910加载并执行以实现如图1A至图5B任一所述的视频录制方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的视频录制方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如图1A至图5B任一所述的视频录制方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种视频录制方法,其特征在于,应用于录制服务器中,所述方法包括:
接收终端发送的开始录制信令,所述开始录制信令中包括流标识和起始显示时间,所述流标识是待录制的视频流对应的标识,所述起始显示时间是所述终端在进行视频聊天的过程中或者直播视频的观看过程中接收到录制启动信号时,根据用户界面中显示的当前视频帧的显示时间确定的;
获取与所述流标识对应的视频流,所述视频流包括至少一个按序排列的视频数据帧;
在视频画面组中,将显示时间位于所述起始显示时间之后的第一帧视频数据帧确定为起始视频帧,所述视频流包括在预设时间长度内若干个依序排列的视频画面组,所述视频画面组包括若干个依序排列的视频数据帧;
从所述起始视频帧开始,将所述视频数据帧写入录制文件中,所述录制文件用于存储被录制的所述视频流的视频数据帧。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述视频画面组中,将显示时间与所述起始显示时间相同的视频数据帧确定为所述起始视频帧。
3.根据权利要求1所述的方法,其特征在于,所述从所述起始视频帧开始,将所述视频数据帧写入录制文件中,包括:
当所述起始视频帧不是关键帧时,解码得到与所述起始视频帧对应的图像数据;
对所述图像数据进行编码,得到起始关键帧;
从所述起始关键帧开始,将所述视频数据帧写入所述录制文件中。
4.根据权利要求3所述的方法,其特征在于,
所述起始视频帧是前向预测编码帧;
或,
所述起始关键帧是双向预测内插编码帧。
5.根据权利要求1至4任一所述的方法,其特征在于,所述在视频画面组中,将显示时间位于所述起始显示时间之后的第一帧视频数据帧确定为起始视频帧之后,还包括:
接收所述终端发送的结束录制信令,所述结束录制信令中包括结束显示时间;
根据所述结束显示时间,从所述视频数据帧中确定结束视频帧。
6.根据权利要求5所述的方法,其特征在于,所述根据所述结束显示时间,从所述视频数据帧中确定结束视频帧,包括:
当与所述结束显示时间对应的视频帧为双向预测内插编码帧,且所述视频帧的下一帧不是双向预测内插编码帧时,将所述视频帧的下一帧,确定为所述结束视频帧。
7.一种直播录制方法,其特征在于,所述方法包括:
显示直播用户界面,所述直播用户界面是终端在直播的过程中显示的用户界面;
当所述直播用户界面中显示第一直播视频帧时,接收到在所述直播用户界面上触发的录制启动信号,所述录制启动信号用于对直播生成的直播视频流的直播视频帧进行录制;
向录制服务器发送开始录制信令,所述开始录制信令中包括起始显示时间,所述起始显示时间是所述终端在进行直播视频的观看过程中接收到所述录制启动信号时所述第一直播视频帧的显示时间;
获取录制后生成的第一录制文件,所述第一录制文件中的第一帧视频帧为所述第一直播视频帧,所述第一直播视频帧是视频画面组中显示时间位于所述起始显示时间之后的第一帧视频数据帧,所述直播视频流包括在预设时间长度内若干个依序排列的视频画面组,所述视频画面组包括若干个依序排列的视频数据帧。
8.一种视频录制方法,其特征在于,所述方法包括:
显示视频用户界面,所述视频用户界面是终端在视频聊天的过程中显示的用户界面;
当所述视频用户界面中显示第一聊天视频帧时,接收到在所述视频用户界面上触发的录制启动信号,所述录制启动信号用于对视频聊天生成的视频流的聊天视频帧进行录制;
向录制服务器发送开始录制信令,所述开始录制信令中包括起始显示时间,所述起始显示时间是所述终端在进行视频聊天过程中接收到所述录制启动信号时所述第一聊天视频帧的显示时间;
获取录制后生成的第二录制文件,所述第二录制文件中的第一帧视频帧为所述第一聊天视频帧,所述第一聊天视频帧是视频画面组中显示时间位于所述起始显示时间之后的第一帧视频数据帧,所述视频流包括在预设时间长度内若干个依序排列的视频画面组,所述视频画面组包括若干个依序排列的视频数据帧。
9.一种视频录制装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的开始录制信令,所述开始录制信令中包括流标识和起始显示时间,所述流标识是待录制的视频流对应的标识,所述起始显示时间是所述终端在进行视频聊天的过程中或者直播视频的观看过程中接收到录制启动信号时,根据用户界面中显示的当前视频帧的显示时间确定的;
获取模块,用于获取与所述流标识对应的视频流,所述视频流包括至少一个按序排列的视频数据帧;
确定模块,用于在视频画面组中,将显示时间位于所述起始显示时间之后的第一帧视频数据帧确定为起始视频帧,所述视频流包括在预设时间长度内若干个依序排列的视频画面组,所述视频画面组包括若干个依序排列的视频数据帧;
写入模块,用于从所述起始视频帧开始,将所述视频数据帧写入录制文件中,所述录制文件用于存储被录制的所述视频流的视频数据帧。
10.一种直播录制装置,其特征在于,所述装置包括:
第一显示模块,用于显示直播用户界面,所述直播用户界面是终端在直播的过程中显示的用户界面;
第一发送模块,用于向录制服务器发送开始录制信令,所述开始录制信令中包括起始显示时间,所述起始显示时间是所述终端在进行直播视频的观看过程中接收到录制启动信号时第一直播视频帧的显示时间;
第一接收模块,用于当所述直播用户界面中显示所述第一直播视频帧时,接收到在所述直播用户界面上触发的所述录制启动信号,所述录制启动信号用于对直播生成的直播视频流的直播视频帧进行录制;
第一获取模块,用于获取录制后生成的第一录制文件,所述第一录制文件中的第一帧视频帧为所述第一直播视频帧,所述第一直播视频帧是视频画面组中显示时间位于所述起始显示时间之后的第一帧视频数据帧,所述直播视频流包括在预设时间长度内若干个依序排列的视频画面组,所述视频画面组包括若干个依序排列的视频数据帧。
11.一种视频录制装置,其特征在于,所述装置包括:
第二显示模块,用于显示视频用户界面,所述视频用户界面是终端在视频聊天的过程中显示的用户界面;
第二发送模块,用于向录制服务器发送开始录制信令,所述开始录制信令中包括起始显示时间,所述起始显示时间是所述终端在进行视频聊天过程中接收到录制启动信号时第一聊天视频帧的显示时间;
第二接收模块,用于当所述视频用户界面中显示所述第一聊天视频帧时,接收到在所述视频用户界面上触发的所述录制启动信号,所述录制启动信号用于对视频聊天生成的视频流的聊天视频帧进行录制;
第二获取模块,用于获取录制后生成的第二录制文件,所述第二录制文件中的第一帧视频帧为所述第一聊天视频帧,所述第一聊天视频帧是视频画面组中显示时间位于所述起始显示时间之后的第一帧视频数据帧,所述视频流包括在预设时间长度内若干个依序排列的视频画面组,所述视频画面组包括若干个依序排列的视频数据帧。
12.一种录制服务器,其特征在于,所述录制服务器包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至6任一所述的视频录制方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至6任一所述的视频录制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810007829.2A CN110012251B (zh) | 2018-01-04 | 2018-01-04 | 视频录制方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810007829.2A CN110012251B (zh) | 2018-01-04 | 2018-01-04 | 视频录制方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110012251A CN110012251A (zh) | 2019-07-12 |
CN110012251B true CN110012251B (zh) | 2022-05-20 |
Family
ID=67164310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810007829.2A Active CN110012251B (zh) | 2018-01-04 | 2018-01-04 | 视频录制方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110012251B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112702613B (zh) * | 2019-10-23 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 直播视频录制方法及装置、存储介质、电子设备 |
CN111405358A (zh) * | 2020-03-24 | 2020-07-10 | 上海依图网络科技有限公司 | 基于缓存的视频帧提取方法、装置、介质及系统 |
CN111641851A (zh) * | 2020-05-13 | 2020-09-08 | 深圳创维-Rgb电子有限公司 | 一种视频平台设备的pvr录制方法、系统和存储介质 |
CN111787223B (zh) * | 2020-06-30 | 2021-07-16 | 维沃移动通信有限公司 | 视频拍摄方法、装置和电子设备 |
CN113645480A (zh) * | 2021-08-17 | 2021-11-12 | 杭州时趣信息技术有限公司 | 一种直播视频录制方法、装置以及介质 |
CN113645481B (zh) * | 2021-08-23 | 2023-01-24 | 歌尔科技有限公司 | 视频录制方法、摄像设备、控制终端及视频录制系统 |
CN113766241A (zh) * | 2021-10-15 | 2021-12-07 | 珠海格力电器股份有限公司 | 视频录制方法、装置、存储介质及终端设备 |
CN114979533A (zh) * | 2022-05-18 | 2022-08-30 | 青岛海信移动通信技术股份有限公司 | 一种视频录制方法、装置及终端 |
CN115412754A (zh) * | 2022-08-16 | 2022-11-29 | 郑州小鸟信息科技有限公司 | 一种基于同一时间轴多信号源场景同步录制和回放的方法 |
CN118042063A (zh) * | 2022-11-04 | 2024-05-14 | 北京字跳网络技术有限公司 | 一种视频生成方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686358A (zh) * | 2008-09-28 | 2010-03-31 | 华为技术有限公司 | 一种视频录制方法、装置和系统 |
WO2010084781A1 (ja) * | 2009-01-26 | 2010-07-29 | パナソニック株式会社 | 映像記録装置 |
CN102821308A (zh) * | 2012-06-04 | 2012-12-12 | 西安交通大学 | 一种多场景流媒体课件录制与直播方法 |
CN104281675A (zh) * | 2014-09-29 | 2015-01-14 | 华为技术有限公司 | 一种获取媒体文件的方法及设备 |
CN104602100A (zh) * | 2014-11-18 | 2015-05-06 | 腾讯科技(成都)有限公司 | 实现应用内视频、音频录制的方法及装置 |
CN105657498A (zh) * | 2016-02-17 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 移动终端的视频录制方法和装置 |
CN106231413A (zh) * | 2016-08-03 | 2016-12-14 | 深圳市智行畅联科技有限公司 | 一种基于智能终端的音视频数据自动分割处理方法及系统 |
CN107018443A (zh) * | 2017-02-16 | 2017-08-04 | 乐蜜科技有限公司 | 视频录制方法、装置和电子设备 |
US10063787B2 (en) * | 2014-10-20 | 2018-08-28 | Apical Ltd. | Method of reducing digital video flicker |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024561B (zh) * | 2011-09-28 | 2016-05-25 | 深圳市快播科技有限公司 | 一种拖拽进度条的显示方法及装置 |
CN105120321A (zh) * | 2015-08-21 | 2015-12-02 | 北京佳讯飞鸿电气股份有限公司 | 一种视频搜索方法、视频存储方法和相关装置 |
CN105120299B (zh) * | 2015-08-28 | 2020-02-14 | 广州酷狗计算机科技有限公司 | 视频推送方法和装置 |
CN105979404A (zh) * | 2015-12-01 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种流媒体的处理方法及装置 |
-
2018
- 2018-01-04 CN CN201810007829.2A patent/CN110012251B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686358A (zh) * | 2008-09-28 | 2010-03-31 | 华为技术有限公司 | 一种视频录制方法、装置和系统 |
WO2010084781A1 (ja) * | 2009-01-26 | 2010-07-29 | パナソニック株式会社 | 映像記録装置 |
CN102821308A (zh) * | 2012-06-04 | 2012-12-12 | 西安交通大学 | 一种多场景流媒体课件录制与直播方法 |
CN104281675A (zh) * | 2014-09-29 | 2015-01-14 | 华为技术有限公司 | 一种获取媒体文件的方法及设备 |
US10063787B2 (en) * | 2014-10-20 | 2018-08-28 | Apical Ltd. | Method of reducing digital video flicker |
CN104602100A (zh) * | 2014-11-18 | 2015-05-06 | 腾讯科技(成都)有限公司 | 实现应用内视频、音频录制的方法及装置 |
CN105657498A (zh) * | 2016-02-17 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 移动终端的视频录制方法和装置 |
CN106231413A (zh) * | 2016-08-03 | 2016-12-14 | 深圳市智行畅联科技有限公司 | 一种基于智能终端的音视频数据自动分割处理方法及系统 |
CN107018443A (zh) * | 2017-02-16 | 2017-08-04 | 乐蜜科技有限公司 | 视频录制方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110012251A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110012251B (zh) | 视频录制方法、装置及可读存储介质 | |
US10009630B2 (en) | System and method for encoding video content using virtual intra-frames | |
WO2016131223A1 (zh) | 一种视频帧丢帧方法及视频发送装置 | |
US6453115B1 (en) | Digital video recording system which generates an index data structure for displaying a video stream in trickplay mode | |
US20070103558A1 (en) | Multi-view video delivery | |
TWI606722B (zh) | 用於減少視訊編碼及解碼中之延遲的方法、系統及電腦可讀取媒體 | |
CN110784740A (zh) | 视频处理方法、装置、服务器及可读存储介质 | |
US9628834B2 (en) | Method and system for playback of motion video | |
EP2359596A1 (en) | Video conference rate matching | |
JP6686541B2 (ja) | 情報処理システム | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
JP2009534920A (ja) | デジタル映像装置においてチャンネル変更にかかる時間を短くするための方法 | |
CN110519640B (zh) | 视频处理方法、编码器、cdn服务器、解码器、设备及介质 | |
US7403566B2 (en) | System, computer program product, and method for transmitting compressed screen images from one computer to another or many computers | |
US6961384B2 (en) | Still picture processing for MPEG-2 video | |
CN112291591A (zh) | 一种视频数据回放方法、电子设备和存储介质 | |
CN111279694A (zh) | Gdr码流编码方法、终端设备、机器可读存储介质 | |
JP7172055B2 (ja) | 処理装置、処理プログラム及び処理方法 | |
US7999853B2 (en) | Moving image reproducing apparatus and processing method therefor | |
JP4484220B2 (ja) | 映像配信装置 | |
US20040086262A1 (en) | Video data reproducing system and method | |
CN114615549B (zh) | 流媒体seek方法、客户端、存储介质和移动设备 | |
CN112954483B (zh) | 数据传输方法、系统及非易失性存储介质 | |
CN115695918B (zh) | 多摄像头导播控制方法、装置、可读存储介质及终端设备 | |
JP2005197839A (ja) | トランスポートストリームの特殊再生方法及びトランスポートストリームの記録再生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |