[发明专利]实现视频文件倒放的方法及其装置在审
申请号: | 201410317568.6 | 申请日: | 2014-07-03 |
公开(公告)号: | CN105227884A | 公开(公告)日: | 2016-01-06 |
发明(设计)人: | 张术 | 申请(专利权)人: | 深圳中兴力维技术有限公司 |
主分类号: | H04N5/76 | 分类号: | H04N5/76;H04N19/44;H04N21/2387;H04N21/8547;H04N7/18 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 视频文件 倒放 方法 及其 装置 | ||
技术领域
本发明涉及视频播放技术领域,具体而言,涉及一种实现视频文件倒放的方法及其装置。
背景技术
在人们的日常生活中,通过对影音作品进行倒放能获得一定的娱乐效果。在视频监控领域的应用中,通过对保存的视频录像文件进行倒序播放,能快速找到用户想要获得的录像画面,但是现有的主流播放器大都不支持视频文件的倒放,随着多媒体技术的发展,倒放技术的应用会越来越受到人们的关注。
现有技术实现视频文件倒放的方法是:如图1所示,在视频文件中,读取两个I帧(参考帧)之间的P帧(非参考帧)数据,并同时结合第一个P帧前的I帧数据形成一个序列集。由于P帧数据需要依赖I帧进行解码,且为了实现视频倒放,需要先对该序列集执行解码并存储解码后的数据,然后再逆序播放解码后的数据。为了节省存储的内存空间,现有技术采取了这样的处理方式:继续参考图1,首先自I帧起对一个12帧的序列集进行第一次完整解码、并存储最后解码得到的4帧数据及将其予以逆序显示,然后继续自I帧起对未予以显示的8帧数据进行解码、并存储最后解码得到的4帧数据及将其予以逆序显示,最后继续自I帧起对未予以显示的4帧数据进行解码、并存储该4帧数据以及将包括I帧在内的视频帧进行逆序显示,在完成这个序列集的逆序显示之后,按此方法再次向前解码并显示另一个序列集,直至视频文件的第一个I帧显示完成。
由此可以看出,在上述现有的视频文件倒放方法中,对一个序列集需要通过多次解码进而完成显示,降低了解码和显示的效率。
发明内容
鉴于此,本发明实施例的目的在于提供一种实现视频文件倒放的方法及其装置。
本发明实施例采用以下技术方案实现:
一种实现视频文件倒放的方法,包括:
A、获取视频文件,并加载相应的SDK文件;
B、依据输入的视频倒放指令从所述视频文件帧序列中确定至少一视频帧序列片段,并依据视频帧序列片段头部的参考I帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取对所述视频帧序列顺序解码后的YUV帧序列片段数据及其相应的时间戳信息并将其缓存至至少一个缓冲区;
C、依据所述时间戳信息逆序显示所述至少一个缓冲区中的YUV帧序列片段数据。
优选地,所述步骤B包括:
依据输入的视频倒放指令从所述视频文件帧序列中确定一起始帧,以该起始帧为基准向前定位以确定一第一参考I帧作为索引帧,以所述索引帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取对所述自索引帧至起始帧的视频帧序列片段进行顺序解码后的第一YUV帧序列片段并将其缓存至缓冲区,逆序显示缓冲区中的第一YUV帧序列片段;
将上一次的索引帧作为当前起始帧并以此为基准向前定位以确定一第二参考I帧,并以所述第二参考I帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取顺序解码后的第二YUV帧序列片段并将其缓存至缓冲区,逆序显示缓冲区中的第二YUV帧序列片段,以此类推,直至所述视频文件被逆序显示完或接收到的视频倒放停止命令被响应。
优选地,所述步骤B包括:
依据输入的视频倒放指令从所述视频文件帧序列中确定至少两个视频帧序列片段,并依据视频帧序列片段头部的参考I帧的索引信息所述调用SDK文件,以获取对所述视频帧序列顺序解码后的YUV帧序列片段数据并将其缓存至处于存储状态的缓冲区,并存储满后将该存储区的状态标定为显示状态;同时对处于显示状态的缓冲区中的YUV帧序列片段数据进行逆序显示,并在显示完成后释放该存储区的存储资源,并将其状态标定为存储状态。
优选地,逆序显示所述YUV帧序列片段数据的方法是:
将所述YUV帧序列片段数据传入封装的且被初始化地绑定了显示窗口句柄的SDL库中,通过所述显示窗口逆序显示所述YUV帧序列片段数据。
一种实现视频文件倒放的装置,包括:
获取模块,用于获取视频文件;
加载模块,用于依据获取的视频文件加载相应的SDK文件;
解码处理模块,用于依据输入的视频倒放指令从所述视频文件帧序列中确定至少一视频帧序列片段,并依据视频帧序列片段头部的参考I帧的索引信息作为SDK接口的输入参调用SDK文件,以获取对所述视频帧序列顺序解码后的YUV帧序列片段数据及其相应的时间戳信息并将其缓存至至少一个缓冲区;
逆序显示模块,用于依据所述时间戳信息逆序显示所述至少一个缓冲区中的YUV帧序列片段数据;
缓冲区,用于缓存YUV帧序列片段数据及其相应的时间戳信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳中兴力维技术有限公司,未经深圳中兴力维技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410317568.6/2.html,转载请声明来源钻瓜专利网。