CN107371061A - 一种视频流播放方法、装置及设备 - Google Patents

一种视频流播放方法、装置及设备 Download PDF

Info

Publication number
CN107371061A
CN107371061A CN201710740248.5A CN201710740248A CN107371061A CN 107371061 A CN107371061 A CN 107371061A CN 201710740248 A CN201710740248 A CN 201710740248A CN 107371061 A CN107371061 A CN 107371061A
Authority
CN
China
Prior art keywords
video
frame
queue
preview
preview queue
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.)
Granted
Application number
CN201710740248.5A
Other languages
English (en)
Other versions
CN107371061B (zh
Inventor
李铁辉
张斌伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TP Link Technologies Co Ltd
Original Assignee
TP Link Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by TP Link Technologies Co Ltd filed Critical TP Link Technologies Co Ltd
Priority to CN201710740248.5A priority Critical patent/CN107371061B/zh
Publication of CN107371061A publication Critical patent/CN107371061A/zh
Application granted granted Critical
Publication of CN107371061B publication Critical patent/CN107371061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-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)
  • Television Signal Processing For Recording (AREA)

Abstract

一种视频流播放方法包括:从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列;获取所述预览队列中的视频帧信息中的视频帧的数量;根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。由于设置了二级缓冲机制,通过缓冲区和预览队列对视频帧进行两次缓冲,并根据预览队列中记录的视频帧数量调整播放速度,对于一定范围内的网络延迟或网络抖动,可以有效的减小解码器的解码压力,提高视频播放的流畅性。

Description

一种视频流播放方法、装置及设备
技术领域
本发明属于视频监控技术领域,尤其涉及一种视频流播放方法、装置及设备。
背景技术
在视频监控领域,NVR(英文全称为Network Video Recorder,中文全称为网络录像机)通常需要接收来自各个IPC(英文全称为IP Camera,中文全称为网络摄像机)端传输过来的实时码流,并在显示器上实时的播放各路IPC中的视频帧。
为了能够在NVR上稳定可靠的播放视频,一般的做法是由NVR将接收到的各路IPC传输过来的实时帧数据,直接放置到各自通道的缓冲区中,再由单一的线程不断的从各个缓冲区中取出视频数据并送到芯片层的视频解码器进行解码,在理论情况下,终端上能够正常显示各路视频的解码数据。
但是,在实际情况下,由于网络延迟或者镜头前的景物运动速度过快而导致视频帧没有按照正确的时间到达NVR,此时,如果将获取到的视频帧立即送到解码器解码,会导致解码器在单位时间内需要解码的视频数据量不均匀,容易导致解码器的解码压力在短时间内增大,从而出现画面卡顿的问题。
发明内容
有鉴于此,本发明实施例提供了一种视频流播放方法、装置及设备,以解决现有技术中的网络延迟或景物运动速度过快时,获取到的视频帧立即送到解码器解码,会导致解码器在单位时间内需要解码的视频数据量不均匀,可能会造成解码器的解码压力大,在播放时出现画面卡顿的问题。
本发明实施例的第一方面提供了一种视频流播放方法,所述视频流播放方法包括:
从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列;
获取所述预览队列中的视频帧信息中的视频帧的数量;
根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。
结合第一方面,在第一方面的第一种可能实现方式,在所述根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度的步骤之前,所述方法还包括:
获取所述视频帧的缓冲区中的视频帧所占用的内存空间;
在所述视频帧的缓冲区中的视频帧所占用的内存空间大于预定存储值时,则将预览队列由等待状态切换为播放状态。
结合第一方面或第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式,所述根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度的步骤包括:
当预览队列中的视频帧的数量大于第一阈值时,视频帧根据第一预设速度值离开预览队列;
当预览队列中的视频帧的数量小于第一阈值时,视频帧根据第二预设速度值离开预览队列;
其中,第一预设速度值大于第二预设速度值。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述第一预设速度值在第二预设速度值所对应的队列的出帧间隔的基础上,减少预定比例的时间。
结合第一方面,在第一方面的第四种可能实现方式,所述根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度的步骤为:
根据所述预览队列中视频帧的数量,通过调节视频帧离开预览队列的出帧间隔来调节所述视频帧的播放速度。
结合第一方面,在第一方面的第五种可能实现方式,所述通过调节视频帧的出帧间隔来调节所述视频帧的播放速度的步骤包括:
比较当前的系统时间是否大于或等于前一视频帧发生离开预览队列的动作的时间与当前设定的出帧间隔之和;
如果当前的系统时间大于或等于前一视频帧发生离开预览队列的动作的时间与当前设定的出帧间隔之和,则判断当前视频帧离开预览队列。
结合第一方面的第一种可能实现方式,在第一方面的第六种可能实现方式,所述则将预览队列由等待状态切换为播放状态的步骤包括:
当所述预览队列中记录的视频帧的总时长大于或等于预定时长时,如果预览队列中记录的视频帧数量大于第一视频帧参考值,设定预览队列由等待状态转为播放状态。
结合第一方面,在第一方面的第七种可能实现方式,当系统中包括多个通道时,多个通道根据同一定时器,将缓存的视频帧信息写入到预览队列,以及根据各通道对应的播放速度从预览队列中读出视频帧信息。
结合第一方面,在第一方面的第八种可能实现方式中,在视频帧离开预览队列时,释放所述缓冲区所缓存的该视频帧所占用的存储空间。
本发明实施例的第二方面提供了一种视频流播放装置,所述视频流播放装置包括:
视频帧写入单元,用于从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列;
视频帧数量获取单元,获取所述预览队列中的视频帧信息中的视频帧的数量;
调节单元,用于根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。
结合第二方面,在第二方面的第一种可能实现方式中,所述装置还包括:
缓存数量获取单元,用于获取所述视频帧的缓冲区中的视频帧所占用的内存空间;
播放控制单元,用于在所述视频帧的缓冲区中的视频帧所占用的内存空间大于预定存储值时,则将预览队列由等待状态切换为播放状态。
本发明实施例的第三方面提供了一种视频流播放设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述视频流播放方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述视频流播放方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:将缓冲区的视频帧信息写入到预览队列,并且根据获取的预览队列中的视频帧信息中视频帧数量,相应的调节视频帧的播放速度。由于设置了二级缓冲机制,通过缓冲区和预览队列对视频帧进行两次缓冲,并根据预览队列中的视频帧数量调整播放速度,对于一定范围内的网络延迟或网络抖动,可以有效的减小解码器的解码压力,提高视频播放的流畅性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的视频流播放的系统结构示意图;
图2是本发明实施例提供的视频流播放方法的实现流程示意图;
图3是本发明实施例提供的调节视频帧离开预览队列的出帧间隔的实现流程示意图;
图4是本发明实施例提供的视频流播放方法的实现流程的示例图;
图5是本发明实施例提供的视频流播放装置的示意图;
图6是本发明实施例提供的视频流播放设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
如图1所示,本发明实施例所述视频流播放系统,包括一个或者多个网络摄像机IPC,以及与一个或多个网络摄像机相连的网络录像机NVR,所述网络摄像机IPC与网络录像机NVR通过交换机相连。其中,任意通道的网络摄像机IPC获取视频流图像,并对所述视频流图像进行编码,将编码后的视频流图像通过有线或者无线的方式,发送至网络录像机NVR端,由网络录像机根据接收的视频流,进行解码,播放解码后的图像。
在本发明实施例所述网络录像机NVR,在视频流进入解码器之前,还包括将视频帧缓存至缓冲区,并由预览队列记录所述缓冲区所缓存的视频帧信息。其中,缓冲区可以按时间先后顺序循环存储视频帧的数据,供实时预览以及存储模块使用。预览队列可以从视频帧的缓冲区所缓存的数据中读取所有最新连续的视频帧信息,并将所有缓冲区的视频帧信息写入到预览队列。从预览队列中可以读取所述缓冲区缓存的视频帧的数量,确定是否开始播放视频帧。比如,在缓冲区所缓存的视频帧超过缓冲区容量的一半时,预览队列由等待状态切换为播放状态。所述缓冲区的大小可以设定最大缓冲的帧数,比如可以设定最大缓冲的帧数为50帧,主码流最多占用的空间为1.6M,子码流最多占用的空间为0.4M。该值可以根据当前通道最多可使用的内存数做相应的调整。
所述预览队列可以预先设定大小为N_max,预览队列按照先进先出的方式记录视频帧信息,可以包括缓冲区中所缓冲的视频帧的存储地址、帧大小、PTS(英文全称为Presentation Time Stamp,中文全称为显示时间或期望解码时间)等信息。预览队列包括“等待”状态和“播放”状态两种状态。在“等待”状态下,预览队列只有视频帧信息进入预览队列的操作,在“播放”状态下,视频帧信息有进入预览队列和离开预览队列的操作。在初始状态下,预览队列为“等待”状态,当预览队列中写入的视频帧信息个数达到预定个数且缓冲区的视频帧的个数达到一定数值时,预览队列由“等待”状态转为“播放”状态。当预览队列中的视频帧信息的视频帧数量逐渐减小至预览队列的视频帧最小值时,预览队列由“播放”状态转为“等待”状态。其中,将视频帧信息写入预览队列包括将当前视频帧存放的地址、帧大小、PTS等信息作为队列的数据单元部分写入队尾,同时完成预览队列中帧数、帧总时长、帧总大小等辅助信息的计算。视频帧信息离开预览队列时,相应的更新发生动作的系统时间POP_time为当前系统时间SYS_time,依据其数据单元中帧地址以及帧大小信息将缓冲区的视频帧输送到解码器,同时完成预览队列中帧数、帧总时长、帧总大小等辅助信息的计算。
所述缓冲区中所缓存的视频帧信息,按照预设的定时器时间间隔,全部写入到预览队列,将视频帧信息写入预览队列时,如果是预览队列首次写入视频帧信息,那么预览队列记录为新的视频帧信息,后续的视频帧信息接着上次最后写入预览队列的视频帧信息。
可以通过缓冲区中视频帧的多少,控制预览队列是否开始播放视频帧,根据预览队列中记录的视频帧的数量,可以控制视频的播放速度,当预览队列中记录的视频帧数量大于第一阈值,选用较大的播放速度对视频帧进行播放,当预览队列中的视频帧数量小于第二阈值时,选用较小的播放速度对视频帧进行播放,从而可以有效适应由网络延迟带来的视频帧数据延后或堆积。
如图2所示为本发明实施例提供的一种视频流播放方法的实现流程,详述如下:
在步骤S201中,从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列。
在缓冲区中的视频帧信息写入到预览队列时,第一个进入到预览队列的视频帧的帧间隔F_interval可以记为0,当下一个视频帧入队时,使用该视频帧的期望解码时间PTS,减去预览队列的尾部的视频帧(即该视频的前一个视频帧)的期望解码时间PTS,得到的时间值记录为该视频帧所对应的帧间隔F_interval。
为了保证所述预览队列能够正常有效的对视频帧进行解码播放,需要设定预览队列记录的视频帧的最小值N_min以及预览队列的视频帧的最大值N_max。为了确保能够计算出正确的出帧间隔信息,所述预览队列的视频帧的最小值N_min需大于或等于2,本发明实施例可以选用N_min=2。
所述预览队列中的视频帧的最大值N_max的取值,可以与缓冲区能够最大缓冲的视频帧的数量一致,从而可以有效的将缓冲区的视频帧写入到预览队列。当然,所述预览队列也可以小于所述缓冲区能够最大缓冲的视频帧数量。
其中,将缓冲区的视频帧信息写入到预览队列时,可以将当前视频帧存放的地址、帧大小、由网络摄像机IPC端打上的当前帧期望的解码时间PTS等信息作为队列的数据单元部分写入到预览队列的队尾,同时完成队列中帧数、帧总时长、帧总大小等辅助信息的计算。
将缓冲区中的视频帧信息写入到预览队列,直到预览队列的空间已满,或者缓冲区没有视频帧时,停止将视频帧写入到预览队列。
在步骤S202中,获取所述预览队列中的视频帧信息中的视频帧的数量;
所述预览队列中的视频帧信息的获取,可以在视频帧信息每次完成进入预览队列时,同步记录预览队列中所记录的视频帧数量。当然,在视频播放过程中,如果有视频帧信息离开预览队列送入到解码器时,同样需要同步记录预览队列中所记录的帧数量。或者还可以包括帧总时长、帧总大小等辅助信息。
在步骤S203中,根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。
在本发明实施例中,根据预览队列中视频帧的数量,来调节视频帧离开预览队列的速度,也即视频的解码播放的速度,具体可以包括:
1.1当预览队列中的视频帧的数量大于第一阈值时,视频帧根据第一预设速度值离开预览队列;
1.2当预览队列中的视频帧的数量小于第一阈值时,视频帧根据第二预设速度值离开预览队列;
其中,第一预设速度值大于第二预设速度值。
或者,本申请还可以包括:当预览队列中的视频帧的数量小于第二阈值时,视频帧根据第三预设速度值离开预览队列,预览队列中的视频帧的数量大于第二阈值,小于第一阈值时根据第二预设速度值离开预览队列,其中:第二预设速度值大于第三预设速度值。
其中,视频帧离开预览队列,是指从预览队列中读出视频帧信息,对视频帧的缓冲区中的视频帧进行解码播放。
其中,所述视频帧离开预览队列的速度,可以通过调节视频帧离开预览队列的出帧间隔来实现,具体可以如图3所示,包括:
在步骤S301中,比较当前的系统时间是否大于或等于前一视频帧发生离开预览队列的动作的时间与当前设定的出帧间隔之和。
可以按照预设的定时器时间间隔以及视频帧的出帧间隔,控制所缓存的视频帧的播放。所述预设的定时器时间间隔,可以采用固定时间的时间间隔,所述定时器时间间隔与视频帧的出帧间隔相关,一般选取定时器时间间隔的整数倍与视频帧的出帧间隔相等。比如,视频帧的出帧间隔的最小值为40ms,当我们选用的定时器时间间隔为5ms时,视频帧的出帧间隔的最小值正好为定时器时间间隔的8倍。可以根据播放的精度要求,相应的调整所述定时器时间间隔。定时器时间间隔越小,播放控制的精度也越高,其原因解释如下:
如果当前的系统时间为SYS_time,上一视频帧离开预览队列的动作的发生时间为POP_time,当前设定的视频帧离开预览队列的出帧间隔为POP_delay,那么,每隔定时器时间间隔T,需要比较当前的系统时间SYS_time是否大于或等于上一视频帧离开预览队列的动作的发生时间POP_time+出帧间隔POP_delay。定时器时间时间间隔T越小,比较的次数越多,播放控制的精度也越高。
对于首帧入队的时间间隔POP_delay,可以直接记为0。这样,在首帧出队(离开队列)时,可以在系统满足播放条件时,直接读取首帧进行解码播放。
在视频帧离开预览队列时,根据视频帧的帧大小以及帧地址等信息,将视频帧送入到解码器进行解码。同时完成预览队列中视频帧数量、视频帧总时长、视频帧总大小的计算。
在步骤S302中,如果当前的系统时间大于或等于前一视频帧发生离开预览队列的动作的时间与当前设定的出帧间隔之和,则判断当前视频帧离开预览队列。
如果SYS_time大于或等于POP_time+POP_delay,则表示系统时间晚于或等于视频帧的可播放时间,可以允许视频帧插放,并可将当前的系统时间SYS_time作为上一视频帧离开预览队列的动作的发生时间POP_time。如果SYS_time小于POP_time+POP_delay,等待下一个定时器时间间隔再进行比较。
其中,预览队列中的视频帧的数量大于第一阈值时,实际指预览队列中的视频帧的数量大于第一阈值且小于预览队列的视频帧的最大值N_max。所述预览队列中的视频帧的数量小于第二阈值时,实际指预览队列中的视频帧的数量小于第二阈值,且大于预览队列的视频帧的最小值N_min。
也就是说,可以设定一个速度调节阈值Speed_th,表示队列中的视频帧的个数与状态转换的视频帧阈值N_th的差的绝对值,且在预览队列中的视频帧数量大于N_th+Speed_th时,增加所述视频帧离开所述预览队列的速度。其中,所述状态转换的视频帧阈值N_th是指预览队列由“等待”状态转为“播放”状态时,在预览队列中的视频帧的数量。
同样,当预览队列中的视频帧数量小于N_th-Speed_th时,减小所述视频帧离开所述预览队列的速度。
其中,增加或减小所述视频帧离开所述预览队列的速度,可以包括:
所述第一预设速度值在第二预设速度值所对应的队列的出帧间隔的基础上,减少预定比例的时间其中,第一预设速度值大于第二预设速度值;
当然,本申请还可以包括:第三预设速度值在第二预设速度值所对应的队列的出帧间隔的基础上,增加预定比例的时间。
比如,第二预设速度值所对应的队列的出帧间隔为40ms,那么,在所述出帧间隔40ms的基础上,可以增加一个定时器时间间隔5ms,得到第三预设速度值对应的出帧间隔为45ms,可以减少一个定时器时间间隔5ms,得到第一预设速度值对应的出帧间隔为35ms。
当然,本发明实施例仅例举了通过两个或者三个不同的速度来控制视频帧离开预览队列,可以理解,还可以根据预览队列中的视频帧的数量,增加多个不同的速度来控制视频帧离开所述预览队列的速度。
在本发明实施例中,将存储在缓冲区的视频帧信息写入预览队列时,缓冲区中的视频帧所对应的存储空间不释放。在监测到预览队列中的视频帧离开后,才相应的释放所述缓冲区所缓存的视频帧,或被新的视频帧所覆盖,从而可以有效的控制视频帧数据的安全性。
另外,还可以根据预览队列中视频帧的数量,确定预览视频帧是否转为播放状态,可以包括:
当所述预览队列中记录的视频帧的总时长大于或等于预定时长时,如果预览队列中记录的视频帧数量大于第一视频帧参考值,设定预览队列由等待状态转为播放状态;
或者,本申请还可以包括:当所述预览队列中记录的视频帧的总时长小于预定时长时,如果视频帧个数大于第二视频帧参考值,设定预览队列由等待状态转为播放状态;
其中,所述第一视频帧参考值小于第二视频帧参考值。
在视频帧进入预览队列时,以及视频帧离开预览队列时,均可记录预览队列中视频帧数量、视频帧总时长等辅助信息,可以结合这些辅助信息确定预览队列是否进入播放状态,具体可以为:
预先设定一个时间阈值,即预定时长,如果预览队列中的视频帧总时长大于或等于该预定时长,在判断预览队列中的视频帧数量大于第一视频帧参考值时,即可进入播放状态,如果预览队列中的视频帧总时长小于所述预定时长,在判断预览队列中的视频帧个数大于第二视频帧参考值时,即可进入播放状态。
例如,所述预定时长可以优选为240ms,所述第一视频帧参考值和所述第二视频帧参考值可以可以根据队列中帧的总时长动态计算得到。通过将预览队列中的视频帧总时长确定队列中帧数的参考值(第一视频帧参考值和第二视频帧参考值),结合预览队列中的视频帧个数进行判断,有利于及时的播放所述视频帧。
图4示出了本发明实施例提供的又一视频流播放方法的实现流程,包括:
在步骤S401中,从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列。
在步骤S402中,获取所述视频帧的缓冲区中的视频帧所占用的内存空间。
具体的,本发明实施例中所述缓冲区,可用于接收由网络摄像机IPC获取的视频帧图像,并且可以将视频帧缓存在所述缓冲区,通过预定的定时器时间周期,将所述缓冲区的视频帧信息写入到预览队列中,直到缓冲区的视频帧为空,或者预览队列中的视频帧已经写满为止。
在步骤S403中,在所述视频帧的缓冲区中的视频帧所占用的内存空间大于预定存储值时,则将预览队列由等待状态切换为播放状态。
优选的一种实施方式为,当所述缓冲区中所缓存的视频帧的数量达到缓冲区的一半时,所述预览队列可以开始由“等待”状态转为“播放”状态。
当所述预览队列中记录的视频帧数量小于或等于预览队列的视频帧的最小值N_min时,则将预览队列中的“播放状态”转为“等待”状态。
在步骤S404中,获取所述预览队列中的视频帧信息中的视频帧的数量。
在步骤S405中,根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。
根据预览队列中的视频帧的数量,调节所述视频帧的播放速度,即视频帧离开所述预览队列的速度。可以适应预览队列中的视频帧数量的缓冲要求,即对于视频帧数量较大时,选择较大的播放速度播放视频帧,对于视频帧数量较小时,选择较小的播放速度播放视频帧,对于视频帧数量较普通时,选择一般的播放速度播放视频帧。
上述对单个通道的视频帧的进入队列以及离开队列的流程做了说明,当系统存在多个视频通道时,可以按照相同的方式,控制视频帧进入队列,以及从队列中读取视频帧。比如,多个通道根据同一定时器,将缓存的视频帧信息写入到预览队列,以及根据各通道对应的播放速度从预览队列中读出视频帧信息。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图5为本发明实施例提供的一种视频流播放装置的结构示意图,包括:
视频帧写入单元501,用于从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列;
视频帧数量获取单元502,获取所述预览队列中的视频帧信息中的视频帧的数量;
调节单元503,用于根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。
优选的,所述装置还包括:
缓存数量获取单元,用于获取所述视频帧的缓冲区中的视频帧所占用的内存空间;
播放控制单元,用于在所述视频帧的缓冲区中的视频帧所占用的内存空间大于预定存储值时,则将预览队列由等待状态切换为播放状态。
图5所述视频流的播放装置,与图2-图3所述的视频流播放方法对应。
图6是本发明一实施例提供的视频流播放设备的示意图。如图6所示,该实施例的视频流播放设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如视频流播放程序。所述处理器60执行所述计算机程序62时实现上述各个视频流播放方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块501至503的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述视频流播放设备6中的执行过程。例如,所述计算机程序62可以被分割视频帧写入单元、视频帧数量获取单元、调节单元,各模块具体功能如下:
视频帧写入单元,用于从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列;
视频帧数量获取单元,获取所述预览队列中的视频帧信息中的视频帧的数量;
调节单元,用于根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度
所述视频流播放设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述视频流播放设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是视频流播放设备6的示例,并不构成对视频流播放设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述视频流播放设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述视频流播放设备6的内部存储单元,例如视频流播放设备6的硬盘或内存。所述存储器61也可以是所述视频流播放设备6的外部存储设备,例如所述视频流播放设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,所述存储器61还可以既包括所述视频流播放设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述视频流播放设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (13)

1.一种视频流播放方法,其特征在于,所述视频流播放方法包括:
从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列;
获取所述预览队列中的视频帧信息中的视频帧的数量;
根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。
2.根据权利要求1所述的视频流播放方法,其特征在于,在所述根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度的步骤之前,所述方法还包括:
获取所述视频帧的缓冲区中的视频帧所占用的内存空间;
在所述视频帧的缓冲区中的视频帧所占用的内存空间大于预定存储值时,则将预览队列由等待状态切换为播放状态。
3.根据权利要求1或2所述的视频流播放方法,其特征在于,所述根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度的步骤包括:
当预览队列中的视频帧的数量大于第一阈值时,视频帧根据第一预设速度值离开预览队列;
当预览队列中的视频帧的数量小于第一阈值时,视频帧根据第二预设速度值离开预览队列;
其中,第一预设速度值大于第二预设速度值。
4.根据要求3所述视频流播放方法,其特征在于,所述第一预设速度值在第二预设速度值所对应的队列的出帧间隔的基础上,减少预定比例的时间。
5.根据权利要求1所述视频流播放方法,其特征在于,所述根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度的步骤为:
根据所述预览队列中视频帧的数量,通过调节视频帧离开预览队列的出帧间隔来调节所述视频帧的播放速度。
6.根据权利要求5所述视频流播放方法,其特征在于,所述通过调节视频帧的出帧间隔来调节所述视频帧的播放速度的步骤包括:
比较当前的系统时间是否大于或等于前一视频帧发生离开预览队列的动作的时间与当前设定的出帧间隔之和;
如果当前的系统时间大于或等于前一视频帧发生离开预览队列的动作的时间与当前设定的出帧间隔之和,则判断当前视频帧离开预览队列。
7.根据权利要求2所述视频流播放方法,其特征在于,所述则将预览队列由等待状态切换为播放状态的步骤包括:
当所述预览队列中记录的视频帧的总时长大于或等于预定时长时,如果预览队列中记录的视频帧数量大于第一视频帧参考值,设定预览队列由等待状态转为播放状态。
8.根据权利要求1所述视频流播放方法,其特征在于,当系统中包括多个通道时,多个通道根据同一定时器,将缓存的视频帧信息写入到预览队列,以及根据各通道对应的播放速度从预览队列中读出视频帧信息。
9.根据权利要求1所述视频流播放方法,其特征在于,在视频帧离开预览队列时,释放所述缓冲区所缓存的该视频帧所占用的存储空间。
10.一种视频流播放装置,其特征在于,所述视频流播放装置包括:
视频帧写入单元,用于从视频帧的缓冲区中所缓存的数据中读取视频帧信息,将所述视频帧信息写入到预览队列;
视频帧数量获取单元,获取所述预览队列中的视频帧信息中的视频帧的数量;
调节单元,用于根据所述预览队列中视频帧的数量,相应的调节所述视频帧的播放速度。
11.根据权利要求10所述的视频流播放装置,其特征在于,所述装置还包括:
缓存数量获取单元,用于获取所述视频帧的缓冲区中的视频帧所占用的内存空间;
播放控制单元,用于在所述视频帧的缓冲区中的视频帧所占用的内存空间大于预定存储值时,则将预览队列由等待状态切换为播放状态。
12.一种视频流播放设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述视频流播放方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述视频流播放方法的步骤。
CN201710740248.5A 2017-08-25 2017-08-25 一种视频流播放方法、装置及设备 Active CN107371061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710740248.5A CN107371061B (zh) 2017-08-25 2017-08-25 一种视频流播放方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710740248.5A CN107371061B (zh) 2017-08-25 2017-08-25 一种视频流播放方法、装置及设备

Publications (2)

Publication Number Publication Date
CN107371061A true CN107371061A (zh) 2017-11-21
CN107371061B CN107371061B (zh) 2021-03-19

Family

ID=60311734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710740248.5A Active CN107371061B (zh) 2017-08-25 2017-08-25 一种视频流播放方法、装置及设备

Country Status (1)

Country Link
CN (1) CN107371061B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965807A (zh) * 2018-07-17 2018-12-07 深圳市共进电子股份有限公司 实时视频的播放控制方法、装置、终端及存储介质
CN108966028A (zh) * 2018-08-17 2018-12-07 上海悠络客电子科技股份有限公司 一种基于网络状况动态调节播放速度的防抖动方法
CN110072143A (zh) * 2019-03-18 2019-07-30 视联动力信息技术股份有限公司 一种视频流解码方法和装置
CN110213308A (zh) * 2018-02-28 2019-09-06 杭州海康威视数字技术股份有限公司 一种解码视频数据的方法及装置
CN111510761A (zh) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 首帧均衡限流方法、装置、计算机设备及可读存储介质
CN111918142A (zh) * 2020-07-29 2020-11-10 杭州叙简科技股份有限公司 国标视频码流转rtp流的平顺方法、装置、设备及介质
CN112104907A (zh) * 2019-06-17 2020-12-18 西安光启未来技术研究院 图片播放方法和播放装置
CN112702550A (zh) * 2020-12-21 2021-04-23 上海商米科技集团股份有限公司 一种nvr多进程共享音视频流系统及实现方法
CN113271496A (zh) * 2021-07-15 2021-08-17 全时云商务服务股份有限公司 一种网络直播中视频平滑播放方法、系统和可读存储介质
CN114710637A (zh) * 2022-04-18 2022-07-05 深圳创维-Rgb电子有限公司 Web端监控视频流低时延处理方法、装置、设备及介质
CN115866309A (zh) * 2022-11-29 2023-03-28 广州后为科技有限公司 一种支持多路视频同步的音视频缓存方法和装置
CN115866317A (zh) * 2022-11-29 2023-03-28 广州后为科技有限公司 一种适用于网络摄像机的音视频缓存方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521813A (zh) * 2009-04-17 2009-09-02 杭州华三通信技术有限公司 一种处理媒体流的方法和装置
EP2403202A1 (en) * 2010-07-02 2012-01-04 Thomson Licensing Computer system and method for operating the same
CN102752669A (zh) * 2011-04-19 2012-10-24 中国电信股份有限公司 多通道实时流媒体文件的传送处理方法与系统、接收装置
US20120274856A1 (en) * 2011-04-27 2012-11-01 Purushotam Kumar Frame List Processing for Multiple Video Channels
CN103078810A (zh) * 2012-12-31 2013-05-01 中国科学院自动化研究所 一种高效率富媒体展现系统和方法
CN104133596A (zh) * 2014-08-13 2014-11-05 福建星网视易信息系统有限公司 电子屏信息的显示方法及装置
CN104735485A (zh) * 2015-03-05 2015-06-24 上海小蚁科技有限公司 一种播放视频的方法及装置
CN104967865A (zh) * 2015-03-24 2015-10-07 腾讯科技(北京)有限公司 视频预览方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101521813A (zh) * 2009-04-17 2009-09-02 杭州华三通信技术有限公司 一种处理媒体流的方法和装置
EP2403202A1 (en) * 2010-07-02 2012-01-04 Thomson Licensing Computer system and method for operating the same
CN102752669A (zh) * 2011-04-19 2012-10-24 中国电信股份有限公司 多通道实时流媒体文件的传送处理方法与系统、接收装置
US20120274856A1 (en) * 2011-04-27 2012-11-01 Purushotam Kumar Frame List Processing for Multiple Video Channels
CN103078810A (zh) * 2012-12-31 2013-05-01 中国科学院自动化研究所 一种高效率富媒体展现系统和方法
CN104133596A (zh) * 2014-08-13 2014-11-05 福建星网视易信息系统有限公司 电子屏信息的显示方法及装置
CN104735485A (zh) * 2015-03-05 2015-06-24 上海小蚁科技有限公司 一种播放视频的方法及装置
CN104967865A (zh) * 2015-03-24 2015-10-07 腾讯科技(北京)有限公司 视频预览方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
梁立伟: "一种基于DSP的嵌入式多媒体监控系统的设计与实现", 《系统仿真学报》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110213308A (zh) * 2018-02-28 2019-09-06 杭州海康威视数字技术股份有限公司 一种解码视频数据的方法及装置
CN108965807A (zh) * 2018-07-17 2018-12-07 深圳市共进电子股份有限公司 实时视频的播放控制方法、装置、终端及存储介质
CN108966028A (zh) * 2018-08-17 2018-12-07 上海悠络客电子科技股份有限公司 一种基于网络状况动态调节播放速度的防抖动方法
CN108966028B (zh) * 2018-08-17 2021-04-30 上海悠络客电子科技股份有限公司 一种基于网络状况动态调节播放速度的防抖动方法
US11463494B2 (en) 2019-01-30 2022-10-04 Shanghai Bilibili Technology Co., Ltd. Balance of initial frame and limitation of traffic
CN111510761A (zh) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 首帧均衡限流方法、装置、计算机设备及可读存储介质
CN110072143A (zh) * 2019-03-18 2019-07-30 视联动力信息技术股份有限公司 一种视频流解码方法和装置
CN110072143B (zh) * 2019-03-18 2021-03-12 视联动力信息技术股份有限公司 一种视频流解码方法和装置
CN112104907A (zh) * 2019-06-17 2020-12-18 西安光启未来技术研究院 图片播放方法和播放装置
CN112104907B (zh) * 2019-06-17 2024-02-23 西安光启智能技术有限公司 图片播放方法和播放装置
CN111918142A (zh) * 2020-07-29 2020-11-10 杭州叙简科技股份有限公司 国标视频码流转rtp流的平顺方法、装置、设备及介质
CN112702550A (zh) * 2020-12-21 2021-04-23 上海商米科技集团股份有限公司 一种nvr多进程共享音视频流系统及实现方法
CN113271496B (zh) * 2021-07-15 2021-10-01 全时云商务服务股份有限公司 一种网络直播中视频平滑播放方法、系统和可读存储介质
CN113271496A (zh) * 2021-07-15 2021-08-17 全时云商务服务股份有限公司 一种网络直播中视频平滑播放方法、系统和可读存储介质
CN114710637A (zh) * 2022-04-18 2022-07-05 深圳创维-Rgb电子有限公司 Web端监控视频流低时延处理方法、装置、设备及介质
CN115866309A (zh) * 2022-11-29 2023-03-28 广州后为科技有限公司 一种支持多路视频同步的音视频缓存方法和装置
CN115866317A (zh) * 2022-11-29 2023-03-28 广州后为科技有限公司 一种适用于网络摄像机的音视频缓存方法和装置
CN115866317B (zh) * 2022-11-29 2023-09-05 广州后为科技有限公司 一种适用于网络摄像机的音视频缓存方法和装置
CN115866309B (zh) * 2022-11-29 2023-09-22 广州后为科技有限公司 一种支持多路视频同步的音视频缓存方法和装置

Also Published As

Publication number Publication date
CN107371061B (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN107371061A (zh) 一种视频流播放方法、装置及设备
CN106713855B (zh) 一种视频播放方法及装置
KR100929073B1 (ko) 휴대 방송 시스템에서 다중 스트림 수신 장치 및 방법
CN112437345B (zh) 视频倍速播放方法、装置、电子设备及存储介质
WO2021159770A1 (zh) 视频播放方法、装置、设备和存储介质
US20230144483A1 (en) Method for encoding video data, device, and storage medium
CN107155093B (zh) 一种视频预览方法、装置及设备
EP3866481A1 (en) Audio/video switching method and apparatus, and computer device and readable storage medium
KR20050118197A (ko) 스트림 버퍼 채널들에 대한 cpi 데이터
US11600299B2 (en) Video processing method and apparatus, terminal, and storage medium
CN107333163A (zh) 一种视频处理方法及装置、一种终端及存储介质
CN107517400A (zh) 流媒体播放方法及流媒体播放器
CN113596545A (zh) 音轨切换方法、装置、媒体播放设备和计算机存储介质
WO2020035036A1 (zh) 一种节目录制、播放方法及装置
CN117061717A (zh) 投影拼接视频有效控制方法、系统及其应用
US8548275B2 (en) Image processing device and image processing method
CN115484494B (zh) 一种数字孪生视频流的处理方法、装置及设备
CN112911390B (zh) 一种视频数据的播放方法及终端设备
CN109302574A (zh) 一种处理视频流的方法和装置
US9892088B2 (en) Data processing system and method of controlling access to a shared memory unit
CN112073752B (zh) 一种多线路流量分配的方法、装置及电子设备
CN111669539A (zh) 一种视频播放方法、装置及电子设备
CN110786020A (zh) 视频的处理方法、装置及计算机可读存储介质
CN108335706A (zh) 一种多媒体文件的无缝播放方法、终端设备及存储介质
CN112887742B (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
GR01 Patent grant
GR01 Patent grant