一种视频处理方法、装置、电子设备和存储介质与流程

文档序号:15925298发布日期:2018-11-14 01:04阅读:126来源:国知局

本发明涉及视频处理技术领域,特别是涉及一种视频处理方法和装置、电子设备以及计算机可读存储介质。

背景技术

当前,随着视联网业务在全国范围内的普及发展,视联网高清视联交互技术在政府部门已经其它行业中发挥着举足轻重的作用。视联网采用全球最先进的visionvera实时高清视频交换技术,实现了目前互联网无法实现的全网高清视频实时传输。视联网平台将高清视频会议、视频监控、远程培训、智能化监控分析、应急指挥、视频电话、现场直播、电视邮件、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过多种终端设备实现高清品质视频通信实时互联互通。

目前视联网采用统一管理平台对用户调看视频请求进行处理,由于统一管理平台采用一对一的模式,且转发视频流数是有限的,当在视频使用高峰期时,需要处理的视频流数量会超过上线,超出部分不能进行正常的转发,则会造成拥堵、丢包、花屏、卡顿等性能低下的问题。



技术实现要素:

本发明提供了一种视频处理方法、装置、电子设备和计算机刻度存储介质,以解决现有技术中使用一对一的模型造成不能及时对视频流进行处理的问题。

为了解决上述问题,本发明公开了一种视频处理方法,所述方法包括:在线程池中创建多条线程;当同时接收到多个客户端发送的视频调看请求时,获取各视频调看请求对应的视频流;从所述线程池中查找休眠线程,采用所述休眠线程对各所述视频流进行处理;将处理后的各视频流发送至对应的客户端。

优选地,所述采用所述休眠线程对各所述视频流进行处理的步骤包括:唤醒第一休眠线程,通过被唤醒的休眠线程对预设数量的视频流进行处理;当所述被唤醒的休眠线程饱和后,唤醒第二休眠线程,并返回执行所述通过被唤醒的休眠线程对预设数量的视频流进行处理的步骤。

优选地,通过线程对视频流进行处理的步骤包括:针对每个v2v格式视频流,将所述视频流通过线程转换为rpt格式的视频流。

优选地,在所述将处理后的各视频流发送至对应的客户端的步骤之后,所述方法还包括:判断是否存在待处理的视频流;若否,则所述线程设置为休眠线程。

为了解决上述问题,本发明还公开了一种视频处理装置,所述装置包括:线程创建模块,用于在线程池中创建多条线程;获取模块,用于当同时接收到多个客户端发送的视频调看请求时,获取各视频调看请求对应的视频流;查找模块,用于从所述线程池中查找休眠线程,采用所述休眠线程对各所述视频流进行处理;发送模块,用于将处理后的各视频流发送至对应的客户端。

优选地,所述查找模块包括:第一唤醒子模块,用于唤醒第一休眠线程,通过被唤醒的休眠线程对预设数量的视频流进行处理;第二唤醒子模块,用于当所述被唤醒的休眠线程饱和后,唤醒第二休眠线程,并返回执行所述通过被唤醒的休眠线程对预设数量的视频流进行处理的步骤。

优选地,通过线程对视频流进行处理包括:针对每个v2v格式视频流,将所述视频流通过线程转换为rpt格式的视频流。

优选地,所述装置还包括:判断模块,用于在所述发送模块将处理后的各视频流发送至对应的客户端的步骤之后,判断是否存在待处理的视频流;设置模块,用于当所述判断模块的判断结果为否,则所述线程设置为休眠线程。

为了解决上述问题,本发明还公开了一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的视频处理程序,所述视频处理程序被所述处理器执行时实现所述的视频处理方法的步骤。

为了解决上述问题,本发明还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有视频处理程序,所述视频处理程序被处理器执行时实现所述的视频处理方法的步骤。

与现有技术相比,本发明具有以下优点:

本发明实施例提供的视频处理方案,通过线程池,事先创建好的视频流处理线程,可以大大降低当视频流到达时现创建线程对资源的开销。此外,本发明实施例提供的视频处理方案,当同时接收到多个客户端发送的视频调看请求时,采用休眠线程对各视频流进行处理,将处理后的各视频流发送至对应的客户端,而不局限于使用视频流对应的特定线程进行视频流发送。相比现有技术采用一对一的模型,本发明实施例采用多对多的模型对视频流进行处理,可以在视频使用高峰期时高效的为客户推送视频流,用户可以调看清晰流畅的视频。

附图说明

图1是本发明实施例一的一种视频处理方法的步骤流程图;

图2是本发明实施例二的一种视频处理方法的步骤流程图;

图3是本发明实施例三的一种视频处理装置的结构框图;

图4是本发明实施例四的一种视频处理装置的结构框图;

图5是本发明实施例五的一种电子设备的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一

参照图1,示出了本发明实施例一的一种视频处理方法的步骤流程图。

本发明实施例提供的视频处理方法包括以下步骤:

步骤101:在线程池中创建多条线程。

线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池中所管理的线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果线程池中所有线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。

本发明实施例中,在服务器初始化时创建一系列线程,当待处理视频流缓冲区有视频流到达,直接调用预先创建好的线程处理视频流即可,无需再花费时间、资源现创建线程。

步骤102:当同时接收到多个客户端发送的视频调看请求时,获取各视频调看请求对应的视频流。

步骤103:从线程池中查找休眠线程,采用休眠线程对各视频流进行处理。

当接收到用户发送的视频调看请求时,先获取各个视频调看请求对应的视频流,再从线程池中查找休眠线程。

休眠线程为处于休眠状态线程,采用休眠线程对各个视频流进行处理,可以在视频使用高峰期时,高效的为客户推送视频流,同时解决了采用现有模型对视频流处理造成的拥堵、丢包、花屏、卡顿等问题。

另一种可行性的方案为:当用户接收到用户发送的视频调看请求时,获取各个视频调看请求的视频流后,从线程池中查找未饱和的线程,例如:当一个线程可以处理数量为5的视频流时,当前处理的视频流数量为3,则该线程处于未饱和状态,采用未饱和的线程对视频流进行处理,当该视频流处于饱和状态时,则再采用休眠的线程对视频流继续进行处理。

需要说明的是,本发明实施例对采用哪种线程对视频流进行处理不作具体限制。

步骤104:将处理后的各视频流发送至对应的客户端。

本发明实施例提供的视频处理方法,通过线程池,事先创建好的视频流处理线程,可以大大降低当视频流到达时现创建线程对资源的开销。此外,本发明实施例提供的视频处理方案,当同时接收到多个客户端发送的视频调看请求时,采用休眠线程对各视频流进行处理,将处理后的各视频流发送至对应的客户端,而不局限于使用视频流对应的特定线程进行视频流发送。相比现有技术采用一对一的模型,本发明实施例采用多对多的模型对视频流进行处理,可以在视频使用高峰期时高效的为客户推送视频流,用户可以调看清晰流畅的视频。

实施例二

参照图2,示出了本发明实施例二的一种视频处理方法的步骤流程图。

本发明实施例提供的视频处理方法包括以下步骤:

步骤201:在线程池中创建多条线程。

本发明实施例中,服务器初始化过程中预先在线程池中创建一系列线程,所创建的线程数量可以由本领域技术人员根据实际需求进行设置,本发明实施例中对此不做具体限制。

所创建的线程与视频流并无固定的对应关系,所创建的线程在空闲、或者未饱和状态下,可以处理任意待处理的视频流。

通过线程池事先创建好的视频流处理线程,当待处理视频流缓冲区有视频流到达,直接调用预先创建好的线程处理视频流即可,无需再花费时间、资源现创建线程。

步骤202:当同时接收到多个客户端发送的视频调看请求时,获取各视频调看请求对应的视频流。

每个视频调看请求对应一个视频,每个视频对应一个视频流。

步骤203:从线程池中查找休眠线程,唤醒第一休眠线程。

其中,第一休眠线程可以为所查找到的休眠线程中的任意一个。

步骤204:通过被唤醒的休眠线程对预设数量的视频流进行处理。

当接收到客户端发送的视频调看请求时,获取各视频调看请求对应的视频流,从线程池中查找休眠线程,并依据待处理视频流的数量、各休眠线程处理视频流的上限值,唤醒一定数量的休眠线程。当唤醒一个休眠线程时,由于线程处理视频流的数量是有上限的,因此该线程仅可以对预设数量的视频流进行处理,需要说明的是,本领域技术人员可以根据实际情况对预设数量进行设置,本发明实施例中对此不作具体限制。

相比现有技术中,由于采用的处理方式为1对1的模式,即某一线程只能处理一种类型的视频流,对于获取到的其他类型的视频流,则只能采用其他相应的线程进行处理。本发明实施例采用的处理方式为多对多的模式,即某一线程可以处理多种类型的视频流,减少了当接收到某一类型的视频流时,而处理该视频流的线程处于饱和状态,需要等待至处理完成后再对其他视频流处理的情况,节省了等待的时间,可以高效的为用户推送视频流。

步骤205:当被唤醒的休眠线程饱和后,唤醒第二休眠线程,并返回执行通过被唤醒的休眠线程对预设数量的视频流进行处理。

当被唤醒的休眠线程饱和后、且依然存在待处理的视频流,则继续唤醒第二休眠线程,为第二休眠线程分配待处理的视频流。重复唤醒休眠线程,并为唤醒后的线程分配待处理的视频流,直至全部视频流进被分配完成或全部休眠线程均被唤醒且饱和。

需要说明的是,单个线程对单个视频流的处理时,针对每个v2v格式视频流,将视频流通过线程转换为rpt格式的视频流。

步骤206:将处理后的各视频流发送至对应的客户端。

步骤207:判断是否存在待处理的视频流。

当每个线程完成视频流处理时,判断是否存在待处理的视频流,若是,则继续为所述线程分配视频流进行处理;若否,则执行步骤208。

步骤208:若否,则线程设置为休眠线程。

当没有视频流需要处理时,并不销毁线程冲中的处理线程,而是将其设置为休眠状态,线程处理休眠状态时并不会占用cpu,当有视频流倒到线程中的线程才会被唤醒。

将本发明实施例提供的视频处理方案部署到视联网统一管理平台服务器上,在多台pc机上虚拟出数千个客户终端,接收发送的视频调看请求,向发来请求的客户端同时并发推送视频流,并观察服务器cpu使用率、和内存使用率,可以看到服务器cpu使用率和内存使用率都非常低,视联网视频转发服务器依然非常轻松毫无压力。

本发明实施例提供的视频处理方法,通过线程池,事先创建好的视频流处理线程,可以大大降低当视频流到达时现创建线程对资源的开销。此外,本发明实施例提供的视频处理方案,当同时接收到多个客户端发送的视频调看请求时,采用休眠线程对各视频流进行处理,将处理后的各视频流发送至对应的客户端,而不局限于使用视频流对应的特定线程进行视频流发送。相比现有技术采用一对一的模型,本发明实施例采用多对多的模型对视频流进行处理,可以在视频使用高峰期时高效的为客户推送视频流,用户可以调看清晰流畅的视频。

实施例三

参照图3,示出了本发明实施例三的一种视频处理装置的结构框图。

本发明实施例提供的视频处理装置包括:线程创建模块301,用于在线程池中创建多条线程;获取模块302,用于当同时接收到多个客户端发送的视频调看请求时,获取各视频调看请求对应的视频流;查找模块303,用于从所述线程池中查找休眠线程,采用所述休眠线程对各所述视频流进行处理;发送模块304,用于将处理后的各视频流发送至对应的客户端。

本发明实施例提供的视频处理装置,通过线程池,事先创建好的视频流处理线程,可以大大降低当视频流到达时现创建线程对资源的开销。此外,本发明实施例提供的视频处理方案,当同时接收到多个客户端发送的视频调看请求时,采用休眠线程对各视频流进行处理,将处理后的各视频流发送至对应的客户端,而不局限于使用视频流对应的特定线程进行视频流发送。相比现有技术采用一对一的模型,本发明实施例采用多对多的模型对视频流进行处理,可以在视频使用高峰期时高效的为客户推送视频流,用户可以调看清晰流畅的视频。

实施例四

参照图4,示出了本发明实施例四的一种视频处理装置的结构框图。

本发明实施例提供的视频处理装置包括:线程创建模块401,用于在线程池中创建多条线程;获取模块402,用于当同时接收到多个客户端发送的视频调看请求时,获取各视频调看请求对应的视频流;查找模块403,用于从所述线程池中查找休眠线程,采用所述休眠线程对各所述视频流进行处理;发送模块404,用于将处理后的各视频流发送至对应的客户端。

优选地,所述查找模块403包括:第一唤醒子模块4031,用于唤醒第一休眠线程,通过被唤醒的休眠线程对预设数量的视频流进行处理;第二唤醒子模块4032,用于当所述被唤醒的休眠线程饱和后,唤醒第二休眠线程,并返回执行所述通过被唤醒的休眠线程对预设数量的视频流进行处理的步骤。

优选地,通过线程对视频流进行处理包括:针对每个v2v格式视频流,将所述视频流通过线程转换为rpt格式的视频流。

优选地,所述装置还包括:判断模块405,用于在所述发送模块将处理后的各视频流发送至对应的客户端的步骤之后,判断是否存在待处理的视频流;设置模块406,用于当所述判断模块的判断结果为否,则所述线程设置为休眠线程。

本发明实施例提供的视频处理装置,通过线程池,事先创建好的视频流处理线程,可以大大降低当视频流到达时现创建线程对资源的开销。此外,本发明实施例提供的视频处理方案,当同时接收到多个客户端发送的视频调看请求时,采用休眠线程对各视频流进行处理,将处理后的各视频流发送至对应的客户端,而不局限于使用视频流对应的特定线程进行视频流发送。相比现有技术采用一对一的模型,本发明实施例采用多对多的模型对视频流进行处理,可以在视频使用高峰期时高效的为客户推送视频流,用户可以调看清晰流畅的视频。

实施例五

参照图5,示出了本发明实施例五的一种电子设备的结构框图。

图5是根据一示例性实施例示出的一种用于视频处理的电子设备600的结构框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。本发明实施例中,电子设备即计算机。

参照图5,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(i/o)的接口612,传感器组件614,以及通信组件616。

处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。

存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。

多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mic),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。

i/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件616被配置为便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,电子设备600可以是计算机,也可以是被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现的,用于执行上述方法的设备。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本发明各实施例中所示的视频处理方法。

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

以上对本发明所提供的一种视频处理方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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