CN114449309B - 一种用于云导播的动图播放方法 - Google Patents
一种用于云导播的动图播放方法 Download PDFInfo
- Publication number
- CN114449309B CN114449309B CN202210133759.1A CN202210133759A CN114449309B CN 114449309 B CN114449309 B CN 114449309B CN 202210133759 A CN202210133759 A CN 202210133759A CN 114449309 B CN114449309 B CN 114449309B
- Authority
- CN
- China
- Prior art keywords
- frame
- playing
- time stamp
- difference
- video
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000010586 diagram Methods 0.000 title abstract description 10
- 230000001502 supplementing effect Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000009191 jumping Effects 0.000 abstract description 2
- 239000013589 supplement Substances 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23424—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
-
- 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
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving 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/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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种用于云导播的动图播放方法,包括以下步骤:按播放顺序存储动图的多个视频帧,按顺序取用并播放所述视频帧,当所述视频帧的帧率小于云导播的播放帧率时,进行补帧,所述补帧包括重复播放当前视频帧来进行补帧,直到当前视频帧不满足播放条件为止,查询满足播放条件的视频帧继续播放。本方法在动图帧率不够时,复用前一帧视频帧进行过度播放,保证动图合流时与其他视频源同步,做到实时补帧,消除画面播放的跳跃感。
Description
技术领域
本发明涉及一种云导播技术,具体涉及一种用于云导播的GIF动图插入播放方法。
背景技术
导播技术是广播电视领域常用的实时制播技术,可对多个输入直播源进行实时的多路画面合成、画面切换、素材叠加等操作,素材包括音视频片段、LOGO、图片或滚动字幕。云导播是一种在云端实现导播技术的SaaS软件,被广泛应用于赛事直播、在线教育直播、企业培训直播和景区慢直播等场景。
动图素材叠加是云导播的其中一种具体的叠加手段,将动图叠加到合流画面中,实现视频直播插入动图广告的效果。常规的动图叠加做法是用ffmpeg的API 接口拉取动图网络流,解封装和解码后获取到多个图片帧进行帧率补帧算法,使帧率和其它输入源同步,再做画面缩放和叠加算法编码封装码流推送到直播网络。
但是在此方法中,当从云端拉取动图时,动图压缩的帧图片不如视频编码比如h264的压缩率高,导致网络拉取动图时的码率高,视频帧生成的速度跟不上导播输出的帧率造成卡顿;动图的帧数较少,少于导播输出的视频帧率,需要通过前后两帧画面进行差值运算得出中间画面来进行补帧以满足帧率要求,但此方法无法满足实时性的播放要求,会导致在合流画面中出现播放卡顿的现象。上述的动图一般指GIF动图。
发明内容
为了解决GIF动图播放卡顿的技术问题,本申请提供一种用于云导播的GIF 动图播放方法。
一种用于云导播的GIF动图播放,包括以下步骤:
按播放顺序存储动图的多个视频帧,按顺序取用并播放所述视频帧,当所述视频帧的帧率小于云导播的播放帧率时,进行补帧,所述补帧包括重复播放当前视频帧来进行补帧,直到当前视频帧不满足播放条件为止,查询满足播放条件的视频帧继续播放。
进一步地,所述补帧具体包括:
取用第一视频帧,比较第一视频帧时间戳差与当前系统时间差,若第一视频帧时间戳差大于等于当前系统时间差,播放所述第一视频帧,直到第一视频帧时间戳差小于当前系统时间差;
若第一视频帧时间戳差小于当前系统时间差,则按视频帧顺序查询满足第二视频帧时间戳差大于等于当前系统时间差的第二视频帧,播放所述第二视频帧;
所述第一视频帧时间戳差为第一视频帧的时间戳与首帧视频帧的时间戳的差值,所述当前系统时间差为按输出帧率取帧的当前系统时间与首帧视频帧的取帧的系统时间的差值;所述第二视频帧时间戳差为第二视频帧的时间戳与首帧视频帧的时间戳的差值。
进一步地,所述补帧具体包括:
取用动图的第一视频帧,计算第一视频帧时间戳差与当前系统时间差的第一差值绝对值,比较所述第一差值绝对值与时间戳容忍度,若所述第一差值绝对值小于所述时间戳容忍度,播放所述第一视频帧,直到所述第一差值绝对值大于等于所述时间戳容忍度;
当所述第一差值绝对值大于等于所述时间戳容忍度,按视频帧顺序查询满足所述第二差值绝对值大于等于所述时间戳容忍度的第二视频帧,播放所述第二视频帧;
所述第一视频帧时间戳差为第一视频帧的时间戳与首帧视频帧的时间戳的差值,所述当前系统时间差为按输出帧率取帧的当前系统时间与首帧视频帧的取帧的系统时间的差值;所述第二视频帧时间戳差为第二视频帧的时间戳与首帧视频帧的时间戳的差值。
进一步地,所述时间戳容忍度的具体取值方法为:
时间戳容忍度从初始值为零按照取帧周期取帧,每一取帧周期结束后,时间戳容忍度增加一个容忍度增量阶梯后再按照取帧周期取帧,取跳帧的帧数为零时的时间戳容忍度为时间戳容忍度。
进一步地,按播放顺序存储动图的多个视频帧,具体包括:
将所述动图的每一视频帧按顺序存储于映射缓存池,每一动图的视频帧为一队列,每一队列视频帧对应一个URL地址。
进一步地,按播放顺序存储动图的多个视频帧,具体包括:按播放顺序将所述动图的视频帧存储于云导播的同机房的存储介质中。
进一步地,所述补帧后,还包括图像缩放叠加以及音频混音操作。
一种用于云导播的动图播放系统,包括:
存储单元,用于按播放顺序存储动图的多个视频帧;
处理单元,用于取用并处理所述存储单元存储的视频帧并进行补帧,当取用的视频帧的帧率少于云导播的播放帧率时,判断当前视频帧是否满足播放条件,查询满足播放条件的视频帧;
显示单元,用于播放所述处理单元查询出的满足播放条件的视频帧。
进一步地,所述处理单元具体包括:
计算单元,用于计算第一视频帧时间戳差、当前系统时间差、第二视频帧时间戳差以及当前系统时间差或第一差值绝对值以及第二差值绝对值;
比较单元,用于比较第一视频帧时间戳差与当前系统时间差以及第二视频帧时间戳差与当前系统时间差或第一差值绝对值与时间戳容忍度以及第二差值绝对值与时间戳容忍度;
所述第一视频帧时间戳差为第一视频帧的时间戳与首帧视频帧的时间戳的差值,所述当前系统时间差为按输出帧率取帧的当前系统时间与首帧视频帧的取帧的系统时间的差值;所述第二视频帧时间戳差为第二视频帧的时间戳与首帧视频帧的时间戳的差值。
一种云导播系统,包括上述的用于云导播的动图播放系统。
本发明的有益效果为:
本方法在动图帧率不够时,复用前一帧视频帧进行过度播放,保证动图合流时与其他视频源同步。与现有补帧技术进行前后两帧画面的差值运算不同,现有技术因为差值运算的复杂性,对于导播合流场景来说,无法满足实时性。但本方案可以做到实时补帧,消除画面播放的跳跃感。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是实施例中动态播放方法的示意图;
图2是实施例中GIF动图的存储方式示意图。
具体实施方式
为使得本申请的申请目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而非全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面结合附图和具体实施例,进一步阐明本发明。
在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”、“第四”等指示词,仅是为了便于区别本实施例中的多个视频帧以及为了简化描述,而不是指示或暗示所指的视频帧必须为此顺序,因此不能理解为对本申请的限制。
实施例1
本实施例提供一种用于云导播的GIF动图播放方法,以GIF动图为例,包括以下步骤:
按播放顺序存储GIF动图的多个视频帧,按顺序取用并播放所述视频帧,当所述视频帧的帧率小于云导播的播放帧率时,进行补帧,所述补帧包括重复播放当前视频帧来进行补帧,直到当前视频帧不满足播放条件为止,查询满足播放条件的视频帧继续播放。
如图1所示,首帧视频帧的取帧的系统时间Tstart与首帧视频帧的时间戳PTSstart为同一时刻。理想状态下,图1中的T1,T2,T3等时刻为当前时刻应该取帧播放的时刻,也就是说,T1时刻应当播放视频帧2,T2时刻应当播放视频帧3,T3时刻应当播放视频帧4,Tstart,T1,T2…T4的时间间隔相同。但是 GIF动图的帧率不够,无法满足间隔T1diff的时间间隔就播放下一帧的要求,所以会采取帧率不够的时候沿用上一帧的视频帧重复播放的方法。
取用首帧后的第一个视频帧,即图1中的视频帧2,计算第一视频帧的时间戳PTSnow2与首帧视频帧的时间戳PTSstart的差值,记为第一视频帧时间戳差 PTSdiff2;计算按输出帧率取帧的当前系统时间T1与首帧视频帧的取帧的系统时间Tstart的差值,记为当前系统时间差为T1diff。
比较第一视频帧时间戳差PTSdiff2与当前系统时间差T1diff,若第一视频帧时间戳差PTSdiff2大于等于当前系统时间差T1diff,则播放第一视频帧,即视频帧2,直到第一视频帧时间戳差小于当前系统时间差。需要注意的是,下一个应当取帧的时间为T2,所以按输出帧率取帧的当前系统时间变为了T2,当前系统时间差为T2-Tstart,记为T2diff,也就是说按输出帧率取帧的当前系统时间是一个阶段变化量。
如图1所示,直到向第四次取用视频帧2时,发现第一视频帧时间戳差小于当前系统时间差,需要查找下一帧视频帧是否满足条件。
第一视频帧时间戳差PTSdiff2小于当前系统时间差,则按视频帧顺序查询满足第二视频帧时间戳差大于等于当前系统时间差的第二视频帧,播放所述第二视频帧。这里的第二视频帧为首帧后的第二个视频帧。
计算第二视频帧时间戳PTSnow3,即视频帧3,与首帧视频帧的时间戳PTSstart的差值,记为第二视频帧时间戳差PTSdiff3。计算按输出帧率取帧的当前系统时间T4与首帧视频帧的取帧的系统时间Tstart的差值,记为当前系统时间差为T4diff。
比较第二视频帧时间戳差PTSdiff3与当前系统时间差T4diff,若第二视频帧时间戳差PTSdiff3大于等于当前系统时间差T4diff,则播放第二视频帧,即视频帧3。
需要注意的是,比较第一视频帧时间戳差PTSdiff2与当前系统时间差T1diff 时,需要将两者换算成同一时间单位,如果视频帧时间戳频率是90000HZ,那么对应的时间基就是1/90000,转换为毫秒为时间戳差*1000/90000。同理,比较第二视频帧时间戳差与当前系统时间差时也是如此。
当视频帧时间戳差远小于当前系统时间差时,表示当前视频帧被延迟显示了,应该丢弃该帧,达到追赶显示的目的,当视频帧时间戳差远大于当前系统时间差时,表示当前视频帧被超前显示了,需要等待显示。而当视频帧时间戳差正好等于当前系统时间差时,表示当前视频帧刚好匹配按输出帧率取帧的当前系统时间。
时间戳指每一视频帧的显示时间戳,视频帧的时间戳一般将1秒钟划分为90000等分,时间精度就是1/90000秒,该值是为了方便计算机能整除常规的帧率,比如帧率25,时间戳一般为相对时间戳,表示前后帧的时间关系。
系统时间一般指从计算机系统获取到的时间,为UTC时间,在本实施例中的系统时间均指精确到毫秒的UTC时间。但是在其他实施例中,系统时间也可以是自设定的参考时间。
本实施例的第一视频帧不指定为视频帧1,只是一种区别前后视频帧的命名方式,其也可以指代视频帧2、视频帧3。同理,第二视频帧不指定为视频帧2,只是一种区别前后视频帧的命名方式,其也可以指代视频帧3、视频帧4。
但是,本实施例的方法通过比较视频帧时间戳差与当前系统时间差的大小来取帧,会触发追赶显示策略,导致跳帧的情况。例如,当第三次取完视频帧2 时,发现虽然视频帧2不满足条件了,但是视频帧3也不满足条件,只能跳过视频帧3而去取用下一帧视频帧4。
上述的视频帧1、2、3、4仅为举例说明权利要求书中描述的内容,而不是限定描述,在一个动图中包含许多视频帧,不仅为上述实施例中所描述的4个。
实施例2
本实施例提供一种用于云导播的动图播放方法,基于跳帧问题,优化了实施例1中的方法,包括以下步骤:
按播放顺序存储GIF动图的多个视频帧,按顺序取用并播放所述视频帧,当所述视频帧的帧率小于云导播的播放帧率时,进行补帧,所述补帧包括重复播放当前视频帧来进行补帧,直到当前视频帧不满足播放条件为止,查询满足播放条件的视频帧继续播放。
取用第一视频帧,即图1中的视频帧2,计算第一视频帧的时间戳PTSnow2 与首帧视频帧的时间戳PTSstart的差值,记为第一视频帧时间戳差PTSdiff2;计算按输出帧率取帧的当前系统时间T1与首帧视频帧的取帧的系统时间Tstart的差值,记为当前系统时间差为T1diff。计算第一差值绝对值,|FetchDiff|=| PTSdiff2-T1diff|。PTSnow表示当前视频帧的时间戳。
当第一差值绝对值|FetchDiff|大于等于时间戳容忍度DiffTolerance,按视频帧顺序查询满足第二差值绝对值大于等于时间戳容忍度DiffTolerance的第二视频帧,播放第二视频帧。
当|FetchDiff|<DiffTolerance,DiffTolerance的值越大,意味着FetchDiff的容忍度越大,同一帧可能被取用多次的概率越高,会导致GIF播放变慢。因此需要合适的算法来选用一个比较合理的DiffTolerance值。
时间戳容忍度的具体取值DiffTolerance方法为:
时间戳容忍度DiffTolerance从初始值为零按照取帧周期取帧,取帧周期设为 1秒。在1秒的取帧周期内记跳帧的帧数为NUMjump,为了使NUMjump尽可能为0,在每一取帧周期结束后,时间戳容忍度增加一个容忍度增量阶梯 ToleranceStep后再按照取帧周期取帧,ToleranceStep取值为10ms。如果经过5 次取帧周期优化后,得到DiffTolerance(max)=5*ToleranceStep=50ms,此时 NUMjump为零,且每一帧视频帧的取用次数差不多。最终得到时间戳容忍度为 50ms。按照25帧率计算,40ms是一次取帧间隔,也就是上述T1diff为40ms, 50ms差不多为1帧的差距,也就是说容忍度最大为1帧,在其他实施例中,时间戳容忍度可以根据需求进行调整。
本实施例中还存在视频帧时间戳是否跳跃的问题,例如当前帧时间戳和上一帧时间戳的差值绝对值超过了1秒可判断为视频帧发生了跳跃,此处的1秒是假定值,具体的取值可根据视频情况设定,一般取一个不太可能的值进行时间戳跳跃或不连续的判断。时间戳跳跃一般有这几种情况:一是当前GIF动图已经播完,开始播放下一GIF;二是时间戳达到最大值,需要归零;三是GIF视频帧时间戳错误。这些情况需要注意。
时间戳指每一视频帧的显示时间戳,视频帧的时间戳一般将1秒钟划分为 90000等分,时间精度就是1/90000秒,该值是为了方便计算机能整除常规的帧率,比如帧率25,时间戳一般为相对时间戳,表示前后帧的时间关系。
系统时间一般指从计算机系统获取到的时间,为UTC时间,在本实施例中的系统时间均指精确到毫秒的UTC时间。但是在其他实施例中,系统时间也可以是自设定的参考时间。
本实施例的第一视频帧不指定为视频帧1,只是一种区别前后视频帧的命名方式,其也可以指代视频帧2、视频帧3。同理,第二视频帧不指定为视频帧2,只是一种区别前后视频帧的命名方式,其也可以指代视频帧3、视频帧4。
本实施例的方法满足了导播合流输出帧率的要求,使多个视频源的帧率同步的同时还可以平滑地生成和复用补偿帧,避免产生跳帧现象,使视频不连贯。
上述两个实施例中按播放顺序存储GIF动图的多个视频帧,具体包括:将所述GIF动图的每一视频帧按顺序存储于映射缓存池,每一GIF动图的视频帧为一队列,每一队列视频帧对应一个URL地址,如图2所示。这么做是为了节省从网络下载GIF动图文件的耗时,将文件缓存有利于加快访问速度,并且,也不需要考虑残留缓存文件的清理问题,输入源被删除后,可从内存中快速清理。
或者,按播放顺序将所述GIF动图的视频帧存储于云导播的同机房的存储介质中,保证导播合流服务拉流时快速加载到GIF动图文件,即便是首次拉流时画面也能够流畅不卡顿。其中,同机房的存储介质包括本机磁盘、本机内存、同机房对象存储等具备高速访问能力的存储介质。
并且,在补帧后,还包括图像缩放叠加以及音频混音操作。
实施例3
本实施例提供一种用于云导播的GIF动图播放系统,包括:
存储单元,用于按播放顺序存储GIF动图的多个视频帧。
处理单元,用于取用并处理所述存储单元存储的视频帧并进行补帧,当取用的视频帧的帧率少于云导播的播放帧率时,判断当前视频帧是否满足播放条件,查询满足播放条件的视频帧。
显示单元,用于播放处理单元查询出的满足播放条件的视频帧。
其中,处理单元具体包括:
计算单元,用于计算第一视频帧时间戳差、当前系统时间差、第二视频帧时间戳差以及当前系统时间差或第一差值绝对值以及第二差值绝对值;
比较单元,用于比较第一视频帧时间戳差与当前系统时间差以及第二视频帧时间戳差与当前系统时间差或第一差值绝对值与时间戳容忍度以及第二差值绝对值与时间戳容忍度;
所述第一视频帧时间戳差为第一视频帧的时间戳与首帧视频帧的时间戳的差值,所述当前系统时间差为按输出帧率取帧的当前系统时间与首帧视频帧的取帧的系统时间的差值;所述第二视频帧时间戳差为第二视频帧的时间戳与首帧视频帧的时间戳的差值。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和 /或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种用于云导播的动图播放方法,其特征在于,包括以下步骤:
按播放顺序存储动图的多个视频帧,按顺序取用并播放所述视频帧,当所述视频帧的帧率小于云导播的播放帧率时,进行补帧,所述补帧包括重复播放当前视频帧来进行补帧,直到当前视频帧不满足播放条件为止,查询满足播放条件的视频帧继续播放;
所述补帧具体包括:
取用动图的第一视频帧,计算第一视频帧时间戳差与当前系统时间差的第一差值绝对值,比较所述第一差值绝对值与时间戳容忍度,若所述第一差值绝对值小于所述时间戳容忍度,播放所述第一视频帧,直到所述第一差值绝对值大于等于所述时间戳容忍度;
当所述第一差值绝对值大于等于所述时间戳容忍度,按视频帧顺序查询满足第二视频帧时间戳差与当前系统时间差的第二差值绝对值大于等于所述时间戳容忍度的第二视频帧,播放所述第二视频帧;
所述第一视频帧时间戳差为第一视频帧的时间戳与首帧视频帧的时间戳的差值,所述当前系统时间差为按输出帧率取帧的当前系统时间与首帧视频帧的取帧的系统时间的差值;所述第二视频帧时间戳差为第二视频帧的时间戳与首帧视频帧的时间戳的差值;
时间戳容忍度从初始值为零按照取帧周期取帧,在每一取帧周期内记跳帧的帧数;每一取帧周期结束后,时间戳容忍度增加一个容忍度增量阶梯后再按照取帧周期取帧,取跳帧的帧数为零时的时间戳容忍度为时间戳容忍度。
2.根据权利要求1所述的用于云导播的动图播放方法,其特征在于,按播放顺序存储动图的多个视频帧,具体包括:
将所述动图的每一视频帧按顺序存储于映射缓存池,每一动图的视频帧为一队列,每一队列视频帧对应一个URL地址。
3.根据权利要求1所述的用于云导播的动图播放方法,其特征在于,按播放顺序存储动图的多个视频帧,具体包括:按播放顺序将所述动图的视频帧存储于云导播的同机房的存储介质中。
4.根据权利要求1-3任一所述的用于云导播的动图播放方法,所述补帧后,还包括图像缩放叠加以及音频混音操作。
5.一种用于云导播的动图播放系统,其特征在于,采用权利要求1-4中任意一项所述的用于云导播的动图播放方法,包括:
存储单元,用于按播放顺序存储动图的多个视频帧;
处理单元,用于取用并处理所述存储单元存储的视频帧并进行补帧,当取用的视频帧的帧率少于云导播的播放帧率时,判断当前视频帧是否满足播放条件,查询满足播放条件的视频帧;
显示单元,用于播放所述处理单元查询出的满足播放条件的视频帧。
6.根据权利要求5所述的用于云导播的动图播放系统,其特征在于,所述处理单元具体包括:
计算单元,用于计算第一差值绝对值以及第二差值绝对值;
比较单元,用于比较第一差值绝对值与时间戳容忍度以及第二差值绝对值与时间戳容忍度;
所述第一视频帧时间戳差为第一视频帧的时间戳与首帧视频帧的时间戳的差值,所述当前系统时间差为按输出帧率取帧的当前系统时间与首帧视频帧的取帧的系统时间的差值;所述第二视频帧时间戳差为第二视频帧的时间戳与首帧视频帧的时间戳的差值。
7.一种云导播系统,其特征在于,包括权利要求5或6任一所述的用于云导播的动图播放系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210133759.1A CN114449309B (zh) | 2022-02-14 | 2022-02-14 | 一种用于云导播的动图播放方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210133759.1A CN114449309B (zh) | 2022-02-14 | 2022-02-14 | 一种用于云导播的动图播放方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114449309A CN114449309A (zh) | 2022-05-06 |
CN114449309B true CN114449309B (zh) | 2023-10-13 |
Family
ID=81373871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210133759.1A Active CN114449309B (zh) | 2022-02-14 | 2022-02-14 | 一种用于云导播的动图播放方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114449309B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664915A (zh) * | 2004-03-04 | 2005-09-07 | 埃里克·沃格斯伯格 | 用于在视频监视器上显示的多个全动态视频流的合成 |
JP2008219070A (ja) * | 2007-02-28 | 2008-09-18 | Nec Corp | 映像符号化システム、方法及びプログラム |
CN101888513A (zh) * | 2010-06-29 | 2010-11-17 | 深圳市融创天下科技发展有限公司 | 一种视频帧率转换方法 |
CN102104775A (zh) * | 2009-12-18 | 2011-06-22 | 华为技术有限公司 | 一种帧率调整方法和装置 |
CN102215429A (zh) * | 2010-04-01 | 2011-10-12 | 安凯(广州)微电子技术有限公司 | 一种用于移动电视的录制方法 |
CN103338386A (zh) * | 2013-07-10 | 2013-10-02 | 航天恒星科技有限公司 | 基于简化时间戳的音视频同步方法 |
CN104394421A (zh) * | 2013-09-23 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 视频帧的处理方法及装置 |
CN104410807A (zh) * | 2014-11-24 | 2015-03-11 | 深圳市华宝电子科技有限公司 | 一种多路视频同步回放方法及装置 |
CN104602127A (zh) * | 2014-09-01 | 2015-05-06 | 腾讯科技(北京)有限公司 | 导播视频同步播放方法和系统以及视频导播设备 |
CN105933800A (zh) * | 2016-04-29 | 2016-09-07 | 联发科技(新加坡)私人有限公司 | 一种视频播放方法及其控制终端 |
CN111131874A (zh) * | 2018-11-01 | 2020-05-08 | 珠海格力电器股份有限公司 | 一种解决h.256码流随机接入点播放卡顿的方法及设备 |
CN111246178A (zh) * | 2020-02-05 | 2020-06-05 | 浙江大华技术股份有限公司 | 视频处理方法和装置、存储介质及电子装置 |
CN112073648A (zh) * | 2020-08-12 | 2020-12-11 | 深圳市捷视飞通科技股份有限公司 | 视频多画面合成方法、装置、计算机设备和存储介质 |
CN112351294A (zh) * | 2020-10-27 | 2021-02-09 | 广州赞赏信息科技有限公司 | 一种云导播多机位间帧同步方法及系统 |
CN112511768A (zh) * | 2020-11-27 | 2021-03-16 | 上海网达软件股份有限公司 | 多画面合成方法、装置、设备及存储介质 |
CN113473229A (zh) * | 2021-06-25 | 2021-10-01 | 荣耀终端有限公司 | 一种动态调节丢帧阈值的方法及相关设备 |
CN113691862A (zh) * | 2020-05-19 | 2021-11-23 | 深圳市环球数码科技有限公司 | 视频处理方法、用于视频播放的电子设备和视频播放系统 |
-
2022
- 2022-02-14 CN CN202210133759.1A patent/CN114449309B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664915A (zh) * | 2004-03-04 | 2005-09-07 | 埃里克·沃格斯伯格 | 用于在视频监视器上显示的多个全动态视频流的合成 |
JP2008219070A (ja) * | 2007-02-28 | 2008-09-18 | Nec Corp | 映像符号化システム、方法及びプログラム |
CN102104775A (zh) * | 2009-12-18 | 2011-06-22 | 华为技术有限公司 | 一种帧率调整方法和装置 |
CN102215429A (zh) * | 2010-04-01 | 2011-10-12 | 安凯(广州)微电子技术有限公司 | 一种用于移动电视的录制方法 |
CN101888513A (zh) * | 2010-06-29 | 2010-11-17 | 深圳市融创天下科技发展有限公司 | 一种视频帧率转换方法 |
CN103338386A (zh) * | 2013-07-10 | 2013-10-02 | 航天恒星科技有限公司 | 基于简化时间戳的音视频同步方法 |
CN104394421A (zh) * | 2013-09-23 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 视频帧的处理方法及装置 |
CN104602127A (zh) * | 2014-09-01 | 2015-05-06 | 腾讯科技(北京)有限公司 | 导播视频同步播放方法和系统以及视频导播设备 |
CN104410807A (zh) * | 2014-11-24 | 2015-03-11 | 深圳市华宝电子科技有限公司 | 一种多路视频同步回放方法及装置 |
CN105933800A (zh) * | 2016-04-29 | 2016-09-07 | 联发科技(新加坡)私人有限公司 | 一种视频播放方法及其控制终端 |
CN111131874A (zh) * | 2018-11-01 | 2020-05-08 | 珠海格力电器股份有限公司 | 一种解决h.256码流随机接入点播放卡顿的方法及设备 |
CN111246178A (zh) * | 2020-02-05 | 2020-06-05 | 浙江大华技术股份有限公司 | 视频处理方法和装置、存储介质及电子装置 |
CN113691862A (zh) * | 2020-05-19 | 2021-11-23 | 深圳市环球数码科技有限公司 | 视频处理方法、用于视频播放的电子设备和视频播放系统 |
CN112073648A (zh) * | 2020-08-12 | 2020-12-11 | 深圳市捷视飞通科技股份有限公司 | 视频多画面合成方法、装置、计算机设备和存储介质 |
CN112351294A (zh) * | 2020-10-27 | 2021-02-09 | 广州赞赏信息科技有限公司 | 一种云导播多机位间帧同步方法及系统 |
CN112511768A (zh) * | 2020-11-27 | 2021-03-16 | 上海网达软件股份有限公司 | 多画面合成方法、装置、设备及存储介质 |
CN113473229A (zh) * | 2021-06-25 | 2021-10-01 | 荣耀终端有限公司 | 一种动态调节丢帧阈值的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114449309A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6396874B1 (en) | Decoding method and apparatus and recording method and apparatus for moving picture data | |
US8743906B2 (en) | Scalable seamless digital video stream splicing | |
US7280156B2 (en) | Process and device for synchronizing presentation of audio and/or video frames | |
KR100929073B1 (ko) | 휴대 방송 시스템에서 다중 스트림 수신 장치 및 방법 | |
US11997302B2 (en) | Encoding device, decoding device, streaming system, and streaming method | |
EP2227910B1 (en) | Reducing media stream delay through independent decoder clocks | |
KR20090086532A (ko) | 채널 변경 시간을 감소시키고 채널 변경 동안 오디오/비디오 콘텐츠를 동기화하는 방법 | |
US6744473B2 (en) | Editing and switching of video and associated audio signals | |
EP1995731B1 (en) | Method to guarantee seamless playback of data streams | |
US6618438B1 (en) | MPEG stream switching process | |
US6240137B1 (en) | Encoding apparatus and method, decoding apparatus and method, and editing method | |
JP2005123789A (ja) | Av同期システム | |
CN114449309B (zh) | 一种用于云导播的动图播放方法 | |
US6539054B1 (en) | Image output apparatus, image reproduction method, object composition apparatus, object composition method, and data storage medium | |
JP3072971B2 (ja) | ビデオ・オン・デマンドシステムとそれを構成するビデオサーバ装置及び端末装置 | |
JP4096915B2 (ja) | デジタル情報再生装置及び方法 | |
US7006570B2 (en) | Video signal coding method and video signal encoder | |
CN112073791A (zh) | 播放同步方法及装置、存储介质、用户端 | |
CN113132806B (zh) | 一种播放终端及其节目播放方法 | |
JP2001028750A (ja) | 画像出力装置,画像再生方法,オブジェクト合成装置,オブジェクト合成方法,及びデータ記憶媒体 | |
JPH10210483A (ja) | 動画像再生装置及びその方法 | |
CN115208997A (zh) | 音频和视频同步播放方法、播放装置及播放设备 | |
JP2004320787A (ja) | 連続メディア切り出し装置 | |
KR20040005663A (ko) | 클라이언트 단말에서 멀티미디어 데이터 플로우를재생하는 방법, 장치, 시스템 및 신호 | |
JP2011211615A (ja) | チューナーの切替装置、チューナーの切替システムおよびチューナーの切替方法 |
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 |