一种视频直播流生成方法、装置及电子设备与流程

文档序号:17483369发布日期:2019-04-20 06:35阅读:212来源:国知局
一种视频直播流生成方法、装置及电子设备与流程

本发明涉及网络技术领域中的多媒体直播技术领域,特别涉及一种视频直播流生成方法、装置及电子设备。



背景技术:

目前,随着网络技术的快速发展,网络视频直播得到了更广泛的应用,例如,晚会盛典直播、演唱会直播、体育赛事直播、商业发布会直播、秀场直播、游戏直播等,网络视频直播可以方便观众随时随地观看,以获得更好的观看体验。

发明人在实现本发明的过程中发现,现有技术至少存在如下问题:

在针对网络视频直播的实际应用中,经常需要在视频直播流中添加一些特定视频,例如,宣传片、倒计时短片、广告视频等,可以将这类特定视频,统称为垫片视频。

因此,如何实现在视频直播流中有效的添加垫片视频,成为目前亟待解决的问题。



技术实现要素:

本发明实施例的目的在于提供一种视频直播流生成方法、装置及电子设备,以实现在视频直播流中添加垫片视频。具体技术方案如下:

本发明实施例提供了一种视频直播流生成方法,所述方法包括:

当需要播放直播视频时,从视频采集设备采集的直播信号中,获取直播视频数据,当需要播放垫片视频时,获取所述垫片视频的垫片视频数据;

将所获取的待播放视频数据写入管道中,所述待播放视频数据为获取的所述直播视频数据和所述垫片视频数据;

从所述管道中读取所述待播放视频数据,得到所述待播放视频数据中的帧图像数据;

使用所述帧图像数据,生成视频直播流。

进一步的,所述将所获取的待播放视频数据写入管道中之前,还包括:

建立用于写入所述直播视频数据和所述垫片视频数据的管道。

进一步的,采用如下步骤确定是否需要播放直播视频:

当接收到用于指示播放直播视频的直播视频播放指令时,确定需要播放直播视频;或者

当监控到用于表示开始播放直播视频的第一预设播放时刻到达时,确定需要播放直播视频;

采用如下步骤确定是否需要播放垫片视频:

当接收到用于指示播放垫片视频的垫片视频播放指令时,确定需要播放垫片视频;或者

当监控到用于表示开始播放垫片视频的第二预设播放时刻到达时,确定需要播放垫片视频。

进一步的,所述将所获取的待播放视频数据写入管道中,包括:

按照预设帧率,将所获取的待播放视频数据,写入管道中。

进一步的,所述使用所述帧图像数据,生成视频直播流,包括:

按照预设直播流封装格式,对所述帧图像数据进行封装,得到视频直播流中的视频数据包。

本发明实施例还提供了一种视频直播流生成装置,所述装置包括:

获取模块,用于当需要播放直播视频时,从视频采集设备采集的直播信号中,获取直播视频数据,当需要播放垫片视频时,获取所述垫片视频的垫片视频数据:

写入模块,用于将所获取的待播放视频数据写入管道中,所述待播放视频数据为获取的所述直播视频数据和所述垫片视频数据;

读取模块,用于从所述管道中读取所述待播放视频数据,得到所述待播放视频数据中的帧图像数据;

生成模块,用于使用所述帧图像数据,生成视频直播流。

进一步的,所述装置还包括:

建立模块,用于在所述写入模块将所获取的待播放视频数据写入管道中之前,建立用于写入所述直播视频数据和所述垫片视频数据的管道。

进一步的,所述装置还包括:

确定模块,用于采用如下步骤确定是否需要播放直播视频:

当接收到用于指示播放直播视频的直播视频播放指令时,确定需要播放直播视频;或者,当监控到用于表示开始播放直播视频的第一预设播放时刻到达时,确定需要播放直播视频;

所述确定模块,还用于采用如下步骤确定是否需要播放垫片视频:

当接收到用于指示播放垫片视频的垫片视频播放指令时,确定需要播放垫片视频;或者,当监控到用于表示开始播放垫片视频的第二预设播放时刻到达时,确定需要播放垫片视频。

进一步的,所述写入模块,具体用于:

按照预设帧率,将所获取的待播放视频数据,写入管道中。

进一步的,所述生成模块,具体用于:

按照预设直播流封装格式,对所述帧图像数据进行封装,得到视频直播流中的视频数据包。

本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一视频直播流生成方法的步骤。

进一步的,所述电子设备为云端设备。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一视频直播流生成方法的步骤。

本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频直播流生成方法。

本发明实施例的有益效果:

本发明实施例提供的一种视频直播流生成方法,当需要播放直播视频时,从视频采集设备采集的直播信号中,获取直播视频数据,当需要播放垫片视频时,获取该垫片视频的垫片视频数据,然后将所获取的待播放视频数据写入管道中,该待播放视频数据为获取的上述直播视频数据和上述垫片视频数据,从该管道中读取该待播放视频数据,得到该待播放视频数据中的帧图像数据,然后使用该帧图像数据,生成视频直播流。采用本发明实施例提供的上述视频直播流生成方法,可以基于需要选择直播视频数据或垫片视频数据生成视频直播流,即实现了在视频直播流中添加垫片视频。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种视频直播流生成方法的流程示意图;

图2为本发明实施例提供的另一种视频直播流生成方法的流程示意图;

图3为本发明实施例提供的一种视频直播流生成装置的结构示意图;

图4为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

本发明实施例提供了一种视频直播流生成方法,如图1所示,可以包括如下步骤:

步骤101、当需要播放直播视频时,从视频采集设备采集的直播信号中,获取直播视频数据,当需要播放垫片视频时,获取该垫片视频的垫片视频数据;

步骤102、将所获取的待播放视频数据写入管道中,该待播放视频数据为获取的上述直播视频数据和上述垫片视频数据;

步骤103、从该管道中读取该待播放视频数据,得到该待播放视频数据中的帧图像数据;

步骤104、使用该帧图像数据,生成视频直播流。

采用本发明实施例提供的上述视频直播流生成方法,可以基于需要选择直播视频数据或垫片视频数据生成视频直播流,即实现了在视频直播流中添加垫片视频。

下面结合附图,对本发明实施例提供的上述视频直播流生成方法,进行详细描述。

本发明实施例提供的视频直播流生成方法,可以由位于直播现场的电子设备执行,也可以由云端设备执行,下面在一个示例中,以由云端设备执行为例,对本发明实施例提供的视频直播流生成方法,进行详细描述,如图2所示,可以包括如下步骤:

步骤201、从视频采集设备采集的直播信号中,获取直播视频数据。

本发明实施例中,在视频直播的过程中,位于直播现场的视频采集设备针对直播场景进行视频采集,并将采集得到的直播信号上传到云端设备,云端设备在接收到直播信号后,从直播信号中获取直播视频数据,该直播视频数据将作为待播放视频数据,并进入后续的步骤205。

步骤202、监控是否需要播放垫片视频,如果否,则返回本步骤继续监控,如果是,进入步骤203,以及进入步骤204。

本步骤中,可以根据实际需要确定在什么时间开始播放垫片视频,例如,当接收到用于指示播放垫片视频的垫片视频播放指令时,确定需要播放垫片视频,或者,当监控到用于表示开始播放垫片视频的第二预设播放时刻到达时,确定需要播放垫片视频,其中,垫片视频播放指令可以来自控制终端,控制终端可位于直播现场,也可以位于云端。

步骤203、获取垫片视频的垫片视频数据。

本步骤中,具体的,垫片视频数据也可以由直播现场的终端设备上传至云端设备,也可以由云端设备从垫片视频文件中,获取垫片视频的垫片视频数据,垫片视频文件可以为预先存储在云端。

本步骤中所获取的垫片视频数据,也将作为待播放视频数据,并进入后续的步骤205。

本发明实施例中,在获取垫片视频数据作为待播放视频数据时,可以暂停获取直播视频数据。

步骤204、监控是否需要播放直播视频,如果否,则返回本步骤继续监控,如果是,进入步骤201,以及进入步骤202。

本步骤中,可以根据实际需要确定在什么时间开始播放直播视频,例如,当接收到用于指示播放直播视频的直播视频播放指令时,确定需要播放直播视频;或者,当监控到用于表示开始播放直播视频的第一预设播放时刻到达时,确定需要播放直播视频,其中,直播视频播放指令可以来自控制终端,控制终端可位于直播现场,也可以位于云端。

步骤205、建立用于写入上述直播视频数据和上述垫片视频数据的管道。

管道是一种进程间的通信机制,其可以建立在同一终端的不同进程间,也可以建立在不同终端的不同进程间。本实施例中,在云端设备中,可以通过第一进程来获取上述直播视频数据和上述垫片视频数据,以及通过第二进程生成视频直播流。那么,第一进程和第二进程之间需要通信,才能使第二进程读取到直播视频数据和垫片视频数据,从而生成视频直播流。基于此,在本实施例中,可以建立用于写入上述直播视频数据和上述垫片视频数据的管道,以便于第一进程和第二进程之间可以通过该管道进行通信。本实施例中,对建立上述管道的方法并不限定,现有的可以建立用于实现进程间通信的管道的任一方法均可以应用于本申请。

步骤206、将所获取的待播放视频数据写入上述管道中,该待播放视频数据为获取的上述直播视频数据和上述垫片视频数据。

本步骤中,具体的,可以按照预设帧率,将所获取的待播放视频数据,写入上述管道中,例如,以获取的垫片视频数据为例,假设该垫片视频是分辨率为1080p、帧率为25fps的mp4文件,那么当预设的帧率为25fps时,该垫片视频数据就可以以25fps的速度写入该管道中,即该管道中每秒可以写入25张图片的帧图像数据。

步骤207、从该管道中读取该待播放视频数据,得到该待播放视频数据中的帧图像数据。

本实施例中,可以通过上述第二进程从该管道中读取该待播放视频数据,得到该待播放视频数据中的帧图像数据。具体的,可以按照上述预设帧率,从该管道中读取该待播放视频数据。

步骤208、使用该帧图像数据,生成视频直播流。

在本步骤中,具体的,可以按照预设直播流封装格式,对该帧图像数据进行封装,得到视频直播流中的视频数据包,其中,预设的封装格式可以为:rtmp(realtimemessagingprotocol,实时消息传输协议)、rtp/rtsp(real-timetransportprotocol/realtimestreamingprotocol,实时传输协议/实时流传输协议)、hls(httplivestreaming,基于http的流媒体网络传输协议)。其中,http(hypertexttransferprotocol)为超文本传输协议。

采用本发明实施例提供的视频直播流生成方法,可以基于需要选择直播视频数据或垫片视频数据生成视频直播流,即实现了在视频直播流中添加垫片视频,以及可以避免由于网络条件不好,而使视频直播出现延时过长的现象。

参见图3,图3为本发明实施例提供的一种视频直播流生成装置的结构示意图,与图1所示流程相对应,该装置可以包括:

获取模块301,用于当需要播放直播视频时,从视频采集设备采集的直播信号中,获取直播视频数据,当需要播放垫片视频时,获取该垫片视频的垫片视频数据;

写入模块302,用于将所获取的待播放视频数据写入管道中,该待播放视频数据为获取的上述直播视频数据和上述垫片视频数据;

读取模块303,用于从该管道中读取该待播放视频数据,得到该待播放视频数据中的帧图像数据;

生成模块304,用于使用该帧图像数据,生成视频直播流。

进一步的,该装置还包括:

建立模块,用于在写入模块302将所获取的待播放视频数据写入管道中之前,建立用于写入所述直播视频数据和所述垫片视频数据的管道。

进一步的,该装置还包括:

确定模块,用于采用如下步骤确定是否需要播放直播视频:

当接收到用于指示播放直播视频的直播视频播放指令时,确定需要播放直播视频;或者,当监控到用于表示开始播放直播视频的第一预设播放时刻到达时,确定需要播放直播视频;

该确定模块,还用于采用如下步骤确定是否需要播放垫片视频:

当接收到用于指示播放垫片视频的垫片视频播放指令时,确定需要播放垫片视频;或者,当监控到用于表示开始播放垫片视频的第二预设播放时刻到达时,确定需要播放垫片视频。

进一步的,写入模块302,具体用于:

按照预设帧率,将所获取的待播放视频数据,写入管道中。

进一步的,生成模块304,具体用于:

按照预设直播流封装格式,对该帧图像数据进行封装,得到视频直播流中的视频数据包。

本发明实施例还提供了一种电子设备,该电子设备可以为云端设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信;

存储器403,用于存放计算机程序;

处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:

当需要播放直播视频时,从视频采集设备采集的直播信号中,获取直播视频数据,当需要播放垫片视频时,获取该垫片视频的垫片视频数据;

将所获取的待播放视频数据写入管道中,该待播放视频数据为获取的上述直播视频数据和上述垫片视频数据;

从该管道中读取该待播放视频数据,得到该待播放视频数据中的帧图像数据;

使用该帧图像数据,生成视频直播流。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一视频直播流生成方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一视频直播流生成方法。

采用本发明实施例提供的上述视频直播流生成方法、装置及电子设备,可以基于需要选择直播视频数据或垫片视频数据生成视频直播流,即实现了在视频直播流中添加垫片视频,以及可以避免由于网络条件不好,而使视频直播出现延时过长的现象。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1