CN111586488A - 一种视频流处理方法、装置、电子设备及存储介质 - Google Patents
一种视频流处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111586488A CN111586488A CN202010520661.2A CN202010520661A CN111586488A CN 111586488 A CN111586488 A CN 111586488A CN 202010520661 A CN202010520661 A CN 202010520661A CN 111586488 A CN111586488 A CN 111586488A
- Authority
- CN
- China
- Prior art keywords
- video stream
- video
- data
- stream data
- browser
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种视频流处理方法、装置、电子设备及存储介质,该方法包括:使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据;将视频流数据存储至电子设备的内核空间中;将内核空间中的视频流数据拷贝至电子设备的用户空间中;将用户空间中的视频流数据显示在电子设备的浏览器上。在上述的实现过程中,通过调用虚拟摄像头设备的驱动程序接收视频采集设备的流数据作为视频流数据存储至内核空间中,然后直接将获得的视频流数据从存储的内核空间中拷贝至用户空间,以使浏览器可以访问并显示用户空间中的视频流数据,从而有效地减小了视频流被浏览器播放的时延。
Description
技术领域
本申请涉及图像处理和视频处理的技术领域,具体而言,涉及一种视频流处理方法、装置、电子设备及存储介质。
背景技术
流媒体(Streaming Media)是指将媒体文件中的媒体数据压缩后,经过网络分段发送数据,在网络上即时传输媒体数据以使媒体数据被及时使用的一种技术,流媒体技术使得媒体数据的数据包可以像流水一样发送;如果不使用流媒体技术,就必须在使用媒体文件前下载整个媒体文件。
视频流(Video Streaming),又可以称为视频流数据,是指以流媒体的方式进行传输的视频数据,具体例如:视频文件以视频流的方式在网络上传输,以使该视频文件能够被作为一个稳定和连续的流处理,终端设备上的浏览器或浏览器插件能够在整个视频文件被传输完成前显示多媒体数据。
目前在浏览器上播放视频的方法主要是使用流媒体服务器对获得的视频文件进行转码,具体例如:使用摄像头获得的第一编码格式的视频无法在浏览器上播放,可以使用流媒体服务器将第一编码格式的视频转码为浏览器可以播放的第二编码格式的视频流,将转码后的视频流发送给需要播放该视频的终端设备,并由该终端设备上的浏览器来播放该视频。然而在具体的实践过程中发现,上述使用流媒体服务器对获得的视频文件进行转码的方法获得的视频流被浏览器播放的时延较高。
发明内容
本申请实施例的目的在于提供一种视频流处理方法、装置、电子设备及存储介质,用于改善对获得的视频文件进行转码的方法获得的视频流被浏览器播放的时延较高的问题。
本申请实施例提供了一种视频流处理方法,应用于电子设备,包括:使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据;将视频流数据存储至电子设备的内核空间中;将内核空间中的视频流数据拷贝至电子设备的用户空间中;将用户空间中的视频流数据显示在电子设备的浏览器上。在上述的实现过程中,通过调用虚拟摄像头设备的驱动程序接收视频采集设备的流数据作为视频流数据存储至内核空间中,即将视频流数据存储至内核空间的过程包括对视频流数据进行解码的过程,从而使得解码后的视频流数据能够被浏览器播放;然后直接将获得的视频流数据从存储的内核空间中拷贝至用户空间,以使浏览器可以访问并显示用户空间中的视频流数据,从而有效地减小了视频流被浏览器播放的时延。
可选地,在本申请实施例中,使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据,包括:将虚拟摄像头的驱动程序以可加载内核模块的方式注册至内核空间,获得注册后的驱动程序;调用注册后的驱动程序接收视频采集设备的流数据,获得视频流数据。在上述的实现过程中,通过将虚拟摄像头的驱动程序以可加载内核模块的方式注册至内核空间,并调用注册后的驱动程序接收视频采集设备的流数据,获得视频流数据;从而有效地提高了获得视频流数据的速度。
可选地,在本申请实施例中,将视频流数据存储至电子设备的内核空间中,包括:对视频流数据进行缓存和解码,获得解码后的缓存视频流;调用注册后的驱动程序将解码后的缓存视频流存储至电子设备的内核空间。在上述的实现过程中,通过对视频流数据进行缓存和解码,获得解码后的缓存视频流;调用注册后的驱动程序将解码后的缓存视频流存储至电子设备的内核空间;从而有效地提高了将解码后的缓存视频流存储至内核空间的速度。
可选地,在本申请实施例中,将内核空间中的视频流数据拷贝至电子设备的用户空间中,包括:调用浏览器的网页即时通信接口从内核空间读取解码后的缓存视频流;将解码后的缓存视频流存储至用户空间。在上述的实现过程中,通过调用浏览器的网页即时通信接口从内核空间读取解码后的缓存视频流;将解码后的缓存视频流存储至用户空间;将解码后的缓存视频流从内核空间拷贝至用户空间的速度。
可选地,在本申请实施例中,将用户空间中的视频流数据显示在电子设备的浏览器上,包括:判断电子设备的浏览器是否包括预设标签的属性值;若是,则将用户空间中的视频流数据显示在预设标签对应的位置。在上述的实现过程中,若电子设备的浏览器包括预设标签的属性值,则将用户空间中的视频流数据显示在预设标签对应的位置;从而有效地减小了浏览器播放视频流数据的时延。
可选地,在本申请实施例中,在将内核空间中的视频流数据拷贝至电子设备的用户空间中之后,还包括:接收终端设备发送视频请求;根据视频请求向终端设备发送用户空间中的视频流数据。在上述的实现过程中,通过接收终端设备发送视频请求;根据视频请求向终端设备发送用户空间中的视频流数据;从而有效地提高了终端设备获得视频流数据的速度。
可选地,在本申请实施例中,视频流数据为实时流协议的流媒体数据。
本申请实施例还提供了一种视频流处理装置,应用于电子设备,包括:流数据获得模块,用于使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据;流数据存储模块,用于将视频流数据存储至电子设备的内核空间中;流数据拷贝模块,用于将内核空间中的视频流数据拷贝至电子设备的用户空间中;流数据显示模块,用于将用户空间中的视频流数据显示在电子设备的浏览器上。
可选地,在本申请实施例中,流数据获得模块,包括:驱动程序获得模块,用于将虚拟摄像头的驱动程序以可加载内核模块的方式注册至内核空间,获得注册后的驱动程序;驱动程序调用模块,用于调用注册后的驱动程序接收视频采集设备的流数据,获得视频流数据。
可选地,在本申请实施例中,流数据存储模块,包括:数据缓存解码模块,用于对视频流数据进行缓存和解码,获得解码后的缓存视频流;视频流存储模块,用于调用注册后的驱动程序将解码后的缓存视频流存储至电子设备的内核空间。
可选地,在本申请实施例中,流数据拷贝模块,包括:缓存视频读取模块,用于调用浏览器的网页即时通信接口从内核空间读取解码后的缓存视频流;缓存视频存储模块,用于将解码后的缓存视频流存储至用户空间。
可选地,在本申请实施例中,流数据显示模块,包括:属性值判断模块,用于判断电子设备的浏览器是否包括预设标签的属性值;视频流显示模块,用于若电子设备的浏览器包括预设标签的属性值,则将用户空间中的视频流数据显示在预设标签对应的位置。
可选地,在本申请实施例中,视频流处理装置,还包括:视频请求接收模块,用于接收终端设备发送视频请求;视频数据发送模块,用于根据视频请求向终端设备发送用户空间中的视频流数据。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的视频流处理方法的流程示意图;
图2示出的本申请实施例提供的V4L2驱动程序调用的示意图;
图3示出的本申请实施例提供的ffmpeg调用的示意图;
图4示出的本申请实施例提供的提供实时监控服务的流程示意图;
图5示出的本申请实施例提供的视频流处理装置的结构示意图;
图6示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。
在介绍本申请实施例提供的视频流处理方法之前,先介绍本申请实施例所涉及的一些概念:
实时消息协议(Real-Time Messaging Protocol,RTMP),也称实时消息传输协议,是最初由Macromedia为通过互联网在Flash播放器与一个服务端之间传输流媒体音频、视频和数据而开发的一个专有协议。
系统调用(system call),指运行在操作系统的用户空间的程序向操作系统内核请求需要更高权限运行的服务;系统调用提供用户程序与操作系统之间的接口;大多数系统交互式操作需求在内核空间运行;例如设备IO操作或者进程间通信。操作系统的进程空间可分为用户空间和内核空间,它们需要不同的执行权限,其中系统调用运行在内核空间。
超文本标记语言(HyperText Markup Language,HTML),是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。
服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。当然在具体的实施过程中,上述的服务器可以具体选择大型机或者小型机,这里的小型机是指采用精简指令集计算(ReducedInstruction Set Computing,RISC)、单字长定点指令平均执行速度(MillionInstructions Per Second,MIPS)等专用处理器,主要支持UNIX操作系统的封闭且专用的提供计算服务的设备;这里的大型机,又名大型主机,是指使用专用的处理器指令集、操作系统和应用软件来提供计算服务的设备。
在介绍本申请实施例提供的视频流处理方法之前,先分析对照实施例中的时延组成部分,对照实施例使用流媒体服务器对获得的视频文件进行转码的方法获得的视频流被浏览器播放的时延主要包括以下三部分:
第一部分时延,摄像头到流媒体服务器之间的网络传输时延。
第二部分时延,流媒体服务器的转码时延,转码时延包括:从内核空间拷贝到用户空间的过程时延;在用户空间中转码操作的过程时延,这里的转码操作包括解码和编码两个操作;将转码后的视频流从用户空间拷贝到内核空间后再转发至终端的过程时延。
第三部分时延,流媒体服务器到终端设备之间的网络传输时延。
需要说明的是,本申请实施例提供的视频流处理方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,设备终端例如:智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personaldigital assistant,PDA)、移动上网设备(mobile Internet device,MID)、网络交换机或网络路由器等。
在介绍本申请实施例提供的视频流处理方法之前,先介绍该视频流处理方法适用的应用场景,这里的应用场景包括但不限于:使用该视频流处理方法做视频监控,获得视频流数据,并对视频流数据进行后续处理,这里的后续处理例如:直播平台应用、点播平台应用、在线配音、在线添加字幕、图像识别和人脸识别等。
请参见图1示出的本申请实施例提供的视频流处理方法的流程示意图;该视频流处理方法应用于电子设备,该视频流处理方法可以包括如下步骤:
步骤S110:使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据。
虚拟摄像头,又被称为虚拟摄像头设备,是指能够直接接收、读取并解码视频采集设备的流数据的虚拟驱动程序;具体例如:这里的虚拟摄像头的驱动程序可以为V4L2(Video for Linux version 2),这里的V4L2是隶属于字符设备驱动程序的,这里的视频采集设备可以是在网络上公共场所拍摄的对公众开放的网络摄像头。
视频流数据,是指实时流协议(Real Time Streaming Protocol,RTSP)的流媒体数据;这里的视频(video或videogram)是泛指将一系列的静态影像以电信号方式加以捕捉、纪录、处理、存储、发送与重现的各种信息载体。这里的RTSP协议是一种在网络协议(Internet Protocol)层上传输流媒体数据的应用层协议,专为娱乐和通信系统的使用,以控制流媒体服务器;RTSP协议可以用于创建和控制终端之间的媒体会话。
请参见图2示出的本申请实施例提供的V4L2驱动程序调用的示意图;上述步骤S110中的使用虚拟摄像头接收视频采集设备的流数据的实施方式可以包括如下步骤:
步骤S111:将虚拟摄像头的驱动程序以可加载内核模块的方式注册至内核空间,获得注册后的驱动程序。
可加载内核模块(Loadable Kernel Modules,LKMs),是指能够被操作系统实时加载用于扩展操作系统功能的预编译二进制片段的注册机制;这里的操作系统包括:windows系统和Linux系统。
内核空间(KernelSpace,KS),是指具有操作系统权限运行的进程空间,即操作系统调用运行在内核空间中。用户空间(User Space,US),是指具有用户权限运行的进程空间,即用户调用的进程运行在内核空间中;操作系统的进程空间可分为US和KS。
上述步骤S111中的将虚拟摄像头的驱动程序以可加载内核模块的方式注册至内核空间的实施方式例如:将虚拟摄像头的驱动程序V4L2以LKMs的方式注册至电子设备的Linux操作系统的内核空间的字符串设备cdev,获得注册后的驱动程序;其中,file_operations:open等价于字符串设备cdev的v4l2_open以及file_opreratios:read等价于字符串设备cdev的v4l2_read,即打开文件的操作等价于使用虚拟摄像头的驱动程序V4L2的打开操作,且读取文件的操作等价于使用虚拟摄像头的驱动程序V4L2的读取操作,就可以将字符串设备cdev理解为一个虚拟摄像头设备;而且这里的字符串设备cdev可以被现在的大部分浏览器识别,该字符串设备cdev也可以理解为字符设备驱动程序核心。
步骤S112:调用注册后的驱动程序接收视频采集设备的流数据,获得视频流数据。
上述步骤S112中的调用注册后的驱动程序接收视频采集设备的流数据的实施方式例如:调用注册后的驱动程序V4L2接收视频采集设备的流数据,也就是说,调用字符串设备cdev的v4l2_open接口,以及调用file_opreratios:read等价于字符串设备cdev的v4l2_read接口,即可获得RTSP协议格式的视频流数据。在上述的实现过程中,通过将虚拟摄像头的驱动程序以可加载内核模块的方式注册至内核空间,并调用注册后的驱动程序接收视频采集设备的流数据,获得视频流数据;从而有效地提高了获得视频流数据的速度。
在步骤S110之后,执行步骤S120:将视频流数据存储至电子设备的内核空间中。
上述步骤S120中的将视频流数据存储至电子设备的内核空间中的实施方式可以包括如下步骤:
步骤S121:使用预设插件程序对视频流数据进行缓存和解码,获得解码后的缓存视频流。
请参见图3示出的本申请实施例提供的ffmpeg调用的示意图;上述步骤S121中的对视频流数据进行缓存和解码的实施方式例如:使用预设插件程序ffmpeg对视频流数据进行缓存,获得视频缓存(videobuffer),具体可以使用命令例如:ffmpeg-i rtsp://ip:port/address/h264-f v4l2/dev/videoX;并对视频缓存进行解码,获得解码后的缓存视频流。
步骤S122:调用注册后的驱动程序将解码后的缓存视频流存储至电子设备的内核空间。
上述步骤S122中的调用注册后的驱动程序将解码后的缓存视频流存储至电子设备的内核空间的实施方式例如:将解码后的缓存视频流输入至虚拟摄像头的驱动程序,就相当于调用注册后的驱动程序V4L2将解码后的缓存视频流存储至电子设备的内核空间。在上述的实现过程中,通过对视频流数据进行缓存和解码,获得解码后的缓存视频流;调用注册后的驱动程序将解码后的缓存视频流存储至电子设备的内核空间;从而有效地提高了将解码后的缓存视频流存储至内核空间的速度。
在步骤S120之后,执行步骤S130:将内核空间中的视频流数据拷贝至电子设备的用户空间中。
上述步骤S130中的将内核空间中的视频流数据拷贝至电子设备的用户空间中的实施方式可以包括如下步骤:
步骤S131:调用浏览器的网页即时通信接口从内核空间读取解码后的缓存视频流。
网页即时通信(Web Real-Time Communication,WebRTC)接口,是一个支持网页浏览器进行实时语音对话或视频对话的应用编程接口,WebRTC支持大部分的浏览器;这些浏览器例如:Microsoft Edge浏览器、Google Chrome浏览器、Mozilla Firefox浏览器、Opera浏览器、Safari浏览器和Firefox浏览器等等。
上述步骤S131中的调用浏览器的网页即时通信接口从内核空间读取解码后的缓存视频流的实施方式例如:调用浏览器的网页即时通信WebRTC接口直接从内核空间读取解码后的缓存视频流,并将解码后的缓存视频流从内核空间拷贝至用户空间中。
步骤S132:将解码后的缓存视频流存储至用户空间。
上述步骤S132中的将解码后的缓存视频流存储至用户空间的实施方式例如:调用浏览器的网页即时通信WebRTC接口,将解码后的缓存视频流从内核空间拷贝至用户空间中。在上述的实现过程中,通过调用浏览器的网页即时通信接口从内核空间读取解码后的缓存视频流;将解码后的缓存视频流存储至用户空间;将解码后的缓存视频流从内核空间拷贝至用户空间的速度。
在步骤S130之后,执行步骤S140:将用户空间中的视频流数据显示在电子设备的浏览器上。
浏览器,是指访问服务器上的数据的软件工具,这里的浏览器可以是指现代浏览器,这里的现代浏览器主要包括:Microsoft Edge浏览器、Google Chrome浏览器、MozillaFirefox浏览器、Opera浏览器、Safari浏览器和Firefox浏览器等等,浏览器可以使用的引擎例如:Firefox Driver引擎、Internet Explorer Driver引擎和Chrome Driver引擎等,当然,在一些情况下,这里的浏览器引擎也可以是两种或两种以上的引擎共同使用,例如:定制的浏览器共同使用Internet Explorer Driver引擎和Chrome Driver引擎。
上述步骤S140中的将用户空间中的视频流数据显示在电子设备的浏览器上的实施方式可以包括如下步骤:
步骤S141:判断电子设备的浏览器是否包括预设标签的属性值。
预设标签,是HTML5语言的视频(Video)标签,Video标签包括source等属性值,当source属性值是一个可以播放的视频流数据时,浏览器就可以在页面加载时或者在页面加载后播放source属性值对应的视频流数据。
在具体的实施过程中,在判断电子设备的浏览器是否包括预设标签的属性值之前,浏览器还可以通过WebRTC接口识别到虚拟摄像头设备,具体例如:调用navigator.mediaDevices.getUserMedia接口识别到虚拟摄像头设备,并从用户空间中读取缓存视频流。
上述步骤S141中的判断电子设备的浏览器是否包括预设标签的属性值的实施方式例如:判断电子设备的浏览器中展示的页面是否包括Video标签的source属性值,或者Video元素的source属性值。
步骤S142:若电子设备的浏览器包括预设标签的属性值,则将用户空间中的视频流数据显示在预设标签对应的位置。
上述步骤S142中的将用户空间中的视频流数据显示在预设标签对应的位置的实施方式例如:若电子设备的浏览器中展示的页面是否包括Video标签的source属性值,则将用户空间中的视频流数据显示在Video标签对应的位置,从而实现在现代浏览器上直接读取并展示网络摄像头的RTSP流数据的功能。在上述的实现过程中,若电子设备的浏览器包括预设标签的属性值,则将用户空间中的视频流数据显示在预设标签对应的位置;从而有效地减小了浏览器播放视频流数据的时延。
在上述的实现过程中,通过调用虚拟摄像头设备的驱动程序接收视频采集设备的流数据作为视频流数据存储至内核空间中,即将视频流数据存储至内核空间的过程包括对视频流数据进行解码的过程,从而使得解码后的视频流数据能够被浏览器播放;然后直接将获得的视频流数据从存储的内核空间中拷贝至用户空间,也就是说,经过最少的内存拷贝次数,实现了几乎零延时地读取RTSP视频流,与此同时,也无需在浏览器安装额外的插件,对于当前占有大多数市场的浏览器均能够很好的支持,以使浏览器可以访问并显示用户空间中的视频流数据,从而有效地减小了视频流被浏览器播放的时延。
请参见图4示出的本申请实施例提供的提供实时监控服务的流程示意图;可选地,在本申请实施例中,还可以将上述的视频流处理方法应用于提供视频流服务的电子设备,该电子设备可以为终端设备提供实时监控服务,那么上述的提供实时监控服务的视频流处理方法可以包括如下步骤:
步骤S210:电子设备使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据。
其中,该步骤S210的实施原理和实施方式与步骤S110的实施原理和实施方式是相似或类似的,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤S110的描述。
步骤S220:电子设备将视频流数据存储至电子设备的内核空间中。
其中,该步骤S220的实施原理和实施方式与步骤S120的实施原理和实施方式是相似或类似的,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤S120的描述。
步骤S230:电子设备将内核空间中的视频流数据拷贝至电子设备的用户空间中。
其中,该步骤S230的实施原理和实施方式与步骤S130的实施原理和实施方式是相似或类似的,因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤S130的描述。
步骤S240:电子设备接收终端设备发送视频请求。
上述步骤S240中的电子设备接收终端设备发送视频请求的实施方式例如:电子设备通过传输控制协议(Transmission Control Protocol,TCP)或者用户数据报协议(UserDatagram Protocol,UDP)接收终端设备发送视频请求;其中,这里的TCP协议又名网络通讯协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议;在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层;不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换;这里的UDP协议是User Datagram Protocol的简称,中文名是用户数据报协议,UDP协议是开放式系统互联(Open System Interconnection,OSI)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
步骤S250:电子设备根据视频请求向终端设备发送用户空间中的视频流数据。
上述步骤S250中的电子设备根据视频请求向终端设备发送用户空间中的视频流数据的实施方式例如:电子设备根据视频请求使用流媒体协议(HTTP Live Streaming,HLS)或者实时消息协议(Real-Time Messaging Protocol,RTMP)向终端设备发送用户空间中的视频流数据;这里的HLS协议是指把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些;当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率,在开始一个流媒体会话时,客户端会下载一个包含元数据的扩展播放列表(extended M3U,m3u8)文件,用于寻找可用的媒体流;这里的RTMP协议也称实时消息传输协议,是最初由Macromedia为通过互联网在Flash播放器与一个服务端之间传输流媒体音频、视频和数据而开发的一个专有协议;Macromedia后被Adobe Systems收购,该协议也已发布了不完整的规范供公众使用。
在上述的实现过程中,通过接收终端设备发送视频请求;根据视频请求向终端设备发送用户空间中的视频流数据;从而有效地提高了终端设备获得视频流数据的速度。
请参见图5示出的本申请实施例提供的视频流处理装置的结构示意图;本申请实施例提供了一种视频流处理装置300,应用于电子设备,包括:
流数据获得模块310,用于使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据。
流数据存储模块320,用于将视频流数据存储至电子设备的内核空间中。
流数据拷贝模块330,用于将内核空间中的视频流数据拷贝至电子设备的用户空间中。
流数据显示模块340,用于将用户空间中的视频流数据显示在电子设备的浏览器上。
可选地,在本申请实施例中,流数据获得模块,包括:
驱动程序获得模块,用于将虚拟摄像头的驱动程序以可加载内核模块的方式注册至内核空间,获得注册后的驱动程序。
驱动程序调用模块,用于调用注册后的驱动程序接收视频采集设备的流数据,获得视频流数据。
可选地,在本申请实施例中,流数据存储模块,包括:
数据缓存解码模块,用于对视频流数据进行缓存和解码,获得解码后的缓存视频流。
视频流存储模块,用于调用注册后的驱动程序将解码后的缓存视频流存储至电子设备的内核空间。
可选地,在本申请实施例中,流数据拷贝模块,包括:
缓存视频读取模块,用于调用浏览器的网页即时通信接口从内核空间读取解码后的缓存视频流。
缓存视频存储模块,用于将解码后的缓存视频流存储至用户空间。
可选地,在本申请实施例中,流数据显示模块,包括:
属性值判断模块,用于判断电子设备的浏览器是否包括预设标签的属性值。
视频流显示模块,用于若电子设备的浏览器包括预设标签的属性值,则将用户空间中的视频流数据显示在预设标签对应的位置。
可选地,在本申请实施例中,视频流处理装置,还包括:
视频请求接收模块,用于接收终端设备发送视频请求。
视频数据发送模块,用于根据视频请求向终端设备发送用户空间中的视频流数据。
应理解的是,该装置与上述的视频流处理方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。
请参见图6示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备400,包括:处理器410和存储器420,存储器420存储有处理器410可执行的机器可读指令,机器可读指令被处理器410执行时执行如上的方法。
本申请实施例还提供了一种存储介质430,该存储介质430上存储有计算机程序,该计算机程序被处理器410运行时执行如上的方法。
其中,存储介质430可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (10)
1.一种视频流处理方法,其特征在于,应用于电子设备,包括:
使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据;
将所述视频流数据存储至所述电子设备的内核空间中;
将所述内核空间中的视频流数据拷贝至所述电子设备的用户空间中;
将所述用户空间中的视频流数据显示在所述电子设备的浏览器上。
2.根据权利要求1所述的方法,其特征在于,所述使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据,包括:
将所述虚拟摄像头的驱动程序以可加载内核模块的方式注册至所述内核空间,获得注册后的驱动程序;
调用所述注册后的驱动程序接收视频采集设备的流数据,获得视频流数据。
3.根据权利要求2所述的方法,其特征在于,所述将所述视频流数据存储至所述电子设备的内核空间中,包括:
对所述视频流数据进行缓存和解码,获得解码后的缓存视频流;
调用所述注册后的驱动程序将所述解码后的缓存视频流存储至所述电子设备的内核空间。
4.根据权利要求3所述的方法,其特征在于,所述将所述内核空间中的视频流数据拷贝至所述电子设备的用户空间中,包括:
调用所述浏览器的网页即时通信接口从所述内核空间读取所述解码后的缓存视频流;
将所述解码后的缓存视频流存储至所述用户空间。
5.根据权利要求4所述的方法,其特征在于,所述将所述用户空间中的视频流数据显示在所述电子设备的浏览器上,包括:
判断所述电子设备的浏览器是否包括预设标签的属性值;
若是,则将所述用户空间中的视频流数据显示在所述预设标签对应的位置。
6.根据权利要求1-5任一所述的方法,其特征在于,在所述将所述内核空间中的视频流数据拷贝至所述电子设备的用户空间中之后,还包括:
接收终端设备发送视频请求;
根据所述视频请求向所述终端设备发送所述用户空间中的视频流数据。
7.根据权利要求1-5任一所述的方法,其特征在于,所述视频流数据为实时流协议的流媒体数据。
8.一种视频流处理装置,其特征在于,应用于电子设备,包括:
流数据获得模块,用于使用虚拟摄像头接收视频采集设备的流数据,获得视频流数据;
流数据存储模块,用于将所述视频流数据存储至所述电子设备的内核空间中;
流数据拷贝模块,用于将所述内核空间中的视频流数据拷贝至所述电子设备的用户空间中;
流数据显示模块,用于将所述用户空间中的视频流数据显示在所述电子设备的浏览器上。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法。
10.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010520661.2A CN111586488A (zh) | 2020-06-09 | 2020-06-09 | 一种视频流处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010520661.2A CN111586488A (zh) | 2020-06-09 | 2020-06-09 | 一种视频流处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111586488A true CN111586488A (zh) | 2020-08-25 |
Family
ID=72111185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010520661.2A Pending CN111586488A (zh) | 2020-06-09 | 2020-06-09 | 一种视频流处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111586488A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002503A (zh) * | 2022-08-01 | 2022-09-02 | 广州市千钧网络科技有限公司 | web端的直播显示方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110265134A1 (en) * | 2009-11-04 | 2011-10-27 | Pawan Jaggi | Switchable multi-channel data transcoding and transrating system |
CN105450986A (zh) * | 2015-11-12 | 2016-03-30 | 厦门雅迅网络股份有限公司 | 一种Linux下视频处理方法 |
CN107527317A (zh) * | 2017-07-18 | 2017-12-29 | 西安电子科技大学 | 基于图像处理的数据传输系统 |
-
2020
- 2020-06-09 CN CN202010520661.2A patent/CN111586488A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110265134A1 (en) * | 2009-11-04 | 2011-10-27 | Pawan Jaggi | Switchable multi-channel data transcoding and transrating system |
CN105450986A (zh) * | 2015-11-12 | 2016-03-30 | 厦门雅迅网络股份有限公司 | 一种Linux下视频处理方法 |
CN107527317A (zh) * | 2017-07-18 | 2017-12-29 | 西安电子科技大学 | 基于图像处理的数据传输系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002503A (zh) * | 2022-08-01 | 2022-09-02 | 广州市千钧网络科技有限公司 | web端的直播显示方法、装置、电子设备及存储介质 |
CN115002503B (zh) * | 2022-08-01 | 2023-01-06 | 广州市千钧网络科技有限公司 | web端的直播显示方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8935424B2 (en) | Method and apparatus for signaling presentation description updates in HTTP streaming | |
US10069884B2 (en) | Enhanced streaming media playback using a proxy server | |
CA2826552C (en) | Method and apparatus for receiving presentation metadata | |
US9344517B2 (en) | Downloading and adaptive streaming of multimedia content to a device with cache assist | |
US20150256600A1 (en) | Systems and methods for media format substitution | |
CN112653700B (zh) | 一种基于webrtc网页视频通信的方法 | |
US8817983B2 (en) | Streaming video to cellular phones | |
US11785067B2 (en) | Session-based information for dynamic adaptive streaming over HTTP | |
US20220060532A1 (en) | Method for transmitting resources and electronic device | |
CN112995698A (zh) | 一种视频播放方法、客户端、服务平台及智能会议系统 | |
CN110996160A (zh) | 视频处理方法、装置、电子设备及计算机可读取存储介质 | |
CN111586488A (zh) | 一种视频流处理方法、装置、电子设备及存储介质 | |
KR20220133964A (ko) | Http를 통한 동적 적응적 스트리밍을 위한 방법 및 장치 | |
US8615548B1 (en) | System and method for deferred data downloading | |
US20220365959A1 (en) | Multimedia file storage and access method | |
WO2020240089A1 (en) | An apparatus, a method and a computer program for video coding and decoding | |
JP7387209B2 (ja) | Http上の動的適応ストリーミングのための方法および装置 | |
CN115460471B (zh) | 视频播放方法、装置、电子设备和计算机可读介质 | |
US11520848B2 (en) | Methods and apparatuses for dynamic adaptive streaming over HTTP | |
US11882170B2 (en) | Extended W3C media extensions for processing dash and CMAF inband events | |
EP4216555A1 (en) | Computer implemented method for processing streaming requests and responses | |
CN113364728B (zh) | 媒体内容接收方法、装置、存储介质和计算机设备 | |
CN116450580A (zh) | 一种文件处理访问方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200825 |