公开/公告号CN106547632A
专利类型发明专利
公开/公告日2017-03-29
原文格式PDF
申请/专利权人 广州海昇计算机科技有限公司;
申请/专利号CN201610884825.3
申请日2016-10-09
分类号G06F9/54(20060101);H04N5/222(20060101);
代理机构44205 广州嘉权专利商标事务所有限公司;
代理人胡辉;郑泽萍
地址 510635 广东省广州市高新技术产业开发区科学城广州国际企业孵化器孵化楼(D)区D403房
入库时间 2023-06-19 01:51:07
法律状态公告日
法律状态信息
法律状态
2022-08-19
专利权质押合同登记的注销 IPC(主分类):G06F 9/54 授权公告日:20191210 申请日:20161009 专利号:ZL2016108848253 登记号:Y2021440000204 出质人:广州海昇计算机科技有限公司 质权人:广州银行股份有限公司环市东支行 解除日:20220803
专利权质押合同登记的生效、变更及注销
2019-12-10
授权
授权
2017-04-26
实质审查的生效 IPC(主分类):G06F9/54 申请日:20161009
实质审查的生效
2017-03-29
公开
公开
技术领域
本发明涉及导播技术领域,特别是涉及一种基于嵌入式多路高清录播设备的导播控制方法及系统。
背景技术
名词解释:
QT:跨平台的C++图形用户界面应用程序框架;
API:Application Programming Interface,应用程序编程接口;
SOC:System on Chip的缩写,称为芯片级系统;
VGA:(Video Graphics Array)视频图形阵列;
HDMI:(High Definition Multimedia Interface)高清晰度多媒体接口;
目前市场上大多数录播设备的控制方法主要有:基于网页端远程导播控制和导播键盘本地控制两种。基于网页端的远程导播控制方法,主要是通过HTTP协议进行参数的设置以及修改,通过rtsp以及rtmp等协议进行传输视频流信息。而基于本地导播的导播键盘控制的控制方法,主要是通过串口通信的方式,直接与导播设备进行连接,通过导播键盘按钮,进行导播。这两种控制方式都存在明显的不足:第一种方式只有在有网络稳定的情况下才有效,当用户使用网络进行http协议传输修改参数时,会有一定的网络延时,另外,各路视频流的传输也需要一定的带宽,而且,网络的不稳定会造成视频数据的丢失以及视频延时播放,这无疑会影响用户的使用效果;第二种方式主要是通过串口线与导播设备进行连接。由于导播键盘的按键数量有限,控制单一,难以完美地实现导播界面的复杂控制,很多参数的设置(比如字幕的设置等)很难在导播键盘实现。总的来说,目前的导播控制方法存在易受网络延时影响或者控制方式单一难以实现复杂控制的缺陷。
发明内容
为了解决上述的技术问题,本发明的目的是提供一种基于嵌入式多路高清录播设备的导播控制方法,本发明的另一目的是提供一种基于嵌入式多路高清录播设备的导播控制系统。
本发明解决其技术问题所采用的技术方案是:
一种基于嵌入式多路高清录播设备的导播控制方法,包括以下步骤:
S1、建立多路高清录播设备对应的QT导播控制方案;
S2、QT进程往共享内存写入数据从而生成待传递的消息;
S3、QT进程发送消息到消息队列中;
S4、视频处理进程循环读取消息队列,获取QT进程发送的消息;
S5、视频处理进程响应于所获取的消息,执行相应的指令;
S6、QT进程读取共享内存消息,显示视频处理进程的相关信息;
其中,所述消息包括写入共享内存的数据的偏移位置以及数据长度。
进一步,所述步骤S1,包括:
S11、初始化QT导播控制界面,将其所在图形层输出到录播设备的视频输出设备,并初始化用于进行数据传输的消息队列与共享内存;
S12、对录播设备进行始化,并建立与QT导播控制界面的API连接,使得QT导播控制界面与录播设备通过消息接口进行数据传输;
S13、将QT导播控制界面的背景设置为透明。
进一步,所述步骤S2,其具体为:
QT进程往共享内存写入数据从而生成待传递的消息,在写入数据的过程中添加信号锁,并在数据写入完毕后,释放信号锁。
进一步,所述步骤S4,其具体为:
视频处理进程的子线程循环读取消息队列,获取共享内存的信息,并比对共享内存的信息是否发生改变,若是,则通过信号和槽的传输方式,获取该发生改变的消息作为QT进程发送的消息,发送到视频处理进程的主线程。
进一步,所述步骤S5,其具体为:
视频处理进程的主线程响应所获取的消息,解析获得其数据的偏移位置和数据长度后,在对应位置添加信号锁,根据数据长度,从共享内存中读取数据,并在读取完毕后,释放信号锁,从而获得QT进程传输的数据,执行对应的指令。
进一步,所述步骤S6,其具体为:
QT子线程定时读取共享内存的数据,获取当前状态的相应参数,并在判断获取的参数发生变化时,通知QT主线程刷新界面,显示当前状态。
本发明解决其技术问题所采用的另一技术方案是:
一种基于嵌入式多路高清录播设备的导播控制系统,包括:
用于建立多路高清录播设备对应的QT导播控制方案的QT建立模块;
用于QT进程往共享内存写入数据从而生成待传递的消息的生成模块;
用于QT进程发送消息到消息队列中的发送模块;
用于视频处理进程循环读取消息队列,获取QT进程发送的消息的读取模块;
用于视频处理进程响应于所获取的消息,执行相应的指令的处理模块;
用于QT进程读取共享内存消息,显示视频处理进程的相关信息的响应模块;
其中,所述消息包括写入共享内存的数据的偏移位置以及数据长度。
进一步,所述QT建立模块,包括:
第一子模块,用于初始化QT导播控制界面,将其所在图形层输出到录播设备的视频输出设备,并初始化用于进行数据传输的消息队列与共享内存;
第二子模块,用于对录播设备进行始化,并建立与QT导播控制界面的API连接,使得QT导播控制界面与录播设备通过消息接口进行数据传输;
第三子模块,用于将QT导播控制界面的背景设置为透明。
进一步,所述生成模块,具体用于:
QT进程往共享内存写入数据从而生成待传递的消息,在写入数据的过程中添加信号锁,并在数据写入完毕后,释放信号锁。
进一步,所述读取模块,具体用于:
视频处理进程的子线程循环读取消息队列,获取共享内存的信息,并比对共享内存的信息是否发生改变,若是,则通过信号和槽的传输方式,获取该发生改变的消息作为QT进程发送的消息,发送到视频处理进程的主线程。
进一步,所述处理模块,具体用于:
视频处理进程的主线程响应所获取的消息,解析获得其数据的偏移位置和数据长度后,在对应位置添加信号锁,根据数据长度,从共享内存中读取数据,并在读取完毕后,释放信号锁,从而获得QT进程传输的数据,执行对应的指令。
本发明的有益效果是:本发明的一种基于嵌入式多路高清录播设备的导播控制方法,包括以下步骤:S1、建立多路高清录播设备对应的QT导播控制方案;S2、QT进程往共享内存写入数据从而生成待传递的消息;S3、QT进程发送消息到消息队列中;S4、视频处理进程循环读取消息队列,获取QT进程发送的消息;S5、视频处理进程响应于所获取的消息,执行相应的指令;其中,消息包括写入共享内存的数据的偏移位置以及数据长度。本方法可以克服网络对录播设备设置的延时影响,而且可以全方位导播控制,操作方便。
本发明的另一有益效果是:一种基于嵌入式多路高清录播设备的导播控制系统,包括:用于建立多路高清录播设备对应的QT导播控制方案的QT建立模块;用于QT进程往共享内存写入数据从而生成待传递的消息的生成模块;用于QT进程发送消息到消息队列中的发送模块;用于视频处理进程循环读取消息队列,获取QT进程发送的消息的读取模块;用于视频处理进程响应于所获取的消息,执行相应的指令的处理模块;其中,消息包括写入共享内存的数据的偏移位置以及数据长度。本系统可以克服网络对录播设备设置的延时影响,而且可以全方位导播控制,操作方便。
附图说明
下面结合附图和实施例对本发明作进一步说明。
图1是本发明的一种基于嵌入式多路高清录播设备的导播控制方法的流程图图;
图2是本发明的一种基于嵌入式多路高清录播设备的导播控制系统的结构框图;
图3是本发明的一种基于嵌入式多路高清录播设备的导播控制方法的具体实例中建立的QT导播的实现框图。
具体实施方式
参照图1,本发明提供了一种基于嵌入式多路高清录播设备的导播控制方法,包括以下步骤:
S1、建立多路高清录播设备对应的QT导播控制方案;
S2、QT进程往共享内存写入数据从而生成待传递的消息;
S3、QT进程发送消息到消息队列中;
S4、视频处理进程循环读取消息队列,获取QT进程发送的消息;
S5、视频处理进程响应于所获取的消息,执行相应的指令;
S6、QT进程读取共享内存消息,显示视频处理进程的相关信息;
其中,所述消息包括写入共享内存的数据的偏移位置以及数据长度。
进一步作为优选的实施方式,所述步骤S1,包括:
S11、初始化QT导播控制界面,将其所在图形层输出到录播设备的视频输出设备,并初始化用于进行数据传输的消息队列与共享内存;
S12、对录播设备进行始化,并建立与QT导播控制界面的API连接,使得QT导播控制界面与录播设备通过消息接口进行数据传输;
S13、将QT导播控制界面的背景设置为透明。
进一步作为优选的实施方式,所述步骤S2,其具体为:
QT进程往共享内存写入数据从而生成待传递的消息,在写入数据的过程中添加信号锁,并在数据写入完毕后,释放信号锁。
进一步作为优选的实施方式,所述步骤S4,其具体为:
视频处理进程的子线程循环读取消息队列,获取共享内存的信息,并比对共享内存的信息是否发生改变,若是,则通过信号和槽的传输方式,获取该发生改变的消息作为QT进程发送的消息,发送到视频处理进程的主线程。
进一步作为优选的实施方式,所述步骤S5,其具体为:
视频处理进程的主线程响应所获取的消息,解析获得其数据的偏移位置和数据长度后,在对应位置添加信号锁,根据数据长度,从共享内存中读取数据,并在读取完毕后,释放信号锁,从而获得QT进程传输的数据,执行对应的指令。
进一步作为优选的实施方式,所述步骤S6,其具体为:
QT子线程定时读取共享内存的数据,获取当前状态的相应参数,并在判断获取的参数发生变化时,通知QT主线程刷新界面,显示当前状态。
参照图2,本发明还提供了一种基于嵌入式多路高清录播设备的导播控制系统,包括:
用于建立多路高清录播设备对应的QT导播控制方案的QT建立模块;
用于QT进程往共享内存写入数据从而生成待传递的消息的生成模块;
用于QT进程发送消息到消息队列中的发送模块;
用于视频处理进程循环读取消息队列,获取QT进程发送的消息的读取模块;
用于视频处理进程响应于所获取的消息,执行相应的指令的处理模块;
用于QT进程读取共享内存消息,显示视频处理进程的相关信息的响应模块;
其中,所述消息包括写入共享内存的数据的偏移位置以及数据长度。
进一步作为优选的实施方式,所述QT建立模块,包括:
第一子模块,用于初始化QT导播控制界面,将其所在图形层输出到录播设备的视频输出设备,并初始化用于进行数据传输的消息队列与共享内存;
第二子模块,用于对录播设备进行始化,并建立与QT导播控制界面的API连接,使得QT导播控制界面与录播设备通过消息接口进行数据传输;
第三子模块,用于将QT导播控制界面的背景设置为透明。
进一步作为优选的实施方式,所述生成模块,具体用于:
QT进程往共享内存写入数据从而生成待传递的消息,在写入数据的过程中添加信号锁,并在数据写入完毕后,释放信号锁。
进一步作为优选的实施方式,所述读取模块,具体用于:
视频处理进程的子线程循环读取消息队列,获取共享内存的信息,并比对共享内存的信息是否发生改变,若是,则通过信号和槽的传输方式,获取该发生改变的消息作为QT进程发送的消息,发送到视频处理进程的主线程。
进一步作为优选的实施方式,所述处理模块,具体用于:
视频处理进程的主线程响应所获取的消息,解析获得其数据的偏移位置和数据长度后,在对应位置添加信号锁,根据数据长度,从共享内存中读取数据,并在读取完毕后,释放信号锁,从而获得QT进程传输的数据,执行对应的指令。
进一步作为优选的实施方式,所述响应模块,具体用于:
QT子线程定时读取共享内存的数据,获取当前状态的相应参数,并在判断获取的参数发生变化时,通知QT主线程刷新界面,显示当前状态。
以下结合具体实施例对本发明做详细说明。
参照图1,一种基于嵌入式多路高清录播设备的导播控制方法,包括以下步骤:
S1、建立多路高清录播设备对应的QT导播控制方案;
S2、QT进程往共享内存写入数据从而生成待传递的消息;
S3、QT进程发送消息到消息队列中;
S4、视频处理进程循环读取消息队列,获取QT进程发送的消息;
S5、视频处理进程响应于所获取的消息,执行相应的指令;
S6、QT进程响应于视频处理进程执行的指令,读取共享内存消息,显示视频处理进程的相关信息;
其中,消息包括写入共享内存的数据的偏移位置以及数据长度。
图3中展示了QT导播的实现框图,其实现原理如下:
第一,初始化QT界面就是将图形层(即QT图形导播界面所在层)绑定到录播设备的高清输出设备;第二,对录播设备进行初始化包括视频初始化、音频初始化、数据采集初始化和数据传输初始化,视频初始化是指将录播设备的视频输出显示绑定到视频输出设备;第三,QT导播控制界面设置为背景透明,使得可以透过图形层观看到视频层显示的多路视频;第四,QT控制界面的命令参数通过消息接口进行传输,与视频显示模块进行通信,实现视频相关参数的设置修改,完成导播功能。
对应的,本实施例中,步骤S1,包括:
S11、初始化QT导播控制界面,将其所在图形层输出到录播设备的视频输出设备,并初始化用于进行数据传输的消息队列与共享内存;
S12、对录播设备进行始化,并建立与QT导播控制界面的API连接,使得QT导播控制界面与录播设备通过消息接口进行数据传输;
S13、将QT导播控制界面的背景设置为透明。
本实施例中,为了在写入数据的过程中,避免资源竞争引起死锁,步骤S2具体为:
QT进程往共享内存写入数据从而生成待传递的消息,在写入数据的过程中添加信号锁,并在数据写入完毕后,释放信号锁。
步骤S4具体为:视频处理进程的子线程循环读取消息队列,获取共享内存的信息,并比对共享内存的信息是否发生改变,若是,则通过信号和槽的传输方式,获取该发生改变的消息作为QT进程发送的消息,发送到视频处理进程的主线程,通知其修改状态。由于导播控制的主要作用是用作参数的设置以及数据信息的显示,其中共享内存保存了所有参数设置相关的变量值,故访问共享内存对应的位置,就可以获取视频导播的信息。
因此,导播信息的获取以及参数命令的提交都是通过视频处理进程的子线程与共享内存进行获取和修改,而主线程负责的工作则是用于显示导播状态以及更新图形界面对应视频信息状态。由于图形界面是不断绘制的,若主线程频繁地修改会影响导播界面的不稳定,采用本技术方案,将信息的修改工作放在子线程里面,就克服了以上问题。
同样的,为了在读取数据的过程中,避免资源竞争引起死锁,步骤S5具体为:
视频处理进程的主线程响应所获取的消息,解析获得其数据的偏移位置和数据长度后,在对应位置添加信号锁,根据数据长度,从共享内存中读取数据,并在读取完毕后,释放信号锁,从而获得QT进程传输的数据,执行对应的指令。
步骤S6具体为:
QT子线程定时读取共享内存的数据,获取当前状态的相应参数,并在判断获取的参数发生变化时,通知QT主线程刷新界面,显示当前状态。
本发明利用QT的强大绘图能力以及跨平台使用,通过在导播设备搭建QT导播控制界面,具有以下优点:一、导播控制的参数修改设置命名直接通过消息接口发送接收而无需经过网络,克服了网络对系统设置的延时影响;二、借着QT的绘图能力,可以做到全方位导播控制,仅仅需要一个鼠标,就可以完成各种设置。既不用依赖网络,也能完成复杂控制,并且依照用户使用习惯,实现友好控制界面,可以较好的解决网页端远程导播控制延时和本地导播键盘控制方式单一的不足。
由于本发明的一种基于嵌入式多路高清录播设备的导播控制系统是与一种基于嵌入式多路高清录播设备的导播控制方法一一对应的软系统权利要求,其解决技术问题及获得的效果与导播控制方法的一样,所以本申请不在赘述。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。
机译: 具有基于优先级的实时操作系统的嵌入式系统数据库管理设备的并发控制方法
机译: 无线电通信系统,无线电基站,无线电通信终端,无线电通信方法以及用于控制设备的非暂态计算机可读介质嵌入式指令,以实现一种控制方法
机译: 无线电通信系统,无线电基站,无线电通信终端,无线电通信方法以及用于控制设备的非暂态计算机可读介质嵌入式指令,以实现一种控制方法