CN111698530A - 视频传输方法、装置、设备及计算机可读存储介质 - Google Patents
视频传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111698530A CN111698530A CN202010460302.2A CN202010460302A CN111698530A CN 111698530 A CN111698530 A CN 111698530A CN 202010460302 A CN202010460302 A CN 202010460302A CN 111698530 A CN111698530 A CN 111698530A
- Authority
- CN
- China
- Prior art keywords
- video
- time
- window
- preset
- acquisition
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
- H04N21/2326—Scheduling disk or memory reading operations
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明涉及数据传输优化领域,公开了一种视频传输方法、装置、设备及计算机可读存储介质,用于减少视频传输过程中的内存占用和延迟时间,并使多个使用进程能够同步使用视频。该方法包括:通过预设的视频采集进程采集视频帧,并获取采集视频帧的采集时刻;确定采集时刻在预设的时间窗口序列中所处的时间窗口,时间窗口为写窗口或读窗口;若采集时刻处于时间窗口序列中的写窗口,则将采集到的视频帧写入预设共享内存中;若采集时刻处于时间窗口序列中的读窗口,则控制预设的视频使用进程从预设共享内存中读取视频采集进程在预设时间节点写入预设共享内存中的视频帧。
Description
技术领域
本发明涉及数据传输优化技术领域,尤其涉及视频传输方法、装置、设备及计算机可读存储介质。
背景技术
在计算机视觉(ComputerVision,CV)项目开发中,通常存在一个进程负责采集视频源提供给其他多个进程同时使用的情形。比如,在人脸识别项目中,人脸框绘制程序需要读取摄像头采集到的视频帧并在屏幕上绘制人脸框,人脸识别程序需要读取摄像头采集到的视频帧并计算人脸的位置,这两个程序需要读取相同或相邻的视频帧,否则会导致绘制的人脸框相比于实际的人脸位置产生延迟。
在现有的视频传输方案中,一般是采集进程将采集到的视频通过遍历的方式依次放置到与多个使用进程对应的多个缓冲区队列中,使用进程再从与其对应的队列中读取视频,这种方式是用循环操作多个队列来模拟广播,其存在的缺陷是:如果使用进程太多,就需要创建很多的独立队列,从而导致大量的物理内存占用,而且,随着队列数量的增多,循环操作的间隔延迟也会正比增加,导致第一个使用程序从第一个队列中读取到的视频与最后一个使用程序从最后一个队列中读取到的视频不同步。
因而,现有的视频传输方案存在内存占用大,延迟时间长,以及无法保证多个使用进程同步使用视频的问题。
发明内容
本发明的主要目的在于提出一种视频传输方法、装置、设备及计算机可读存储介质,旨在减少视频传输过程中的内存占用和延迟时间,并使多个使用进程能够同步使用视频。
本发明第一方面提供了一种视频传输方法,所述视频传输方法包括如下步骤:
通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
确定所述采集时刻在预设的时间窗口序列中所处的时间窗口,所述时间窗口为写窗口或读窗口,所述写窗口仅允许执行基于预设共享内存的写操作,所述读窗口仅允许执行基于预设共享内存的读操作;
若所述采集时刻处于所述时间窗口序列中的写窗口,则将采集到的所述视频帧写入预设共享内存中;
若所述采集时刻处于所述时间窗口序列中的读窗口,则控制预设的视频使用进程从所述预设共享内存中读取所述视频采集进程在预设时间节点写入所述预设共享内存中的视频帧。
可选的,在本发明第一方面的第一种实现方式中,所述通过预设的视频采集进程采集视频帧的步骤包括:
建立与视频采集设备之间的通用串行总线连接;
通过所述通用串行总线连接的驱动程序提供的应用程序编程接口,控制预设的视频采集进程读取所述视频采集设备采集到的视频帧;
或者,通过预设的网络地址和端口,控制预设的视频采集进程从网络视频源采集视频帧。
可选的,在本发明第一方面的第二种实现方式中,所述时间窗口序列包括多个周期,其中每个周期由依次排列的写窗口、第一休眠窗口、读窗口和第二休眠窗口组成,且所述写窗口、所述第一休眠窗口、所述读窗口和所述第二休眠窗口的大小为一相同的预设时长。
可选的,在本发明第一方面的第三种实现方式中,所述确定所述采集时刻在预设的时间窗口序列中所处的时间窗口的步骤包括:
计算所述采集时刻与预设的初始时刻之间的间隔时长;
获取所述预设时长的时间单位,将所述预设时长的时间单位作为目标换算单位,对所述间隔时长进行单位换算;
将进行单位换算后的间隔时长除以所述预设时长;
根据相除运算的结果确定所述采集时刻在预设的时间窗口序列中所处的时间窗口。
可选的,在本发明第一方面的第四种实现方式中,所述根据相除运算的结果确定所述采集时刻在预设的时间窗口序列中所处的时间窗口的步骤包括:
将所述相除运算的整数商进行对4取模运算,得到对应的余数;
当所述余数为0时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为写窗口;
当所述余数为1时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第一休眠窗口;
当所述余数为2时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为读窗口;
当所述余数为3时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第二休眠窗口。
可选的,在本发明第一方面的第五种实现方式中,所述确定所述采集时刻在预设的时间窗口序列中所处的时间窗口的步骤之后,还包括:
若所述采集时刻处于所述时间窗口序列中的第一休眠窗口或第二休眠窗口,则返回步骤:通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻。
可选的,在本发明第一方面的第六种实现方式中,所述通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻的步骤之前,还包括:
判断所述视频采集进程和所述视频使用进程是否运行在同一个主机上;
若所述视频采集进程和所述视频使用进程运行在同一个主机上,则通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
若所述视频采集进程和所述视频使用进程运行在不同主机上,则通过网络时间协议,对所述视频采集进程运行的主机和所述视频使用进程运行的主机进行时间同步处理。
本发明第二方面提供了一种视频传输装置,所述视频传输装置包括:
采集模块,用于通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
确定模块,用于确定所述采集时刻在预设的时间窗口序列中所处的时间窗口,所述时间窗口为写窗口或读窗口,所述写窗口仅允许执行基于预设共享内存的写操作,所述读窗口仅允许执行基于预设共享内存的读操作;
写入模块,用于若所述采集时刻处于所述时间窗口序列中的写窗口,则将采集到的所述视频帧写入预设共享内存中;
读取模块,用于若所述采集时刻处于所述时间窗口序列中的读窗口,则控制预设的视频使用进程从所述预设共享内存中读取所述视频采集进程在预设时间节点写入所述预设共享内存中的视频帧。
可选的,在本发明第二方面的第一种实现方式中,所述采集模块还用于:
建立与视频采集设备之间的通用串行总线连接;
通过所述通用串行总线连接的驱动程序提供的应用程序编程接口,控制预设的视频采集进程读取所述视频采集设备采集到的视频帧;
或者,通过预设的网络地址和端口,控制预设的视频采集进程从网络视频源采集视频帧。
可选的,在本发明第二方面的第二种实现方式中,所述时间窗口序列包括多个周期,其中每个周期由依次排列的写窗口、第一休眠窗口、读窗口和第二休眠窗口组成,且所述写窗口、所述第一休眠窗口、所述读窗口和所述第二休眠窗口的大小为一相同的预设时长。
可选的,在本发明第二方面的第三种实现方式中,所述确定模块还用于:
计算所述采集时刻与预设的初始时刻之间的间隔时长;
获取所述预设时长的时间单位,将所述预设时长的时间单位作为目标换算单位,对所述间隔时长进行单位换算;
将进行单位换算后的间隔时长除以所述预设时长;
根据相除运算的结果确定所述采集时刻在预设的时间窗口序列中所处的时间窗口。
可选的,在本发明第二方面的第四种实现方式中,所述确定模块还用于:
将所述相除运算的整数商进行对4取模运算,得到对应的余数;
当所述余数为0时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为写窗口;
当所述余数为1时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第一休眠窗口;
当所述余数为2时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为读窗口;
当所述余数为3时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第二休眠窗口。
可选的,在本发明第二方面的第五种实现方式中,所述采集模块还用于:
若所述采集时刻处于所述时间窗口序列中的第一休眠窗口或第二休眠窗口,则返回步骤:通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻。
可选的,在本发明第二方面的第六种实现方式中,所述视频传输装置还包括:
判断模块,用于判断所述视频采集进程和所述视频使用进程是否运行在同一个主机上;
所述采集模块还用于若所述视频采集进程和所述视频使用进程运行在同一个主机上,则通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
同步模块,用于若所述视频采集进程和所述视频使用进程运行在不同主机上,则通过网络时间协议,对所述视频采集进程运行的主机和所述视频使用进程运行的主机进行时间同步处理。
本发明第三方面提供了一种视频传输设备,所述视频传输设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述视频传输设备执行上述的视频传输方法。
本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的视频传输方法。
本发明提出的视频传输方法,相较于现有的采集进程将采集到的视频通过遍历的方式依次放置到与多个使用进程对应的多个缓冲区队列中,使用进程再从与其对应的队列中读取视频的方式,只需要使用一块共享内存,因此减少了内存占用,而且,视频帧的写入和读取之间的延迟时间短,不会超过写窗口和读窗口的时长大小之和,另外,多个视频使用进程能够同时从共享内存中读取视频帧,从而保证了多个使用进程能够同步使用视频。因此,本发明实现了减少视频传输过程中的内存占用和延迟时间,并使多个使用进程能够同步使用视频。
附图说明
图1为本发明视频传输方法的一个实施例的流程示意图;
图2为本发明实施例中视频传输过程的示意图;
图3为本发明实施例中时间窗口序列的示意图;
图4为本发明视频传输装置的一个实施例的模块示意图;
图5为本发明实施例提供的视频传输设备的结构示意图。
具体实施方式
本发明实施例提供了一种视频传输方法、装置、设备及计算机可读存储介质,相较于现有的采集进程将采集到的视频通过遍历的方式依次放置到与多个使用进程对应的多个缓冲区队列中,使用进程再从与其对应的队列中读取视频的方式,只需要使用一块共享内存,因此减少了内存占用,而且,视频帧的写入和读取之间的延迟时间短,不会超过写窗口和读窗口的时长大小之和,另外,多个视频使用进程能够同时从共享内存中读取视频帧,从而保证了多个使用进程能够同步使用视频。因此,本发明实施例实现了减少视频传输过程中的内存占用和延迟时间,并使多个使用进程能够同步使用视频。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明视频传输方法实施例的具体流程进行描述。
参照图1,图1为本发明视频传输方法的一个实施例的流程示意图,该方法包括:
步骤101,通过预设的视频采集进程采集视频帧,并获取采集视频帧的采集时刻;
在本实施例中,视频传输方法应用于主机,该主机可以是服务器,且该主机上运行有视频采集进程和视频使用进程,本实施例应用于在视频采集进程和视频使用进程之间进行视频传输的场景。
参照图2,图2为本发明实施例中视频传输过程的示意图。在本实施例中,主机预先为视频采集进程和视频使用进程分配一块共享内存,并设定视频采集进程仅往这块共享内存写入采集到的视频数据,视频使用进程仅从这块共享内存中读取视频数据。视频采集进程往共享内存中写入视频后,多个视频使用进程可以同时从该共享内存中读取视频,由此实现了以一种广播的方式传输视频。
具体实施时,主机首先通过预设的视频采集进程采集视频帧,并获取采集视频帧的采集时刻,该采集时刻指的是主机系统的采集时刻,具体可从主机的时钟程序中读取。
进一步地,上述通过预设的视频采集进程采集视频帧的步骤可以包括:建立与视频采集设备之间的通用串行总线连接;通过通用串行总线连接的驱动程序提供的应用程序编程接口,控制视频采集进程读取视频采集设备采集到的视频帧;或者,通过预设的网络地址和端口,控制预设的视频采集进程从网络视频源采集视频帧。
具体地,视频采集进程可以通过硬件厂商提供的接口来获取视频采集设备采集到的视频帧,以视频采集设备为摄像头为例,当摄像头以通用串行总线(universal serialbus,USB)连接接入主机并安装驱动程序后,主机中的视频采集进程可以通过该驱动程序提供的应用程序编程接口(applicationprogramming interface,API)读取摄像头采集到的视频帧。
而对于一些网络视频源比如一些云台设备,主机中的视频采集进程可以通过网络套接字连接设备厂商提供的网络地址和端口,从而根据该网络地址和端口从网络视频源采集视频帧。
步骤102,确定采集时刻在预设的时间窗口序列中所处的时间窗口,时间窗口为写窗口或读窗口,写窗口仅允许执行基于预设共享内存的写操作,读窗口仅允许执行基于预设共享内存的读操作;
在本实施例中,为保证视频数据的读写同步,即同一时刻只允许读或写,以保证读写的安全性和准确性,还需预设一个时间窗口序列,该时间窗口序列至少包括写窗口和读窗口,写窗口和读窗口的大小和数量可以根据实际需要灵活设置,在写窗口中,仅允许执行基于共享内存的写操作,在读窗口中,仅允许执行基于共享内存的读操作。如此,保证视频采集进程的写操作和视频使用进程的读操作之间互不干扰。
参照图3,图3为本发明实施例中时间窗口序列的示意图。在一实施方式中,时间窗口序列可以包括多个周期,其中每个周期由依次排列的写窗口、第一休眠窗口、读窗口和第二休眠窗口组成,且写窗口、第一休眠窗口、读窗口和第二休眠窗口的大小为一相同的预设时长。
每个窗口的时长大小可以根据实际项目中对视频帧率的要求灵活设置,比如为使视频看起来不会卡顿,要求视频帧率为20fps,即1秒钟传输20帧视频画面,每帧持续大约50ms,此时,可以将写窗口、第一休眠窗口、读窗口和第二休眠窗口的时长大小均设置为50ms,而实际测试分辨率1920x1080的视频帧写入和从共享内存中读取,一般不会超过5ms,所以肯定可以在一个读/写窗口和一个休眠窗口中完成读写,而且,视频帧的写入和读取之间的延迟时间不会超过100ms。
在本实施例中,主机确定上述采集时刻在预设的时间窗口序列中所处的时间窗口,由此确定是否进行读或写操作。
步骤103,若采集时刻处于时间窗口序列中的写窗口,则将采集到的视频帧写入预设共享内存中;
该步骤中,若采集时刻处于时间窗口序列中的写窗口,则主机将视频采集进程采集到的视频帧写入共享内存中,以供视频使用进程读取。
步骤104,若采集时刻处于时间窗口序列中的读窗口,则控制预设的视频使用进程从预设共享内存中读取视频采集进程在预设时间节点写入预设共享内存中的视频帧。
该步骤中,若采集时刻处于时间窗口序列中的读窗口,则主机控制预设的视频使用进程从预设共享内存中读取视频采集进程在预设时间节点写入预设共享内存中的视频帧,其中,预设时间节点为视频采集进程最近一次将视频帧写入预设共享内存的时间节点,即,视频采集进程将视频帧写入预设共享内存,且离步骤101中的采集时刻最近的时间节点。需要说明的是,本实施例中视频使用进程可以为一个,也可以为多个,当视频使用进程为多个时,多个视频使用进程可以在一个读窗口中同时从共享内存中读取视频帧。
进一步地,上述步骤102之后,还可以包括:若采集时刻处于时间窗口序列中的第一休眠窗口或第二休眠窗口,则返回步骤101:通过预设的视频采集进程采集视频帧,并获取采集视频帧的采集时刻。
该步骤中,若采集时刻处于时间窗口序列中的第一休眠窗口或第二休眠窗口,则主机返回执行上述步骤101,即继续通过视频采集进程采集视频帧,并获取采集视频帧的采集时刻,以等待下一个读/写窗口执行对应的读/写操作。
本实施例提出的视频传输方法,相较于现有的采集进程将采集到的视频通过遍历的方式依次放置到与多个使用进程对应的多个缓冲区队列中,使用进程再从与其对应的队列中读取视频的方式,只需要使用一块共享内存,因此减少了内存占用,而且,视频帧的写入和读取之间的延迟时间短,不会超过写窗口和读窗口的时长大小之和,另外,多个视频使用进程能够同时从共享内存中读取视频帧,从而保证了多个使用进程能够同步使用视频。因此,本实施例实现了减少视频传输过程中的内存占用和延迟时间,并使多个使用进程能够同步使用视频。
进一步地,基于本发明中视频传输方法的第一实施例,提出本发明中视频传输方法的第二实施例。
在本实施例中,上述步骤102可以包括:计算采集时刻与预设的初始时刻之间的间隔时长;获取预设时长的时间单位,将预设时长的时间单位作为目标换算单位,对间隔时长进行单位换算;将进行单位换算后的间隔时长除以预设时长;根据相除运算的结果确定采集时刻在预设的时间窗口序列中所处的时间窗口。
在本实施例中,首先预设一个初始时刻,该初始时刻为采集时刻之前的某一时刻,具体实施时可以灵活设置;主机获取到采集时刻后,计算该采集时刻与初始时刻之间的间隔时长,并将该间隔时长的单位换算为上述预设时长的单位。比如,若初始时刻为2019年1月1日0时,采集时刻为2020年1月1日0时,则可以计算得到它们之间的间隔时长为1年,当预设时长的时间单位为50毫秒时,将1年换算为毫秒数,即31536000000毫秒。
然后,将进行单位换算后的间隔时长除以预设时长,商N余m,取计算结果的整数商N,该整数商N表示采集时刻处于第N个时间窗口;而第N个时间窗口的类型可以通过取模运算确定。
在一实施方式中,根据相除运算的结果确定采集时刻在预设的时间窗口序列中所处的时间窗口的步骤可以进一步包括:将相除运算的整数商进行对4取模运算,得到对应的余数;当余数为0时,确定采集时刻在时间窗口序列中所处的时间窗口为写窗口;当余数为1时,确定采集时刻在时间窗口序列中所处的时间窗口为第一休眠窗口;当余数为2时,确定采集时刻在时间窗口序列中所处的时间窗口为读窗口;当余数为3时,确定采集时刻在时间窗口序列中所处的时间窗口为第二休眠窗口。
将上述整数商N对4取模运算,余数在0,1,2,3中取值,这里定义0为写入窗口,1为第一休眠窗口,2为读取窗口,3为第二休眠窗口。因此无论是视频采集进程还是视频使用进程只要知道自己当前的时间,就可以计算得到自己当前所处的时间窗口。
通过上述方式,实现了对采集时刻所处时间窗口的准确确定。
进一步地,基于本发明中视频传输方法的第一、第二实施例,提出本发明中视频传输方法的第三实施例。
在本实施例中,上述步骤101之前,还可以包括:判断视频采集进程和视频使用进程是否运行在同一个主机上;若视频采集进程和视频使用进程运行在同一个主机上,则通过预设的视频采集进程采集视频帧,并获取采集视频帧的采集时刻;若视频采集进程和视频使用进程运行在不同主机上,则通过网络时间协议,对视频采集进程运行的主机和视频使用进程运行的主机进行时间同步处理。
在本实施例中,考虑到视频采集进程和视频使用进程可能运行在不同的主机上,为此,视频采集进程所运行的主机可以首先判断该主机上是否同时运行有视频采集进程和视频使用进程,若是,则两者的时间是同步的(因为公用一个时间);若视频采集进程和视频使用进程分布在不同的主机上运行,则可以使用网络时间协议(network time protocol,NTP)对这些主机的时间先进行同步操作,具体做法是在视频采集进程运行的主机上部署NTP服务器端,在视频使用进程运行的主机上部署NTP客户端,并配置视频使用进程主机上的NTP客户端链接到NTP服务器端上,等待时间同步,具体的时间同步算法已经在NTP协议中实现,此处不做赘述。
在视频采集进程和视频使用进程的主机时间同步之后,在某个时刻视频采集进程和视频使用进程所获取的是相同的时间,由此为后续视频的同步读写提供了前提保证。
本发明实施例还提供一种视频传输装置。
参照图4,图4为本发明视频传输装置的一个实施例的模块示意图。本实施例中,所述视频传输装置包括:
采集模块401,用于通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
确定模块402,用于确定所述采集时刻在预设的时间窗口序列中所处的时间窗口,所述时间窗口为写窗口或读窗口,所述写窗口仅允许执行基于预设共享内存的写操作,所述读窗口仅允许执行基于预设共享内存的读操作;
写入模块403,用于若所述采集时刻处于所述时间窗口序列中的写窗口,则将采集到的所述视频帧写入预设共享内存中;
读取模块404,用于若所述采集时刻处于所述时间窗口序列中的读窗口,则控制预设的视频使用进程从所述预设共享内存中读取所述视频采集进程在预设时间节点写入所述预设共享内存中的视频帧。
可选的,所述采集模块401还用于:
建立与视频采集设备之间的通用串行总线连接;
通过所述通用串行总线连接的驱动程序提供的应用程序编程接口,控制预设的视频采集进程读取所述视频采集设备采集到的视频帧;
或者,通过预设的网络地址和端口,控制预设的视频采集进程从网络视频源采集视频帧。
可选的,所述时间窗口序列包括多个周期,其中每个周期由依次排列的写窗口、第一休眠窗口、读窗口和第二休眠窗口组成,且所述写窗口、所述第一休眠窗口、所述读窗口和所述第二休眠窗口的大小为一相同的预设时长。
可选的,所述确定模块402还用于:
计算所述采集时刻与预设的初始时刻之间的间隔时长;
获取所述预设时长的时间单位,将所述预设时长的时间单位作为目标换算单位,对所述间隔时长进行单位换算;
将进行单位换算后的间隔时长除以所述预设时长;
根据相除运算的结果确定所述采集时刻在预设的时间窗口序列中所处的时间窗口。
可选的,所述确定模块402还用于:
将所述相除运算的整数商进行对4取模运算,得到对应的余数;
当所述余数为0时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为写窗口;
当所述余数为1时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第一休眠窗口;
当所述余数为2时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为读窗口;
当所述余数为3时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第二休眠窗口。
可选的,所述采集模块401还用于:
若所述采集时刻处于所述时间窗口序列中的第一休眠窗口或第二休眠窗口,则返回步骤:通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻。
可选的,所述视频传输装置还包括:
判断模块,用于判断所述视频采集进程和所述视频使用进程是否运行在同一个主机上;
所述采集模块401还用于若所述视频采集进程和所述视频使用进程运行在同一个主机上,则通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
同步模块,用于若所述视频采集进程和所述视频使用进程运行在不同主机上,则通过网络时间协议,对所述视频采集进程运行的主机和所述视频使用进程运行的主机进行时间同步处理。
上述视频传输装置中各个模块的功能实现及有益效果与上述视频传输方法实施例中各步骤相对应,此处不再赘述。
上面从模块化功能实体的角度对本发明实施例中的视频传输装置进行了详细描述,下面从硬件处理的角度对本发明实施例中视频传输设备进行详细描述。
参照图5,图5为本发明实施例提供的视频传输设备的结构示意图。该视频传输设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对视频传输设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在视频传输设备500上执行存储介质530中的一系列指令操作。
视频传输设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的视频传输设备结构并不构成对视频传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有视频传输程序,所述视频传输程序被处理器执行时实现如上所述的视频传输方法的步骤。
其中,在所述处理器上运行的视频传输程序被执行时所实现的方法及有益效果可参照本发明视频传输方法的各个实施例,此处不再赘述。
本领域技术人员可以理解,上述集成的模块或单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种视频传输方法,其特征在于,所述视频传输方法包括如下步骤:
通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
确定所述采集时刻在预设的时间窗口序列中所处的时间窗口,所述时间窗口为写窗口或读窗口,所述写窗口仅允许执行基于预设共享内存的写操作,所述读窗口仅允许执行基于预设共享内存的读操作;
若所述采集时刻处于所述时间窗口序列中的写窗口,则将采集到的所述视频帧写入预设共享内存中;
若所述采集时刻处于所述时间窗口序列中的读窗口,则控制预设的视频使用进程从所述预设共享内存中读取所述视频采集进程在预设时间节点写入所述预设共享内存中的视频帧。
2.如权利要求1所述的视频传输方法,其特征在于,所述通过预设的视频采集进程采集视频帧的步骤包括:
建立与视频采集设备之间的通用串行总线连接;
通过所述通用串行总线连接的驱动程序提供的应用程序编程接口,控制预设的视频采集进程读取所述视频采集设备采集到的视频帧;
或者,通过预设的网络地址和端口,控制预设的视频采集进程从网络视频源采集视频帧。
3.如权利要求1所述的视频传输方法,其特征在于,所述时间窗口序列包括多个周期,其中每个周期由依次排列的写窗口、第一休眠窗口、读窗口和第二休眠窗口组成,且所述写窗口、所述第一休眠窗口、所述读窗口和所述第二休眠窗口的大小为一相同的预设时长。
4.如权利要求3所述的视频传输方法,其特征在于,所述确定所述采集时刻在预设的时间窗口序列中所处的时间窗口的步骤包括:
计算所述采集时刻与预设的初始时刻之间的间隔时长;
获取所述预设时长的时间单位,将所述预设时长的时间单位作为目标换算单位,对所述间隔时长进行单位换算;
将进行单位换算后的间隔时长除以所述预设时长;
根据相除运算的结果确定所述采集时刻在预设的时间窗口序列中所处的时间窗口。
5.如权利要求4所述的视频传输方法,其特征在于,所述根据相除运算的结果确定所述采集时刻在预设的时间窗口序列中所处的时间窗口的步骤包括:
将所述相除运算的整数商进行对4取模运算,得到对应的余数;
当所述余数为0时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为写窗口;
当所述余数为1时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第一休眠窗口;
当所述余数为2时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为读窗口;
当所述余数为3时,确定所述采集时刻在所述时间窗口序列中所处的时间窗口为第二休眠窗口。
6.如权利要求3所述的视频传输方法,其特征在于,所述确定所述采集时刻在预设的时间窗口序列中所处的时间窗口的步骤之后,还包括:
若所述采集时刻处于所述时间窗口序列中的第一休眠窗口或第二休眠窗口,则返回步骤:通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻。
7.如权利要求1-6中任一项所述的视频传输方法,其特征在于,所述通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻的步骤之前,还包括:
判断所述视频采集进程和所述视频使用进程是否运行在同一个主机上;
若所述视频采集进程和所述视频使用进程运行在同一个主机上,则通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
若所述视频采集进程和所述视频使用进程运行在不同主机上,则通过网络时间协议,对所述视频采集进程运行的主机和所述视频使用进程运行的主机进行时间同步处理。
8.一种视频传输装置,其特征在于,所述视频传输装置包括:
采集模块,用于通过预设的视频采集进程采集视频帧,并获取采集所述视频帧的采集时刻;
确定模块,用于确定所述采集时刻在预设的时间窗口序列中所处的时间窗口,所述时间窗口为写窗口或读窗口,所述写窗口仅允许执行基于预设共享内存的写操作,所述读窗口仅允许执行基于预设共享内存的读操作;
写入模块,用于若所述采集时刻处于所述时间窗口序列中的写窗口,则将采集到的所述视频帧写入预设共享内存中;
读取模块,用于若所述采集时刻处于所述时间窗口序列中的读窗口,则控制预设的视频使用进程从所述预设共享内存中读取所述视频采集进程在预设时间节点写入所述预设共享内存中的视频帧。
9.一种视频传输设备,其特征在于,所述视频传输设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述视频传输设备执行如权利要求1-7中任一项所述的视频传输方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的视频传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010460302.2A CN111698530A (zh) | 2020-05-27 | 2020-05-27 | 视频传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010460302.2A CN111698530A (zh) | 2020-05-27 | 2020-05-27 | 视频传输方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111698530A true CN111698530A (zh) | 2020-09-22 |
Family
ID=72478591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010460302.2A Pending CN111698530A (zh) | 2020-05-27 | 2020-05-27 | 视频传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111698530A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112616024A (zh) * | 2020-12-31 | 2021-04-06 | 深兰科技(上海)有限公司 | Usb摄像头数据获取方法、装置、电子设备和存储介质 |
CN114071222A (zh) * | 2021-11-15 | 2022-02-18 | 深圳Tcl新技术有限公司 | 音视频数据共享装置及电子设备 |
CN115022671A (zh) * | 2022-06-02 | 2022-09-06 | 智道网联科技(北京)有限公司 | 多进程视频输出方法、云端、终端、电子设备及存储介质 |
CN116204337A (zh) * | 2023-03-03 | 2023-06-02 | 广州市易鸿智能装备有限公司 | 一种图像传输方法、装置、设备和计算机存储介质 |
-
2020
- 2020-05-27 CN CN202010460302.2A patent/CN111698530A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112616024A (zh) * | 2020-12-31 | 2021-04-06 | 深兰科技(上海)有限公司 | Usb摄像头数据获取方法、装置、电子设备和存储介质 |
CN114071222A (zh) * | 2021-11-15 | 2022-02-18 | 深圳Tcl新技术有限公司 | 音视频数据共享装置及电子设备 |
CN114071222B (zh) * | 2021-11-15 | 2023-07-25 | 深圳Tcl新技术有限公司 | 音视频数据共享装置及电子设备 |
CN115022671A (zh) * | 2022-06-02 | 2022-09-06 | 智道网联科技(北京)有限公司 | 多进程视频输出方法、云端、终端、电子设备及存储介质 |
CN115022671B (zh) * | 2022-06-02 | 2024-03-01 | 智道网联科技(北京)有限公司 | 多进程视频输出方法、云端、终端、电子设备及存储介质 |
CN116204337A (zh) * | 2023-03-03 | 2023-06-02 | 广州市易鸿智能装备有限公司 | 一种图像传输方法、装置、设备和计算机存储介质 |
CN116204337B (zh) * | 2023-03-03 | 2024-04-09 | 广州市易鸿智能装备股份有限公司 | 一种图像传输方法、装置、设备和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111698530A (zh) | 视频传输方法、装置、设备及计算机可读存储介质 | |
US6025854A (en) | Method and apparatus for high speed image acquisition | |
US20170289646A1 (en) | Multi-camera dataset assembly and management with high precision timestamp requirements | |
CN101634975B (zh) | 一种实现dma数据传输的方法及装置 | |
CN112154669B (zh) | 基于系统时钟的视频流帧时间戳的相关 | |
CN107948463B (zh) | 一种相机同步方法、装置及系统 | |
CN102637120A (zh) | 一种控制拼接屏幕同步显示的系统及方法 | |
CA3153390A1 (en) | Multi-camera synchronization method and distributed system | |
CN109324776B (zh) | 笔迹的同步方法、装置和系统 | |
JP7273975B2 (ja) | データ処理の方法、装置、機器及び記憶媒体 | |
CN112511839A (zh) | 一种视频传输控制方法、装置、设备及可读存储介质 | |
US9727252B2 (en) | Methods and systems for optimal snapshot distribution within a protection schedule | |
US20190103071A1 (en) | Frame drop processing method and system for played ppt | |
CN111314395A (zh) | 一种图像的传输方法及终端、存储介质 | |
CN113556366B (zh) | 多传感器数据同步方法及其系统和电子设备 | |
CN107040784B (zh) | 一种视频缓冲处理方法、系统和装置 | |
CN111857462B (zh) | 一种服务器及光标同步方法、装置、计算机可读存储介质 | |
EP1251702A2 (en) | Video encoding and decoding | |
WO2021078268A1 (zh) | 全向视觉避障实现方法、系统、装置及存储介质 | |
CN112422835A (zh) | 图像的高速采集方法、系统、设备及存储介质 | |
CN114500767A (zh) | 输入视频源调节方法、装置、视频输入卡和视频处理设备 | |
CN112817548B (zh) | 电子设备、显示控制方法、显示方法、装置和存储介质 | |
CN113519153B (zh) | 图像采集方法、装置、控制装置、计算机设备、可读存储介质、图像采集设备和远程驾驶系统 | |
JP3745597B2 (ja) | 超並列コンピュータ及びその処理方法 | |
EP3975159A1 (en) | Method and a system for measuring the latency of a graphical display output |
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 |