CN105828109A - 服务器、客户端及基于rtsp/rtp的播放系统 - Google Patents

服务器、客户端及基于rtsp/rtp的播放系统 Download PDF

Info

Publication number
CN105828109A
CN105828109A CN201510816316.2A CN201510816316A CN105828109A CN 105828109 A CN105828109 A CN 105828109A CN 201510816316 A CN201510816316 A CN 201510816316A CN 105828109 A CN105828109 A CN 105828109A
Authority
CN
China
Prior art keywords
frame
video
module
key frame
flag bit
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
CN201510816316.2A
Other languages
English (en)
Other versions
CN105828109B (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.)
Guangdong Eshore Technology Co Ltd
Original Assignee
Guangdong Eshore Technology 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 Guangdong Eshore Technology Co Ltd filed Critical Guangdong Eshore Technology Co Ltd
Priority to CN201510816316.2A priority Critical patent/CN105828109B/zh
Publication of CN105828109A publication Critical patent/CN105828109A/zh
Application granted granted Critical
Publication of CN105828109B publication Critical patent/CN105828109B/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • 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/4334Recording operations
    • 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/4402Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种服务器、客户端及基于RTSP/RTP的播放系统。其中,服务器包括用于接收客户端发送的倒序播放请求的接收模块,其中,倒序播放请求包括起始位置信息和结束位置信息,起始位置信息对应倒序开始视频帧,结束位置信息对应倒序结束视频帧,倒序开始视频帧与倒序结束视频帧之间包括多个关键帧。用于判断倒序开始视频帧是否为关键帧的判断模块、若倒序开始视频帧非关键帧时,用于定位与倒序开始视频帧距离最近且位于倒序开始视频帧与倒序结束视频帧之间的第1关键帧的定位模块以及用于从第1关键帧开始逐帧发送第1关键帧与倒序开始视频帧之间的所有视频帧至客户端的发送模块。

Description

服务器、客户端及基于RTSP/RTP的播放系统
技术领域
本发明涉及视频监控技术领域,尤其涉及一种服务器、客户端及基于RTSP/RTP的播放系统。
背景技术
视频回放已经成为近年来视频监控的主要手段,而现有的视频回放的技术手段主要有如下两种:
第一种为采用私有协议传输视频流。譬如:专利申请号为:CN201310544305.4,专利名称为:一种基于硬盘录像机的视频倒序回查方法。该专利申请公开了“在视频顺序播放时,如果想从某个时间点开始倒放,先停止顺序播放,获取现在的视频播放结束时间,将该时间点确定为视频倒放开始时间;启动下载线程,从倒放开始时间算起,每5秒钟下载一段视频,直到将设定的倒放时间段内的视频倒放完毕,获得该倒放停止点的时间点;然后从倒放停止的时间点开始进入视频的顺序播放。”该技术方案中,客户端每隔5S钟下载一段视频,并对该视频进行解码后输出。该技术方案客户端频繁的下载请求会增大被下载端的工作量,降低被下载端的响应速度,此外,该技术方案中每隔5秒下载一段视频的模式不具有通用性,应用范围受到限制。
第二种为服务器端解码视频,倒序发送解码后的视频画面至客户端。譬如:专利申请号为:CN201410048139.3,专利名称为:一种HTTP流媒体实现快进快退播放的方法和系统。该专利申请公开了“当用户请求快进快退播放时,在该请求中携带快进快退的速度和开始的时间点,则根据快进快退的速度和开始的时间点向客户端顺序返回视频文件的截图。本发明通过服务器端向客户端投放一组截图代替视频,客户端按顺序快速显示截图代替视频播放,从而实现快进快退。”该技术方案中,服务器端解码视频帧,增大了服务器端的工作量,降低了服务器端的处理速率。此外,发送解码后的图片信息至客户端,增加了网络传输的数据量,以致降低了网络传输速度以及提升了网络占用量。
综上所述,如何在不影响服务器端的处理效率和网络传输速率的前提下,拓宽应用范围,是当前亟待解决的上技术问题。
发明内容
有鉴于此,实有必要提供一种不影响服务器端的处理效率和网络传输速率的前提下,拓宽应用范围的基于RTSP/RTP的播放系统,其中,该基于RTSP/RTP的播放系统包括服务器和客户端。
一种服务器,包括:
接收模块,用于接收客户端发送的倒序播放请求,倒序播放请求包括起始位置信息和结束位置信息,起始位置信息对应倒序开始视频帧,结束位置信息对应倒序结束视频帧,倒序开始视频帧与倒序结束视频帧之间包括多个关键帧。
判断模块,用于判断倒序开始视频帧是否为关键帧。
定位模块,用于若倒序开始视频帧非关键帧,定位与倒序开始视频帧距离最近且位于倒序开始视频帧与倒序结束视频帧之间的第n关键帧,其中,n=1。
发送模块,用于从第n关键帧开始逐帧发送第n关键帧与倒序开始视频帧之间的所有视频帧至客户端。
优选地,服务器还包括重定位模块。
定位模块,还用于若第n关键帧与倒序开始视频之间的视频帧发送完成后,定位与第n关键帧距离最近且位于倒序结束视频帧与第n关键帧之间的第n+1关键帧。
优选地,发送模块,还用于逐帧对视频帧进行编码得到视频数据包且逐个发送该视频数据包至客户端。
发送模块,还用于若第n+1关键帧定位成功,从第n+1关键帧开始逐帧发送第n+1关键帧与第n关键帧之间的所有视频帧至客户端,且发送每一个视频帧之间休眠预设时间段,预设时间段与显示视频帧的帧率成反比。
重定位模块,用于第n+1关键帧与第n关键帧之间的所有视频帧发送完成后,n++,定位与第n关键帧距离最近且位于倒序结束视频帧与第n关键帧之间的第n+1关键帧,重复执行发送模块和重定位模块,直至发送倒序结束视频帧至客户端。
优选地,发送模块,用于若倒序开始视频帧是关键帧,发送倒序开始视频帧至客户端。
一种客户端,客户端用于解码并输出上述服务器发送的视频帧。客户端包括:
存储空间数组创建模块,用于创建包括多个存储单元的存储空间数组a且设置每一个存储单元的标志位为空闲,存储单元的个数为GopSize*2。
接收模块,用于从第n关键帧开始逐帧接收第n关键帧与倒序开始视频帧之间的每一个视频帧,其中n=1。
解码模块,用于每接收完成一个视频帧,利用第n关键帧解码视频帧以得到视频画面且记录视频帧的解码时间。
存储模块,用于每解码完成一个视频帧,存储与视频帧对应的视频画面至标志位为空闲的存储单元中且视频画面存储完成后,修改存储视频画面的存储单元的标志位为未显示。
标志位修订模块,用于接收到第n+1关键帧时,修改已存储至存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示。
输出模块,用于标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照解码时间的先后进行排序,并从解码时间最晚的视频画面开始输出且每输出一帧视频画面之后休眠预设时间段,预设时间段与显示视频帧的帧率成反比。
标志位修订模块,还用于每输出一帧视频画面后,修改存储视频画面的存储单元的标志位为空闲。
优选地,
接收模块,用于从第n+1关键帧开始逐帧接收第n+1关键帧与第n关键帧之间的每一个视频帧。
解码模块,用于每接收完成一个视频帧,利用第n+1关键帧解码视频帧以得到视频画面且记录视频帧的解码时间。
存储模块,用于每解码完成一个视频帧,存储与视频帧对应的视频画面至标志位为空闲的存储单元中且视频画面存储完成后,修改存储视频画面的存储单元的标志位为未显示。
标志位修订模块,用于接收到第n+2关键帧时,修改已存储至存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示。
输出模块,用于标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照解码时间的先后进行排序,并从解码时间最晚的视频画面开始输出且每输出一帧视频画面之后休眠预设时间段,预设时间段与显示视频帧的帧率成反比。
标志位修订模块,还用于每输出一帧视频画面,修改存储视频画面的存储单元的标志位为空闲。
n++,重复执行接收模块、解码模块、存储模块、标志位修订模块和输出模块,直至接收模块收到倒序结束视频帧。
优选地,输出模块,用于若倒序开始视频帧是关键帧,输出关键帧解码后的视频画面。
一种基于RTSP/RTP的播放系统,其包括上述的服务器和上述的客户端,服务器与客户端之间通过网络通信连接
当倒序开始视频帧非关键帧时,服务器从第1关键帧开始逐帧发送该第1关键帧与倒序开始视频帧之间每一个视频帧至客户端。本发明通过采用RTSP/RTP协议传输视频帧至客户端,因此达到了开发难度小、协议通用以及应用范围广的技术效果。
附图说明
图1为本发明基于RTSP/RTP的播放系统一种实施例的方框结构示意图。
图2为服务器处理倒序播放请求一种实施例的流程示意图。
图3为客户端倒序播放视频帧一种实施例的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用来限定本发明。
图1展示了本发明基于RTSP/RTP的播放系统的一种实施例。在本实施例中,该基于RTSP/RTP的播放系统包括服务器1和客户端2,该服务器1与该客户端2之间通过网络通信连接。其中,服务器1包括接收模块11、判断模块12、定位模块13、发送模块14和重定位模块15。该客户端2包括存储空间数组创建模块21、接收模块22、解码模块23、存储模块24、标志位修订模块25和输出模块26。
服务器1响应客户端2的倒序播放请求时:需要说明的是:第1关键帧与倒序开始视频帧之间的所有视频帧构成第一个GOP。服务器1逐帧从第1关键帧开始发送第一GOP的视频帧至客户端2时,视频帧之间无需休眠预设时间段。所谓GOP,即视频帧的编码单位,每一个视频帧为了便于传输和储存,都会进行编码以得到视频压缩数据包。此外,假设一个GOP中包括GopSize个视频帧,其中,有1个关键帧和GopSize-1个参考帧。此外,关键帧(I帧)和参考帧(P帧):关键帧(I帧)包含有所有的视频画面细节,而参考帧(P帧)则保存基于关键帧的变化信息。关键帧(I帧)可以直接解码,参考帧(P帧)解码前必须要有当前GOP组中关键帧的信息和本参考帧之前的参考帧。
接收模块11,用于接收客户端2发送的倒序播放请求,倒序播放请求包括起始位置信息和结束位置信息,起始位置信息对应倒序开始视频帧,结束位置信息对应倒序结束视频帧,倒序开始视频帧与倒序结束视频帧之间包括多个关键帧。判断模块12,用于判断倒序开始视频帧是否为关键帧。若倒序开始视频帧非关键帧,定位模块13,用于定位与倒序开始视频帧距离最近且位于倒序开始视频帧与倒序结束视频帧之间的第n关键帧,其中,n=1。发送模块14,用于从第n关键帧开始逐帧发送第n关键帧与倒序开始视频帧之间的所有视频帧至客户端2。此外,若倒序开始视频帧是关键帧,发送倒序开始视频帧至客户端2。
在某些实施例中,例如本实施例中,发送模块14,还用于逐帧对视频帧进行编码得到视频数据包且逐个发送该视频数据包至客户端2。本实施例通过发送视频数据包至客户端2,减少了传输的数据量,以致节省了网络资源。
另一方面,第n关键帧与第n+1关键帧之间的所有视频帧构成第N个GOP,其中n=1,N=2。服务器1逐帧从第n+1关键帧开始发送第N个GOP的视频帧至客户端2时,视频帧之间休眠预设时间段。此外,第N个GOP发送完成后,n++,N++。所谓预设时间段与显示视频帧的帧率成反比。假设帧率为H,预设时间段为T,则T=A/H,其中A为常数。
定位模块13,还用于若第n关键帧与倒序开始视频之间的视频帧发送完成后,定位与第n关键帧距离最近且位于倒序结束视频帧与第n关键帧之间的第n+1关键帧。发送模块14,还用于若第n+1关键帧定位成功,从第n+1关键帧开始逐帧发送第n+1关键帧与第n关键帧之间的所有视频帧至客户端2,且发送每一个视频帧之间休眠预设时间段,预设时间段与显示视频帧的帧率成反比。重定位模块15,用于第n+1关键帧与第n关键帧之间的所有视频帧发送完成后,n++,定位与第n关键帧距离最近且位于倒序结束视频帧与第n关键帧之间的第n+1关键帧,重复执行发送模块14和重定位模块15,直至发送倒序结束视频帧至客户端2。
本实施例通过在发送第二个GOP开始,在该GOP的每一个视频帧之间休眠预设时间段,避免服务器1出现CPU占用率过高的问题。
本实施例的服务器1响应客户端2的顺序播放请求时:服务器1逐帧发送视频帧至客户端2。
客户端2倒序播放视频帧时:存储空间数组创建模块21,用于创建包括多个存储单元的存储空间数组a且设置每一个存储单元的标志位为空闲,存储单元的个数为GopSize*2。接收模块22,用于从第n关键帧开始逐帧接收第n关键帧与倒序开始视频帧之间的每一个视频帧,其中n=1。解码模块23,用于每接收完成一个视频帧,利用第n关键帧解码视频帧以得到视频画面且记录视频帧的解码时间。存储模块24,用于每解码完成一个视频帧,存储与视频帧对应的视频画面至标志位为空闲的存储单元中且视频画面存储完成后,修改存储视频画面的存储单元的标志位为未显示。标志位修订模块25,用于接收到第n+1关键帧时,修改已存储至存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示。输出模块26,用于标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照解码时间的先后进行排序,并从解码时间最晚的视频画面开始输出且每输出一帧视频画面之后休眠预设时间段,预设时间段与显示视频帧的帧率成反比。标志位修订模块25,还用于每输出一帧视频画面后,修改存储视频画面的存储单元的标志位为空闲。
在某些实施例中,例如本实施例中,若倒序开始视频帧是关键帧,输出模块26用于输出关键帧解码后的视频画面。
在某些实施例中,例如本实施例中,创建第一线程和第二线程。其中第一线程,用于实现接收模块22、解码模块23和存储模块24的功能、以及标志位修订模块25的部分功能。第二线程,用于实现输出模块26的功能,以及标志位修订模块25的部分功能。本实施例由于服务器1是从第1关键帧开始逐帧发送第1关键帧与倒开始视频帧之间的视频帧,因此,本实施例的客户端2的第一线程从第1关键帧开始接收第1关键帧与倒开始视频帧之间的视频帧,且可以利用该第1关键帧对第1关键帧与倒开始视频帧之间的视频帧进行解码,并将解码后的视频画面存储至存储空间数组a中。当客户端2的第一线程接收到第2关键帧时,第二线程按照解码时间输出存储空间数组a中存储的视频画面,本实施例通过采用多线程技术,提升了客户端的处理效率。
接收模块22,用于从第n+1关键帧开始逐帧接收第n+1关键帧与第n关键帧之间的每一个视频帧。
解码模块23,用于每接收完成一个视频帧,利用第n+1关键帧解码视频帧以得到视频画面且记录视频帧的解码时间。
存储模块24,用于每解码完成一个视频帧,存储与视频帧对应的视频画面至标志位为空闲的存储单元中且视频画面存储完成后,修改存储视频画面的存储单元的标志位为未显示。
标志位修订模块25,用于接收到第n+2关键帧时,修改已存储至存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示。
输出模块26,用于标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照解码时间的先后进行排序,并从解码时间最晚的视频画面开始输出且每输出一帧视频画面之后休眠预设时间段,预设时间段与显示视频帧的帧率成反比。
标志位修订模块25,还用于每输出一帧视频画面,修改存储视频画面的存储单元的标志位为空闲。
n++,重复执行接收模块22、解码模块23、存储模块24、标志位修订模块25和输出模块26,直至接收模块22收到倒序结束视频帧。
图2展示了本发明服务器处理倒序播放请求的一种实施例。在本实施例中,服务器处理倒序播放请求包括如下步骤:
步骤S1,接收客户端发送的倒序播放请求,倒序播放请求包括起始位置信息和结束位置信息,起始位置信息对应倒序开始视频帧,结束位置信息对应倒序结束视频帧,倒序开始视频帧与倒序结束视频帧之间包括多个关键帧。
步骤S2,判断倒序开始视频帧是否为关键帧。若倒序开始视频帧非关键帧,执行步骤S3。若倒序开始视频帧是关键帧,执行步骤S9。
步骤S3,定位与倒序开始视频帧距离最近且位于倒序开始视频帧与倒序结束视频帧之间的第n关键帧,其中,n=1。
步骤S4,用于从第n关键帧开始逐帧发送第n关键帧与倒序开始视频帧之间的所有视频帧至客户端。
步骤S5,若第n关键帧与倒序开始视频之间的视频帧发送完成后,定位与第n关键帧距离最近且位于倒序结束视频帧与第n关键帧之间的第n+1关键帧。
步骤S6,若第n+1关键帧定位成功,从第n+1关键帧开始逐帧发送第n+1关键帧与第n关键帧之间的所有视频帧至客户端,且发送每一个视频帧之间休眠预设时间段,预设时间段与显示视频帧的帧率成反比。
步骤S7,第n+1关键帧与第n关键帧之间的所有视频帧发送完成后,n++,定位与第n关键帧距离最近且位于倒序结束视频帧与第n关键帧之间的第n+1关键帧。
步骤S8,判断是否发送倒序结束视频帧至客户端。若未发送倒序结束视频帧至客户端,执行步骤S6。若发送倒序结束视频帧至客户端,执行结束。
步骤S9,发送倒序开始视频帧至客户端。执行步骤S3。
图3展示了本发明客户端倒序播放视频帧的一种实施例。在本实施例中,客户端倒序播放视频帧包括如下步骤:
步骤S20,判断接收到的第一个视频帧是否为倒序开始视频帧。若第一个视频帧非倒序开始视频帧,执行步骤S21。若第一个视频帧是倒序开始视频帧,执行步骤S35。
步骤S21,创建包括多个存储单元的存储空间数组a且设置每一个存储单元的标志位为空闲,所述存储单元的个数为GopSize*2。
步骤S22,从第n关键帧开始逐帧接收第n关键帧与倒序开始视频帧之间的每一个视频帧,其中n=1。
步骤S23,每接收完成一个视频帧,利用第n关键帧解码视频帧以得到视频画面且记录视频帧的解码时间。
步骤S24,每解码完成一个视频帧,存储与视频帧对应的视频画面至标志位为空闲的存储单元中且视频画面存储完成后,修改存储视频画面的存储单元的标志位为未显示。
步骤S25,接收到第n+1关键帧时,修改已存储至存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示。
步骤S26,标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照解码时间的先后进行排序,并从解码时间最晚的视频画面开始输出且每输出一帧视频画面之后休眠预设时间段,预设时间段与显示视频帧的帧率成反比。
步骤S27,每输出一帧视频画面后,修改存储视频画面的存储单元的标志位为空闲。
步骤S28,标识位为待显示的视频画面输出完成后,判断是否输出与倒序结束视频帧对应的视频画面。若输出了与倒序结束视频帧对应的视频画面,执行结束。若未输出与倒序结束视频帧对应的视频画面,执行步骤S29。
步骤S29,从第n+1关键帧开始逐帧接收第n+1关键帧与第n关键帧之间的每一个视频帧。
步骤S30,每接收完成一个视频帧,利用第n+1关键帧解码视频帧以得到视频画面且记录视频帧的解码时间。
步骤S31,每解码完成一个视频帧,存储与视频帧对应的视频画面至标志位为空闲的存储单元中且视频画面存储完成后,修改存储视频画面的存储单元的标志位为未显示。
步骤S32,接收到第n+2关键帧时,修改已存储至存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示。
步骤S33,标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照解码时间的先后进行排序,并从解码时间最晚的视频画面开始输出且每输出一帧视频画面之后休眠预设时间段,预设时间段与显示视频帧的帧率成反比。
步骤S34,每输出一个视频画面后,修改存储视频画面的存储单元的标志位为空闲,且待显示的所有视频画面输出完成之后,n++,执行步骤S28。
步骤S35,输出关键帧解码后的视频画面,执行步骤S21。
以上对发明的具体实施方式进行了详细说明,但其只作为范例,本发明并不限制与以上描述的具体实施方式。对于本领域的技术人员而言,任何对该发明进行的等同修改或替代也都在本发明的范畴之中,因此,在不脱离本发明的精神和原则范围下所作的均等变换和修改、改进等,都应涵盖在本发明的范围内。

Claims (7)

1.一种服务器,其特征在于,包括:
接收模块,用于接收客户端发送的倒序播放请求,所述倒序播放请求包括起始位置信息和结束位置信息,所述起始位置信息对应倒序开始视频帧,所述结束位置信息对应倒序结束视频帧,所述倒序开始视频帧与所述倒序结束视频帧之间包括多个关键帧;
判断模块,用于判断所述倒序开始视频帧是否为关键帧;
定位模块,用于若所述倒序开始视频帧非所述关键帧,定位与所述倒序开始视频帧距离最近且位于所述倒序开始视频帧与所述倒序结束视频帧之间的第n关键帧,其中,n=1;
发送模块,用于从所述第n关键帧开始逐帧发送所述第n关键帧与所述倒序开始视频帧之间的所有视频帧至客户端。
2.根据权利要求1所述的服务器,其特征在于,所述服务器还包括重定位模块;
定位模块,还用于若所述第n关键帧与所述倒序开始视频之间的视频帧发送完成后,定位与所述第n关键帧距离最近且位于所述倒序结束视频帧与所述第n关键帧之间的第n+1关键帧;
发送模块,还用于若所述第n+1关键帧定位成功,从所述第n+1关键帧开始逐帧发送所述第n+1关键帧与所述第n关键帧之间的所有视频帧至客户端,且发送每一个视频帧之间休眠预设时间段,所述预设时间段与显示视频帧的帧率成反比;
重定位模块,用于所述第n+1关键帧与所述第n关键帧之间的所有视频帧发送完成后,n++,定位与所述第n关键帧距离最近且位于所述倒序结束视频帧与所述第n关键帧之间的第n+1关键帧,重复执行所述发送模块和所述重定位模块,直至发送所述倒序结束视频帧至客户端。
3.根据权利要求1所述的服务器,其特征在于,
发送模块,用于若所述倒序开始视频帧是所述关键帧,发送所述倒序开始视频帧至客户端。
4.一种客户端,所述客户端用于解码并输出权利要求1~3之一所述服务器发送的视频帧;其特征在于,包括:
存储空间数组创建模块,用于创建包括多个存储单元的存储空间数组a且设置每一个所述存储单元的标志位为空闲,所述存储单元的个数为GopSize*2;
接收模块,用于从第n关键帧开始逐帧接收所述第n关键帧与倒序开始视频帧之间的每一个视频帧,其中n=1;
解码模块,用于每接收完成一个视频帧,利用所述第n关键帧解码所述视频帧以得到视频画面且记录所述视频帧的解码时间;
存储模块,用于每解码完成一个视频帧,存储与所述视频帧对应的视频画面至标志位为空闲的存储单元中且所述视频画面存储完成后,修改存储所述视频画面的存储单元的标志位为未显示;
标志位修订模块,用于接收到第n+1关键帧时,修改已存储至所述存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示;
输出模块,用于标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照所述解码时间的先后进行排序,并从所述解码时间最晚的视频画面开始输出且每输出一帧所述视频画面之后休眠预设时间段,所述预设时间段与显示所述视频帧的帧率成反比;
标志位修订模块,还用于每输出一帧所述视频画面后,修改存储所述视频画面的存储单元的标志位为空闲。
5.根据权利要求4所述的客户端,其特征在于,
接收模块,用于从所述第n+1关键帧开始逐帧接收所述第n+1关键帧与所述第n关键帧之间的每一个视频帧;
解码模块,用于每接收完成一个视频帧,利用所述第n+1关键帧解码所述视频帧以得到视频画面且记录所述视频帧的解码时间;
存储模块,用于每解码完成一个视频帧,存储与所述视频帧对应的视频画面至标志位为空闲的存储单元中且所述视频画面存储完成后,修改存储所述视频画面的存储单元的标志位为未显示;
标志位修订模块,用于接收到第n+2关键帧时,修改已存储至所述存储空间数组a中,且标志位为未显示的所有存储单元的标志位为待显示;
输出模块,用于标志位为未显示的所有存储单元的标志位由未显示修改为待显示时,对标志位为待显示的所有存储单元中的视频画面按照所述解码时间的先后进行排序,并从所述解码时间最晚的视频画面开始输出且每输出一帧所述视频画面之后休眠预设时间段,所述预设时间段与显示视频帧的帧率成反比;
标志位修订模块,还用于每输出一帧所述视频画面,修改存储所述视频画面的存储单元的标志位为空闲;
n++,重复执行所述接收模块、解码模块、存储模块、标志位修订模块和输出模块,直至所述接收模块收到所述倒序结束视频帧。
6.根据权利要求4所述的客户端,其特征在于,
输出模块,用于若所述倒序开始视频帧是所述关键帧,输出所述关键帧解码后的视频画面。
7.一种基于RTSP/RTP的播放系统,其特征在于,其包括权利要求1~3之一所述的服务器和权利要求4~6之一所述的客户端,所述服务器与所述客户端之间通过网络通信连接。
CN201510816316.2A 2015-11-20 2015-11-20 服务器、客户端及基于rtsp/rtp的播放系统 Active CN105828109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510816316.2A CN105828109B (zh) 2015-11-20 2015-11-20 服务器、客户端及基于rtsp/rtp的播放系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510816316.2A CN105828109B (zh) 2015-11-20 2015-11-20 服务器、客户端及基于rtsp/rtp的播放系统

Publications (2)

Publication Number Publication Date
CN105828109A true CN105828109A (zh) 2016-08-03
CN105828109B CN105828109B (zh) 2018-12-25

Family

ID=56514589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510816316.2A Active CN105828109B (zh) 2015-11-20 2015-11-20 服务器、客户端及基于rtsp/rtp的播放系统

Country Status (1)

Country Link
CN (1) CN105828109B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109819317A (zh) * 2019-01-07 2019-05-28 北京奇艺世纪科技有限公司 一种视频处理方法、装置、终端和存储介质
CN111866549A (zh) * 2019-04-29 2020-10-30 腾讯科技(深圳)有限公司 一种视频处理方法及装置、终端、存储介质
CN113542856A (zh) * 2021-06-28 2021-10-22 宜宾中星技术智能系统有限公司 在线录像的倒放方法、装置、设备和计算机可读介质
CN115150675A (zh) * 2022-06-30 2022-10-04 苏州市科远软件技术开发有限公司 倒序播放方法、系统以及倒序切片方法
CN116684515A (zh) * 2022-09-27 2023-09-01 荣耀终端有限公司 流媒体视频的seek处理方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431666A (zh) * 2008-07-18 2009-05-13 北京网新中广科技发展有限责任公司 一种监控录像远程快速浏览方法及系统
CN101917590A (zh) * 2009-12-17 2010-12-15 新奥特(北京)视频技术有限公司 一种具有回放功能的网络直播系统及一种播放器
US20140359678A1 (en) * 2013-05-30 2014-12-04 Sonic Ip, Inc. Device video streaming with trick play based on separate trick play files
CN104639954A (zh) * 2013-11-06 2015-05-20 北京航天长峰科技工业集团有限公司 一种基于硬盘录像机的视频倒序回查方法
CN104837030A (zh) * 2014-02-12 2015-08-12 中国电信股份有限公司 一种http流媒体实现快进快退播放的方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431666A (zh) * 2008-07-18 2009-05-13 北京网新中广科技发展有限责任公司 一种监控录像远程快速浏览方法及系统
CN101917590A (zh) * 2009-12-17 2010-12-15 新奥特(北京)视频技术有限公司 一种具有回放功能的网络直播系统及一种播放器
US20140359678A1 (en) * 2013-05-30 2014-12-04 Sonic Ip, Inc. Device video streaming with trick play based on separate trick play files
CN104639954A (zh) * 2013-11-06 2015-05-20 北京航天长峰科技工业集团有限公司 一种基于硬盘录像机的视频倒序回查方法
CN104837030A (zh) * 2014-02-12 2015-08-12 中国电信股份有限公司 一种http流媒体实现快进快退播放的方法和系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109819317A (zh) * 2019-01-07 2019-05-28 北京奇艺世纪科技有限公司 一种视频处理方法、装置、终端和存储介质
CN111866549A (zh) * 2019-04-29 2020-10-30 腾讯科技(深圳)有限公司 一种视频处理方法及装置、终端、存储介质
US11600299B2 (en) 2019-04-29 2023-03-07 Tencent Technology (Shenzhen) Company Limited Video processing method and apparatus, terminal, and storage medium
CN111866549B (zh) * 2019-04-29 2023-03-24 腾讯科技(深圳)有限公司 一种视频处理方法及装置、终端、存储介质
US11922972B2 (en) 2019-04-29 2024-03-05 Tencent Technology (Shenzhen) Company Limited Method and apparatus for video coding
CN113542856A (zh) * 2021-06-28 2021-10-22 宜宾中星技术智能系统有限公司 在线录像的倒放方法、装置、设备和计算机可读介质
CN115150675A (zh) * 2022-06-30 2022-10-04 苏州市科远软件技术开发有限公司 倒序播放方法、系统以及倒序切片方法
CN115150675B (zh) * 2022-06-30 2023-09-26 苏州市科远软件技术开发有限公司 倒序播放方法、系统以及倒序切片方法
CN116684515A (zh) * 2022-09-27 2023-09-01 荣耀终端有限公司 流媒体视频的seek处理方法、电子设备及存储介质
CN116684515B (zh) * 2022-09-27 2024-04-12 荣耀终端有限公司 流媒体视频的seek处理方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN105828109B (zh) 2018-12-25

Similar Documents

Publication Publication Date Title
CN105828109A (zh) 服务器、客户端及基于rtsp/rtp的播放系统
US9544344B2 (en) Method and apparatus for streaming media content to client devices
US9344517B2 (en) Downloading and adaptive streaming of multimedia content to a device with cache assist
CN108848060B (zh) 一种多媒体文件处理方法、处理系统及计算机可读存储介质
CA2841377C (en) Video transcoding services provided by searching for currently transcoded versions of a requested file before performing transcoding
US9641791B2 (en) Bandwidth aware digital video recording (DVR) scheduling
US8781305B2 (en) Media streaming with smooth fast-forward and rewind
US11936923B1 (en) System and method for transcoding media stream
US10958702B1 (en) Timeout optimization for streaming video
US20150271231A1 (en) Transport accelerator implementing enhanced signaling
EP3142381B1 (en) Network video playing method and device
WO2013159703A1 (en) Offline download method, multimedia file download method and system thereof
EP2493191B1 (en) Method, device and system for realizing hierarchically requesting content in http streaming system
CN101378490B (zh) 实现流媒体视频点播的装置、客户端及方法
CN108810657B (zh) 一种设置视频封面的方法和系统
US11138715B2 (en) Method and apparatus for determining experience quality of VR multimedia
CN110198495A (zh) 一种视频下载和播放的方法、装置、设备和存储介质
CN112839238B (zh) 投屏播放方法、装置和存储介质
CN103812856A (zh) 控制数据流
CN102065117A (zh) 内容服务系统、内容服务器、内容终端及内容服务方法
CN107027064A (zh) 无线传屏中视频文件的处理方法及装置
CN1395192A (zh) 数据重放装置及数据重放方法
CN1656475A (zh) 用于播放多媒体数据的方法以及实现该方法的系统
CN103929682A (zh) 一种在视频直播系统中设置关键帧的方法及装置
CN105025343A (zh) 一种ts视频的缓存方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant