一种视频录制方法、装置、电子设备及可读存储介质与流程

文档序号:18899662发布日期:2019-10-18 21:45阅读:198来源:国知局
一种视频录制方法、装置、电子设备及可读存储介质与流程
本发明涉及音视频处理
技术领域
,特别是涉及一种视频录制方法、装置、电子设备及可读存储介质。
背景技术
:随着网络科技的快速发展,视频会议、视频教学等双向通信在用户的生活、工作、学习等方面广泛普及。所以视联网通信技术逐渐成为诸多用户的通信选择。直播是目前分享音视频数据的一种较为流行的方式,为了使得在直播过程中产生的音视频数据能够保存下来,满足用户在直播结束后的观看需求,通常需要对直播过程产生的音视频数据进行录制。在相关技术中,通常采用基于hls协议的静态处理的方式来录制视频,即:搜集所有直播时已分享出去的ts分片,再根据这部分ts分片还原直播的视频。但是通过这种静态处理的方式来录制视频会存在较大的延时问题。因此,在相关
技术领域
,急需一种能更好的录制视频的方式。技术实现要素:本申请提供了一种视频录制方法、装置、电子设备及可读存储介质,能在采用hls协议直播的同时实现对视频的录制,克服了相关技术中采用静态处理的方式时存在的延时较大的问题。本申请实施例第一方面提供了一种视频录制方法,所述方法应用于视联网中的流媒体服务器,所述方法包括:获取直播端基于hls协议生成的媒体数据流;创建一个用于记录所述媒体数据流的m3u8文件;基于所述媒体数据流当前生成的ts分片,创建一条对应所述ts分片的数据信息;根据所述数据信息,在所述m3u8文件中生成一条对应所述ts分片的文本信息,所述文本信息包括:所述ts分片的当前存储路径和所述ts分片的数据信息;当满足预设条件时,将所有ts分片和所述m3u8文件转移到指定存储路径;读取所述m3u8文件,将每一个ts分片对应的文本信息中的当前存储路径修改为所述指定存储路径。可选地,所述数据信息包括:ts分片的当前序号;在所述m3u8文件中生成一条对应所述ts分片的文本信息之后,将将所有ts分片和所述m3u8文件转移到指定存储路径之前,所述方法还包括:基于所述媒体数据流下一次生成的ts分片,创建一条对应的数据信息,所述数据信息至少包括:ts分片的当前序号,所述下一次生成的ts分片的当前序号与所述当前生成的ts分片的当前序号相邻;根据所述下一次生成的ts分片的数据信息,在所述m3u8文件中生成一条对应所述下一次生成的ts分片的文本信息,所述文本信息包括:所述下一次生成的ts分片的当前存储路径和所述下一次生成的ts分片的数据信息。可选地,所述流媒体服务器中设置有媒体数据缓存区;在基于所述媒体数据流当前生成的ts分片,创建一条对应所述ts分片的数据信息之后,所述方法还包括:将所述ts分片、所述ts分片对应的数据信息以及所述m3u8文件临时存储到所述媒体数据缓存区;当满足预设条件时,将所有ts分片和所述m3u8文件转移到指定存储路径之前,所述方法还包括:创建指定文件夹,所述指定文件夹对应所述指定存储路径;当满足预设条件时,将所有ts分片和所述m3u8文件转移到指定存储路径,包括:当满足预设条件时,将所有ts分片和所述m3u8文件复制到所述指定文件夹,并删除所述媒体数据缓存区中的ts分片、所述ts分片对应的数据信息以及所述m3u8文件。可选地,当满足预设条件时,将所有ts分片转移到指定存储路径,包括:当达到预设时间点时,将所有ts分片转移到指定存储路径。可选地,在当满足预设条件时,将所有ts分片转移到指定存储路径之前,所述方法还包括:设置ts分片数量阈值;当满足预设条件时,将所有ts分片转移到指定存储路径,包括:当所有ts分片的数量达到所述ts分片数量阈值时,将所有ts分片转移到指定存储路径。可选地,所述流媒体服务器与用户终端通信连接,所述数据信息还包括:时间戳;所述方法还包括:接收所述用户终端发送的获取目标视频的请求;根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的当前序号的顺序依次读取所述ts分片,并拼接成所述目标视频;或者,根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的时间戳的先后顺序依次读取所述ts分片,并拼接成所述目标视频;将所述目标视频发送给所述用户终端,以响应所述请求。可选地,所述流媒体服务器与用户终端通信连接;所述方法还包括:接收所述用户终端发送的收看直播的请求;每生成一个ts分片时,将所述ts分片发送给所述用户终端,使所述用户终端利用播放器播放所述ts分片以收看所述直播。本申请实施例第二方面提供了一种视频录制装置,所述装置应用于视联网中的流媒体服务器,所述装置包括:获取模块,用于获取直播端基于hls协议生成的媒体数据流;m3u8文件创建模块,用于创建一个用于记录所述媒体数据流的m3u8文件;数据信息创建模块,基于所述媒体数据流当前生成的ts分片,创建一条对应所述ts分片的数据信息;文本信息创建模块,用于根据所述数据信息,在所述m3u8文件中生成一条对应所述ts分片的文本信息,所述文本信息包括:所述ts分片的当前存储路径和所述ts分片的数据信息;转移模块,用于当满足预设条件时,将所有ts分片和所述m3u8文件转移到指定存储路径;修改模块,用于读取所述m3u8文件,将每一个ts分片对应的文本信息中的当前存储路径修改为所述指定存储路径。可选地,所述数据信息包括:ts分片的当前序号;所述数据信息创建模块还用于:基于所述媒体数据流下一次生成的ts分片,创建一条对应的数据信息,所述数据信息至少包括:ts分片的当前序号,所述下一次生成的ts分片的当前序号与所述当前生成的ts分片的当前序号相邻;所述文本信息创建模块还用于:根据所述下一次生成的ts分片的数据信息,在所述m3u8文件中生成一条对应所述下一次生成的ts分片的文本信息,所述文本信息包括:所述下一次生成的ts分片的当前存储路径和所述下一次生成的ts分片的数据信息。可选地,所述视频录制装置还包括:媒体数据缓存模块,用于将所述ts分片、所述ts分片对应的数据信息以及所述m3u8文件临时存储到所述媒体数据缓存区;文件夹创建模块,用于创建指定文件夹,所述指定文件夹对应所述指定存储路径;所述转移模块包括:转移子模块,用于当满足预设条件时,将所有ts分片和所述m3u8文件复制到所述指定文件夹,并删除所述媒体数据缓存区中的ts分片、所述ts分片对应的数据信息以及所述m3u8文件。可选地,所述转移模块还可以包括:第一转移子模块,用于当达到预设时间点时,将所有ts分片转移到指定存储路径;可选地,所述视频录制装置还可以包括:设置模块,用于设置ts分片数量阈值;在此基础上,所述转移模块还可以包括:第二转移子模块,用于当所有ts分片的数量达到所述ts分片数量阈值时,将所有ts分片转移到指定存储路径。可选地,所述媒体服务器与用户终端通信连接,所述数据信息还包括:时间戳;所述视频录制装置还包括:第一接收模块,用于接收所述用户终端发送的获取目标视频的请求;第一发送模块,用于根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的当前序号的顺序依次读取所述ts分片,并拼接成所述目标视频;或者,根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的时间戳的先后顺序依次读取所述ts分片,并拼接成所述目标视频;以及,将所述目标视频发送给所述用户终端,以响应所述请求。可选地,所述视频录制装置还包括:第二接收模块,用于接收所述用户终端发送的收看直播的请求;第二发送模块,用于每生成一个ts分片时,将所述ts分片发送给所述用户终端,使所述用户终端利用播放器播放所述ts分片以收看所述直播。本申请实施例第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的方法的步骤。本申请实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面所述的方法中的步骤。本申请实施例提供了一种视频录制方法,应用于视联网中的流媒体服务器,采用该方法时,首先从直播端获取基于hls协议生成的媒体数据流,然后创建一个用于记录该媒体数据流的m3u8文件,针对直播过程中产生的ts分片,创建对应的数据信息;再根据该数据信息在m3u8文件中生成对应的文本信息,在满足预设条件后,将所有ts分片和m3u8文件转移到指定存储路径,然后将m3u8文件中每一个ts分片对应的文本信息中的当前存储路径修改为指定存储路径,从而完成对直播画面的录制。本申请采用hls协议实现了视频直播与录制的同步,克服了相关技术中采用静态处理的方式录制视频时存在的较大的延时问题,此外,本申请通过上述动态的录制的方式,避免了在直播完成后搜集所有的ts分片以实现录制的繁琐的过程,能快捷方便地完成直播视频的录制,并分享给其它平台,有效地提升了用户的使用体验。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的一种视联网的组网示意图;图2是本申请的一种节点服务器的硬件结构示意图;图3是本申请的一种接入交换机的硬件结构示意图;图4是本申请的一种以太网协转网关的硬件结构示意图;图5是本申请一实施例示出的一种视频录制方法的流程图;图6是本申请一实施例示出的一种录制视频的过程示意图;图7是本申请一实施例示出的一种视频录制装置的结构示意图;图8是本申请一实施例示出的一种电子设备的示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、vod点播、电视邮件、个性录制(pvr)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:视联网所应用的部分技术如下所述:网络技术(networktechnology)视联网的网络技术创新改良了传统以太网(ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(packetswitching)或网络电路交换(circuitswitching),视联网技术采用packetswitching满足streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。交换技术(switchingtechnology)视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载ip数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。服务器技术(servertechnology)视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。储存器技术(storagetechnology)统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级ip互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。网络安全技术(networksecuritytechnology)视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。服务创新技术(serviceinnovationtechnology)统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或pc直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。视联网的组网如下所述:视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。如图1所示,视联网分为接入网和城域网两部分。接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。视联网设备分类1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。各接入网设备的具体硬件结构为:节点服务器:如图2所示,主要包括网络接口模块201、交换引擎模块202、cpu模块203、磁盘阵列模块204;其中,网络接口模块201,cpu模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模块202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;cpu模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。接入交换机:如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和cpu模块304;其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(da)、源地址(sa)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;cpu模块204进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。码率控制模块208是由cpu模块204来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。cpu模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。以太网协转网关:如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、cpu模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和mac添加模块409、mac删除模块410。其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网macda、以太网macsa、以太网lengthorframetype、视联网目地地址da、视联网源地址sa、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由mac删除模块410减去macda、macsa、lengthorframetype(2byte),并进入相应的接收缓存,否则丢弃;下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址da获知对应的终端的以太网macda,添加终端的以太网macda、以太网协转网关的macsa、以太网lengthorframetype,并发送。以太网协转网关中其他模块的功能与接入交换机类似。终端:主要包括网络接口模块、业务处理模块和cpu模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、cpu模块;编码板主要包括网络接口模块、视音频编码引擎模块、cpu模块;存储器主要包括网络接口模块、cpu模块和磁盘阵列模块。1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和cpu模块;城域服务器主要包括网络接口模块、交换引擎模块和cpu模块构成。2、视联网数据包定义2.1接入网数据包定义接入网的数据包主要包括以下几部分:目的地址(da)、源地址(sa)、保留字节、payload(pdu)、crc。如下表所示,接入网的数据包主要包括以下几部分:dasareservedpayloadcrc其中:目的地址(da)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;源地址(sa)也是由8个字节(byte)组成,定义与目的地址(da)相同;保留字节由2个字节组成;payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;crc有4个字节组成,其计算方法遵循标准的以太网crc算法。2.2城域网数据包定义城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。本说明书中标签的定义和mpls(multi-protocollabelswitch,多协议标签交换)的标签的定义类似,假设设备a和设备b之间有两个连接,那么数据包从设备a到设备b就有2个标签,数据包从设备b到设备a也有2个标签。标签分入标签、出标签,假设数据包进入设备a的标签(入标签)是0x0000,这个数据包离开设备a时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与mpls的标签分配是不同的,mpls的标签分配是交换机、服务器互相协商的结果。如下表所示,城域网的数据包主要包括以下几部分:dasareserved标签payloadcrc即目的地址(da)、源地址(sa)、保留字节(reserved)、标签、payload(pdu)、crc。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。基于视联网的上述特性,提出了本发明实施例的核心构思之一,遵循视联网协议,在录制直播的过程中,首先获取直播端基于hls协议生成的媒体数据流,然后创建一个用于记录该媒体数据流的m3u8文件;针对直播过程中产生的每一个ts分片,创建对应的数据信息,再根据这些数据信息,在m3u8文件中生成对应的文本信息,其中,文本信息包括:ts分片的当前存储路径和ts分片的数据信息;当满足预设条件时,将所有ts分片和m3u8文件转移到指定存储路径,然后将m3u8文件中的每一个ts分片对应的文本信息中的当前存储路径修改为指定存储路径,以实现视频直播与录制的同步。图5是本申请一实施例示出的一种视频录制方法的流程图。本申请的视频录制方法应用于视联网中的流媒体服务器,参照图5,本申请的视频录制方法包括以下步骤:步骤s11:获取直播端基于hls协议生成的媒体数据流。hls(httplivestreaming)是apple的动态码率自适应技术,主要用于pc和apple终端的音视频服务。hls支持静态m3u8文件和动态m3u8文件。本申请提供的视频录制方法是基于动态m3u8文件的一种在视频直播过程中录制视频的方法。流媒体服务器的主要功能是:对网络中传送的音频、视频和多媒体文件的媒体内容进行采集、缓存、调度、传输以及播放。流媒体服务器与多个正在进行直播业务的终端设备连接,终端设备可以位于视联网环境下,也可以位于其它网环境下。当终端设备位于视联网环境下时,流媒体服务器直接从终端设备获取媒体数据流,当终端设备位于其它网环境下时,流媒体服务器可以通过协议转换服务器从终端设备获取媒体数据流。步骤s12:创建一个用于记录所述媒体数据流的m3u8文件。在一次直播过程中,采用hls协议每隔一段时间会生成一个ts分片,这些ts分片的信息(例如:存储路径)均对应的记录在一个m3u8文件中,也即:该m3u8文件可以是多个ts分片的索引,根据该m3u8文件可以依次读取到各个ts分片。步骤s13:基于所述媒体数据流当前生成的ts分片,创建一条对应所述ts分片的数据信息。ts分片的数据信息可以是:ts分片的时长、ts分片的时间戳、当前序号等。当采用hls协议在直播的同时进行录制时,会不断地产生新的ts分片,针对每一个ts分片,流媒体服务器会记录其数据信息,例如:该ts分片持续的时长,该ts分片的片首位于直播过程中的时间点(即:时间戳),同时会为该ts分片分配一个序号,例如:利用阿拉伯数字从小到大的顺序依次为先后产生的各个ts分片编号。步骤s14:根据所述数据信息,在所述m3u8文件中生成一条对应所述ts分片的文本信息,所述文本信息包括:所述ts分片的当前存储路径和所述ts分片的数据信息。每生成一个ts分片后,流媒体服务器根据该ts分片对应的数据信息,在m3u8文件中生成一条对应的文本信息,该文本信息包括:该ts分片的当前存储路径和该ts分片的数据信息。其中,当前存储路径是指流媒体服务器默认为该ts分片创建的路径。步骤s15:当满足预设条件时,将所有ts分片和所述m3u8文件转移到指定存储路径。其中,预设条件可以是预先设置的时间条件,也可以是已经生成的ts分片的数量条件,或者其它条件,本申请对此不作具体限制。将所有ts分片和m3u8文件转移到指定存储路径,即:通过一定的方法自动地将ts分片和m3u8文件转移到指定的存储路径,例如:通过编写程序将ts分片和m3u8文件转移到指定的存储路径。在本实施例中,如果不将ts分片和m3u8文件转移到指定的存储路径,流媒体服务器每生成一定数量的ts分片会自动将原来的ts分片和m3u8文件删除,或者超出预设数量的ts分片会自动覆盖原来的ts分片和m3u8文件的存储路径,进而导致无法实现视频录制与视频直播的同步进行。步骤s16:读取所述m3u8文件,将每一个ts分片对应的文本信息中的当前存储路径修改为所述指定存储路径。通常情况下,指定的存储路径与数据信息中记录的当前存储路径是不同的,因此,为了使得在将ts分片和m3u8文件转移到指定的存储路径之后,根据m3u8文件可以读取到ts分片,需要将每一个ts分片对应的文本信息中的当前存储路径修改为指定存储路径。本申请实施例提供的视频录制方法同时可以适用于直播过程中产生的音频数据的录制。此外,本申请实施例提供的视频录制方法还可以应用于互联网中,如未特别说明,本申请各个实施例均是以视频录制方法应用于视联网为例进行说明。本申请实施例提供了一种视频录制方法,应用于视联网中的流媒体服务器,采用该方法时,首先从直播端获取基于hls协议生成的媒体数据流,然后创建一个用于记录该媒体数据流的m3u8文件,针对直播过程中产生的ts分片,创建对应的数据信息;再根据该数据信息在m3u8文件中生成对应的文本信息,在满足预设条件后,将所有ts分片和m3u8文件转移到指定存储路径,然后将m3u8文件中每一个ts分片对应的文本信息中的当前存储路径修改为指定存储路径,从而完成对直播画面的录制。本申请采用hls协议实现了视频直播与录制的同步,克服了相关技术中采用静态处理的方式录制视频时存在的较大的延时问题,此外,本申请通过上述动态的录制的方式,避免了在直播完成后搜集所有的ts分片以实现录制的繁琐的过程,能快捷方便地完成直播视频的录制,并分享给其它平台,有效地提升了用户的使用体验。可选地,在本申请实施例中,数据信息包括:ts分片的当前序号;在上述步骤s14之后,还包括以下步骤:基于所述媒体数据流下一次生成的ts分片,创建一条对应的数据信息,所述数据信息至少包括:ts分片的当前序号,所述下一次生成的ts分片的当前序号与所述当前生成的ts分片的当前序号相邻;根据所述下一次生成的ts分片的数据信息,在所述m3u8文件中生成一条对应所述下一次生成的ts分片的文本信息,所述文本信息包括:所述下一次生成的ts分片的当前存储路径和所述下一次生成的ts分片的数据信息。在本实施例中,流媒体服务器处理ts分片的方式是:读取一个ts分片,生成对应的数据信息,根据该数据信息再生成文本信息,然后读取下一个ts分片,生成对应的数据信息,根据该数据信息再生成文本信息,以此类推,从而将直播过程中产生的所有的ts分片的信息记录到m3u8文件中。在本申请实施例中,流媒体服务器中设置有媒体数据缓存区;在上述步骤s13之后,还包括:将所述ts分片、所述ts分片对应的数据信息以及所述m3u8文件临时存储到所述媒体数据缓存区。在本申请中,为了防止在视频录制过程中影响流媒体服务器的性能,设置了媒体数据缓存区,该媒体数据缓存区用于临时存储生成的ts分片、ts分片对应的数据信息、m3u8文件以及其它必要的信息。同时,在上述步骤s15之前,还包括:创建指定文件夹,所述指定文件夹对应所述指定存储路径。在本实施例中,在将所有ts分片和m3u8文件转移到指定存储路径之前,还可以预先创建一个指定文件夹,用于实现对ts分片和m3u8文件的备份。在此基础上,步骤s15具体包括:当满足预设条件时,将所有ts分片和所述m3u8文件复制到所述指定文件夹,并删除所述媒体数据缓存区中的ts分片、所述ts分片对应的数据信息以及所述m3u8文件。当满足预设条件时,通过一定的方法自动地将所有ts分片和m3u8文件复制到指定文件夹,例如:通过编写程序实现自动地将ts分片和m3u8文件复制到指定文件夹,当一次直播过程中的所有ts分片和m3u8文件全部都备份到该指定文件夹中时,即实现了录制。当然,在本申请各个实施例中,在将所有ts分片和m3u8文件复制到所述指定文件夹后,也可以不删除ts分片、ts分片对应的数据信息以及m3u8文件,只需在数据缓存区的存储空间达到上限以后,使之后的ts分片、ts分片对应的数据信息以及m3u8文件覆盖原来的ts分片、ts分片对应的数据信息即可。在将所有ts分片和m3u8文件复制到所述指定文件夹后,删除或者覆盖原有的ts分片、ts分片对应的数据信息以及m3u8文件,能节省大量的存储空间,减轻流媒体服务器的运行压力。可选地,上述步骤s15具体可以包括:当达到预设时间点时,将所有ts分片和所述m3u8文件转移到指定存储路径。在本申请中,预设条件可以是时间条件,例如:预先设置连续直播预设时长后,将所有已经生成的ts分片和m3u8文件转移到指定存储路径。预设时间点也可以是直播结束的时间,流媒体服务器实时检测直播端是否结束直播,当结束直播时,将结束的时间点设置为预设时间点。当预计一次直播持续的时间较长时,可以将该直播的时间段大致划分为多个时间段,将每一个时间段内的直播作为一个子直播,将每一个子直播的结束的时间点设置为预设时间点。通过这种方式,当直播结束时,即可获得对应该直播的录制视频,从而实现了直播和录制的同步进行。可选地,在上述步骤s15之前,还可以设置以下步骤:设置ts分片数量阈值。在此基础上,上述步骤s15具体可以包括:当所有ts分片的数量达到所述ts分片数量阈值时,将所有ts分片和所述m3u8文件转移到指定存储路径。在本申请中,预设条件还可以是生成的ts分片的数量条件,例如:在将所有ts分片和m3u8文件转移到指定存储路径之前,可以预先设置ts分片数量阈值,使得当流媒体服务器检测到已生成的ts分片的数量大于ts分片数量阈值时,自动地将所有的ts分片和m3u8文件转移到指定存储路径。在本申请实施例中,流媒体服务器与用户终端通信连接,数据信息还包括:时间戳。时间戳是ts分片的片首在直播中所处的时间点,举例来讲,一个ts分片是根据直播时间段10:00-10:05之间产生的视频数据生成的,那么该ts分片的时长为5分钟,时间戳为10:00。因此,本申请的视频录制方法还可以包括:接收所述用户终端发送的获取目标视频的请求;根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的当前序号的顺序依次读取所述ts分片,并拼接成所述目标视频;或者,根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的时间戳的先后顺序依次读取所述ts分片,并拼接成所述目标视频;将所述目标视频发送给所述用户终端,以响应所述请求。在本实施例中,用户可以在直播结束后向流媒体服务器发送获取目标视频的请求,流媒体服务器根据m3u8文件的文本信息中记录的各个ts分片的指定路径,依次读取ts分片并拼接成完整的目标视频,然后发送给用户终端,使得用户终端直接利用播放器播放即可。例如:流媒体服务器可以按照各个ts分片的当前序号的顺序依次读取ts分片并并拼接成完整的目标视频,也可以按照各个ts分片的时间戳的先后顺序依次读取ts分片并拼接成完整的目标视频。在本申请中,用户终端还可以向流媒体服务器发起收看直播的请求,流媒体服务器处理该请求的过程可以包括:接收所述用户终端发送的收看直播的请求;每生成一个ts分片时,将所述ts分片发送给所述用户终端,使所述用户终端利用播放器播放所述ts分片以收看所述直播。在本实施例中,用户可以向流媒体服务器发起收看直播的请求,流媒体服务器在收到请求后,每生成一个ts分片,便将该ts分片发送给用户终端,使得用户终端可以通过播放器播放该ts分片。当然,流媒体服务器每生成一个ts分片后,可以将该ts分片分享公共平台,使得其它平台可以自行从该公共平台获取ts分片并收看直播。下面通过一个具体的实施例对本申请的视频录制的方法进行详细的说明。图6是本申请一实施例示出的一种录制视频的过程示意图。参照图6,在录制直播端的视频时,流媒体服务器首先从实时直播端拉取媒体数据流,然后采用hls协议录制媒体数据流,不断生成ts分片,并在m3u8文件中记录ts分片的文本信息,同时,流媒体服务器判断直播是否结束,若直播结束,将所有的ts分片和m3u8文件转移到指定的存储路径,完成录制,若直播未结束,继续拉取媒体数据流并重复执行上述操作。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。本申请还提供了一种视频录制装置700,应用于视联网中的流媒体服务器。图7是本申请一实施例示出的一种视频录制装置的结构示意图。参照图7,本申请的视频录制装置700包括:获取模块701,用于获取直播端基于hls协议生成的媒体数据流;m3u8文件创建模块702,用于创建一个用于记录所述媒体数据流的m3u8文件;数据信息创建模块703,基于所述媒体数据流当前生成的ts分片,创建一条对应所述ts分片的数据信息;文本信息创建模块704,用于根据所述数据信息,在所述m3u8文件中生成一条对应所述ts分片的文本信息,所述文本信息包括:所述ts分片的当前存储路径和所述ts分片的数据信息;转移模块705,用于当满足预设条件时,将所有ts分片和所述m3u8文件转移到指定存储路径;修改模块706,用于读取所述m3u8文件,将每一个ts分片对应的文本信息中的当前存储路径修改为所述指定存储路径。可选地,所述数据信息包括:ts分片的当前序号;所述数据信息创建模块还用于:基于所述媒体数据流下一次生成的ts分片,创建一条对应的数据信息,所述数据信息至少包括:ts分片的当前序号,所述下一次生成的ts分片的当前序号与所述当前生成的ts分片的当前序号相邻;所述文本信息创建模块还用于:根据所述下一次生成的ts分片的数据信息,在所述m3u8文件中生成一条对应所述下一次生成的ts分片的文本信息,所述文本信息包括:所述下一次生成的ts分片的当前存储路径和所述下一次生成的ts分片的数据信息。可选地,所述视频录制装置700还包括:媒体数据缓存模块,用于将所述ts分片、所述ts分片对应的数据信息以及所述m3u8文件临时存储到所述媒体数据缓存区;文件夹创建模块,用于创建指定文件夹,所述指定文件夹对应所述指定存储路径;所述转移模块包括:转移子模块,用于当满足预设条件时,将所有ts分片和所述m3u8文件复制到所述指定文件夹,并删除所述媒体数据缓存区中的ts分片、所述ts分片对应的数据信息以及所述m3u8文件。可选地,所述转移模块还可以包括:第一转移子模块,用于当达到预设时间点时,将所有ts分片转移到指定存储路径;可选地,所述视频录制装置700还可以包括:设置模块,用于设置ts分片数量阈值;在此基础上,所述转移模块还可以包括:第二转移子模块,用于当所有ts分片的数量达到所述ts分片数量阈值时,将所有ts分片转移到指定存储路径。可选地,所述媒体服务器与用户终端通信连接,所述数据信息还包括:时间戳;所述视频录制装置700还包括:第一接收模块,用于接收所述用户终端发送的获取目标视频的请求;第一发送模块,用于根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的当前序号的顺序依次读取所述ts分片,并拼接成所述目标视频;或者,根据所述m3u8文件的文本信息中的指定路径,按照所述ts分片的时间戳的先后顺序依次读取所述ts分片,并拼接成所述目标视频;以及,将所述目标视频发送给所述用户终端,以响应所述请求。可选地,所述视频录制装置700还包括:第二接收模块,用于接收所述用户终端发送的收看直播的请求;第二发送模块,用于每生成一个ts分片时,将所述ts分片发送给所述用户终端,使所述用户终端利用播放器播放所述ts分片以收看所述直播。基于同一发明构思,本申请另一实施例提供一种电子设备800,如图8所示。图8是本申请一实施例示出的一种电子设备的示意图。该电子设备包括存储器802、处理器801及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种视频录制方法、装置、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1