视频播出方法及系统与流程

文档序号:12890049阅读:290来源:国知局
视频播出方法及系统与流程

本发明涉及数据通信技术领域,具体而言,涉及一种视频播出方法及系统。



背景技术:

在视频播出中,常常需要导播在多路视频源中选取合适的视频源播出给观众,视频播出系统一般包括为用户显示多路视频的显示模块及将用户选中的视频进行编码播出的播出模块。现有技术中,这两个模块都工作于同一计算机设备中,当显示的多路视频数量较多时,两个模块都需要消耗大量的计算机资源时,计算机设备由于性能的瓶颈可能无法胜任,导致影响视频播出的质量。



技术实现要素:

为了克服现有技术中的上述不足,本发明的目的在于提供一种视频播出方法,应用于包括导播终端及编码终端的视频播出系统,所述方法包括:

所述导播终端提供视频显示界面,用于显示至少一路视频源;

所述导播终端响应用户选择操作,将被用户选中的视频源对应的视频流数据发送至所述编码终端;

所述编码终端对接收到的视频流数据进行编码播出。

可选地,在上述方法中,所述将被用户选中的视频源对应的视频流数据发送至所述编码终端的步骤,包括:

所述导播终端通过远程过程调用协议调用所述编码终端的视频接收服务,将所述视频流数据发送至所述编码终端的视频接收服务的接口。

可选地,在上述方法中,所述视频播出系统还包括分别与所述导播终端与所述编码终端通信的消息传递服务器;所述导播终端通过远程过程调用协议调用所述编码终端的视频接收服务的步骤,包括:

所述导播终端获取被选中的视频源对应的视频流数据;

所述导播终端执行远程调用函数,通过远程过程调用协议向所述消息传递服务器发送远程调用请求,所述远程调用函数中包括需要调用的所述编码终端中的视频接收服务;

所述消息传递服务器将所述调用请求转发至所述编码终端,调用所述视频接收服务,使所述编码终端接收所述导播终端发送的视频流数据。

可选地,在上述方法中,所述方法还包括:

所述导播终端通过远程过程调用协议调用所述编码终端的开始播出服务或停止播出服务,使所述编码终端开始或停止对接收到的视频流数据进行编码播出。

可选地,在上述方法中,所述导播终端通过远程过程调用协议调用所述编码终端的开始播出服务或停止播出服务的步骤,包括:

所述导播终端执行远程调用函数,通过远程过程调用协议向所述消息传递服务器发送远程调用请求,所述远程调用函数中包括需要调用的所述编码终端中的开始播出服务或停止播出服务;

所述消息传递服务器将所述调用请求转发至所述编码终端,调用所述开始播出服务或停止播出服务,使所述编码终端开始或停止对接收到的视频流数据进行编码播出。

可选地,在上述方法中,所述方法还包括:

在所述编码终端中注册所述视频接收服务、开始播出服务及停止播出服务;及

在所述消息传递服务器中注册所述视频接收服务、开始播出服务及停止播出服务。

本发明的另一目的在于提供一种视频播出系统,包括导播终端及编码终端,

所述导播终端用于提供视频显示界面,以显示至少一路视频源;并响应用户选择操作,将被用户选中的视频源对应的视频流数据发送至所述编码终端;

所述编码终端用于对接收到的视频流数据进行编码播出。

可选地,在上述系统中,所述导播终端视频流数据发送至所述编码终端的方式,包括:

通过远程过程调用协议调用所述编码终端的视频接收服务,将所述视频流数据发送至所述编码终端的视频接收服务的接口。

可选地,在上述系统中,所述导播终端还用于通过远程过程调用协议调用所述编码终端的开始播出服务或停止播出服务,使所述编码终端开始或停止对接收到的视频流数据进行编码播出。

可选地,在上述系统中,所述系统还包括信息分别与所述导播终端与所述编码终端通信的消息传递服务器;

所述导播终端执行远程调用函数,通过远程过程调用协议向所述消息传递服务器发送远程调用请求,所述远程调用函数中包括需要调用的所述编码终端中的视频接收服务、开始播出服务或停止播出服务;

所述消息传递服务器将所述调用请求转发至所述编码终端,调用所述视频接收服务、开始播出服务或停止播出服务。

相对于现有技术而言,本发明具有以下有益效果:

本发明提供的视频播出方法及系统,通过分布式的设计将视频播出过程中对多路视频的显示及编码播出工作分离到不同的执行终端上,如此,使得视频播出系统可以在不同终端上协调运行,解决的播出系统运行于同一终端时的性能瓶颈问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的视频播出系统的示意图之一;

图2为本发明实施例提供的视频播出方法的步骤流程图之一;

图3为本发明实施例提供的视频播出系统的示意图之二;

图4为本发明实施例提供的视频播出方法的步骤流程示之二。

图标:10-视频播出系统;100-导播终端;200-编码终端;300-消息传递服务器;400-网络。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

请参照图1,图1是本发明较佳实施例提供的视频播出系统10,所述系统包括导播终端100及编码终端200,所述导播终端100可以与所述编码终端200通过网络400进行通信,在本实施中,所述网络400可以为无线网或有线网。

所述导播终端100用于显示至少用于播出的一路视频源,并用于响应用户操作,将用户选中的视频源作为播出的视频源。所述编码终端200用于将所述导播终端100选中的视频源进行编码播出。

在本实施例中,所述导播终端100可以为,但不仅限于,服务器、个人电脑(personalcomputer,pc)、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。

所述导播终端100可以括用于显示所述至少一路视频源的显示设备及用于接收用户操作输入设备。其中,所述显示设备可以包括显示器、投影仪,所述输入设备可以包括键盘、鼠标等;所述显示设备与所述输入设备也可以集成为触摸屏的形式。

请参照图2,图2为应用于图1所示视频播出系统10的一种视频播出方法,以下将对所述方法包括各个步骤进行详细阐述。

步骤s110,所述导播终端100提供视频显示界面,用于显示至少一路视频源。

所述导播终端100可以通过所述显示设备对所述至少一路视频源进行显示。优选地,在本实施例中,所述视频源可以为直播视频源。

步骤s120,所述导播终端100响应用户选择操作,将被用户选中的视频源对应的视频流数据发送至所述编码终端200。

在本实施例中,所述导播终端100可以通过所述输入设备接收用户的选择操作,将用户选中的视频源作为播出的视频源,并将该视频源对应的视频流数据发送至所述编码终端200。

可选地,在本实施例中,所述编码终端200中包括用于接收视频流数据的视频接收服务。所述导播终端100通过远程过程调用协议(remoteprocedurecallprotocol,rpc)调用所述编码终端200的视频接收服务,将所述视频流数据发送至所述编码终端200的视频接收服务的接口。

由于所述导播终端100与所述编码终端200为不同的电子终端,故所述编码终端200在调用所述编码终端200的视频接收服务时需要通过所述远程过程调用协议。

进一步地,由于所述编码终端200为远程过程调用协议的客户端类型,所述导播终端100无法直接调用所述编码终端200中的服务。故在本实施例中,请参照图3,所述视频播出系统10还包括用于在所述导播终端100与所述编码终端200之间进行消息传递的消息传递服务器300。

其中,所述导播终端100作为一个客户端同信息消息传递服务器300之间建立一个tcp连接,所述编码终端200同样作为一个客户端与所述消息传递服务器300之间也建立一个tcp连接,这样所述编码终端200同所述导播终端100之间进行消息传输可以通过利用所述消息传递服务器300进行中转。

具体地,在本实施例中,先通过在所述消息传递服务器300中建立远程过程调用协议服务,并传入所述消息传递服务器300的ip地址及选定的端口。

然后分别在所述导播终端100与所述编码终端200中建立远程过程调用协议的客户端,并传入所述消息传递服务器300的ip地址及使用的端口,以建立所述导播终端100及所述编码终端200与所述消息传递服务器300的连接。

建立连接后,在所述导播终端100中执行注册函数,将所述视频接收服务注册到远程过程调用协议服务函数的列表中,在本实施例中,可以在所述导播终端100中通过rpcregisterprocedure(“on_demux_packet”)注册所述视频接收服务,其中,on_demux_packet为所述视频接收服务。

然后,在所述消息传递服务器300中执行函数,将所述视频接收服务注册到远程过程调用协议服务函数的列表中,使所述消息传递服务器300可以转发所述视频接收服务的请求,在本实施例中,可以在所述消息传递服务器300中通过rpcregisterprocedureintoserver(“on_demux_packet”)注册所述视频接收服务。

完成上述注册步骤后,所述导播终端100便可通过远程过程调用协议对所述编码终端200的视频接收服务进行调用。

具体地,在将所述视频流数据发送给所述编码终端200时,所述导播终端100先获取被选中的视频源对应的视频流数据。

例如,在本实施例中,所述导播终端100为了能够获取到被选中播出的视频源对应的视频流未被解码之前的数据,调用adddecodinglistener方法将一个imediadecodinglistener(解码过程观察者)接口注册到当前视频源中,通过该接口的onbeforedecodepacket回调方法可以获取到当前视频源对应的视频流数据。

然后,执行远程调用函数rpccallprocedure(“on_demux_packet”),通过远程过程调用协议向所述消息传递服务器300发送远程调用请求,所述远程调用函数中包括需要调用的所述编码终端200中的视频接收服务。

例如,在本实施例中,通过之前步骤注册的imediadecodinglistener接口,所述视频流数据在播放过程中会进入到onbeforedecodepacket函数中,然后在该函数中调用远程调用函数rpccallprocedure(“on_demux_packet”)将视频流数据发送给所述编码终端200对应的视频接收服务的接口。

所述消息传递服务器300将所述调用请求转发至所述编码终端200,调用所述视频接收服务,使所述编码终端200接收所述导播终端100发送的视频流数据。

步骤s130,所述编码终端200对接收到的视频流数据进行编码播出。

在本实施例中,所述编码终端200通过视频接收服务的接口接收到所述视频流数据,将该视频流数据添加到解码队列中进行解码,然后重新编码后进行播出。

基于上述设计,本实施例提供的方法,通过分布式的设计将视频播出过程中对多路视频的显示及编码播出工作分离到不同的执行终端上,如此,使得视频播出系统10可以在不同终端上协调运行,解决的播出系统运行于同一终端时的性能瓶颈问题。

进一步,为了方便对视频播出的控制,请参照图4,所述方法还可以包括步骤s210及步骤s220。

步骤s210,所述导播终端100执行远程调用函数,通过远程过程调用协议向所述消息传递服务器300发送远程调用请求,所述远程调用函数中包括需要调用的所述编码终端200中的开始播出服务或停止播出服务。

在本实施例中,预先在所述编码终端200及所述消息传递服务器300中注册所述开始播出服务或停止播出服务。

例如,预先在所述导播终端100中执行注册函数,将所述开始播出服务或所述停止播出服务注册到远程过程调用协议服务函数的列表中。例如,可以在所述导播终端100中通过rpcregisterprocedure(“begin_broadcast”)函数注册所述开始播出服务,其中,begin_broadcast为所述开始播出服务;可以在所述导播终端100中通过rpcregisterprocedure(“stop_broadcast”)函数注册所述停止播出服务,其中,stop_broadcast为所述停止播出服务。

并预先在所述消息传递服务器300中执行注册函数,将所述注册所述开始播出服务或所述停止播出服务注册到远程过程调用协议服务函数的列表中,以使所述消息传递服务器300可以转发所述开始播出服务或停止播出服务的请求。在本实施例中,可以在所述消息传递服务器300中通过rpcregisterprocedure(“begin_broadcast”)函数注册所述开始播出服务;可以在所述消息传递服务器300中通过rpcregisterprocedure(“stop_broadcast”)函数注册所述停止播出服务。

上述注册完成后,所述导播终端100可以通过远程过程调用协议调用所述编码终端200的开始播出服务或停止播出服务。

例如,所述导播终端100调用rpccallprocedure(“begin_broadcast”)函数,通知所述编码终端200进行直播。

或者,所述导播终端100调用rpccallprocedure(“stop_broadcast”)函数,通知所述编码终端200结束直播

步骤s220,所述消息传递服务器300将所述调用请求转发至所述编码终端200,调用所述开始播出服务或停止播出服务,使所述编码终端200开始或停止对接收到的视频流数据进行编码播出。

例如,所述编码终端200在begin_broadcast函数中执行liveencoder(视频播出底层模块)的set_broadcast_enable(true)函数开始视频播出。

或者,所述编码终端200在stop_broadcast函数中执行liveencoder的set_broadcast_enable(false)函数停止视频播出。

基于上述设计,所述导播终端100可以通过远程过程调用协议对所述编码终端200的开始播出服务或停止播出服务进行调用,可以方便地对视频播出进行控制。

综上所述,本发明提供的视频播出方法及系统,通过分布式的设计将视频播出过程中对多路视频的显示及编码播出工作分离到不同的执行终端上,通过远程过程调用协议进行视频流的传输及视频的播出控制,如此,使得视频播出系统10可以在不同终端上协调运行,解决的播出系统运行于同一终端时的性能瓶颈问题。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

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

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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