实现视频文件倒放的方法及其装置的制造方法

文档序号:9474603阅读:449来源:国知局
实现视频文件倒放的方法及其装置的制造方法
【技术领域】
[0001]本发明涉及视频播放技术领域,具体而言,涉及一种实现视频文件倒放的方法及其装置。
【背景技术】
[0002]在人们的日常生活中,通过对影音作品进行倒放能获得一定的娱乐效果。在视频监控领域的应用中,通过对保存的视频录像文件进行倒序播放,能快速找到用户想要获得的录像画面,但是现有的主流播放器大都不支持视频文件的倒放,随着多媒体技术的发展,倒放技术的应用会越来越受到人们的关注。
[0003]现有技术实现视频文件倒放的方法是:如图1所示,在视频文件中,读取两个I帧(参考帧)之间的P帧(非参考帧)数据,并同时结合第一个P帧前的I帧数据形成一个序列集。由于P帧数据需要依赖I帧进行解码,且为了实现视频倒放,需要先对该序列集执行解码并存储解码后的数据,然后再逆序播放解码后的数据。为了节省存储的内存空间,现有技术采取了这样的处理方式:继续参考图1,首先自I帧起对一个12帧的序列集进行第一次完整解码、并存储最后解码得到的4帧数据及将其予以逆序显示,然后继续自I帧起对未予以显示的8帧数据进行解码、并存储最后解码得到的4帧数据及将其予以逆序显示,最后继续自I帧起对未予以显示的4帧数据进行解码、并存储该4帧数据以及将包括I帧在内的视频帧进行逆序显示,在完成这个序列集的逆序显示之后,按此方法再次向前解码并显示另一个序列集,直至视频文件的第一个I帧显示完成。
[0004]由此可以看出,在上述现有的视频文件倒放方法中,对一个序列集需要通过多次解码进而完成显示,降低了解码和显示的效率。

【发明内容】

[0005]鉴于此,本发明实施例的目的在于提供一种实现视频文件倒放的方法及其装置。
[0006]本发明实施例采用以下技术方案实现:
[0007]—种实现视频文件倒放的方法,包括:
[0008]A、获取视频文件,并加载相应的SDK文件;
[0009]B、依据输入的视频倒放指令从所述视频文件帧序列中确定至少一视频帧序列片段,并依据视频帧序列片段头部的参考I帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取对所述视频帧序列顺序解码后的YUV帧序列片段数据及其相应的时间戳信息并将其缓存至至少一个缓冲区;
[0010]C、依据所述时间戳信息逆序显示所述至少一个缓冲区中的YUV帧序列片段数据。[0011 ] 优选地,所述步骤B包括:
[0012]依据输入的视频倒放指令从所述视频文件帧序列中确定一起始帧,以该起始帧为基准向前定位以确定一第一参考I帧作为索引帧,以所述索引帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取对所述自索引帧至起始帧的视频帧序列片段进行顺序解码后的第一 YUV帧序列片段并将其缓存至缓冲区,逆序显示缓冲区中的第一 YUV帧序列片段;
[0013]将上一次的索引帧作为当前起始帧并以此为基准向前定位以确定一第二参考I帧,并以所述第二参考I帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取顺序解码后的第二 YUV帧序列片段并将其缓存至缓冲区,逆序显示缓冲区中的第二 YUV帧序列片段,以此类推,直至所述视频文件被逆序显示完或接收到的视频倒放停止命令被响应。
[0014]优选地,所述步骤B包括:
[0015]依据输入的视频倒放指令从所述视频文件帧序列中确定至少两个视频帧序列片段,并依据视频帧序列片段头部的参考I帧的索引信息所述调用SDK文件,以获取对所述视频帧序列顺序解码后的YUV帧序列片段数据并将其缓存至处于存储状态的缓冲区,并存储满后将该存储区的状态标定为显示状态;同时对处于显示状态的缓冲区中的YUV帧序列片段数据进行逆序显示,并在显示完成后释放该存储区的存储资源,并将其状态标定为存储状态。
[0016]优选地,逆序显示所述YUV帧序列片段数据的方法是:
[0017]将所述YUV帧序列片段数据传入封装的且被初始化地绑定了显示窗口句柄的SDL库中,通过所述显示窗口逆序显示所述YUV帧序列片段数据。
[0018]一种实现视频文件倒放的装置,包括:
[0019]获取模块,用于获取视频文件;
[0020]加载模块,用于依据获取的视频文件加载相应的SDK文件;
[0021]解码处理模块,用于依据输入的视频倒放指令从所述视频文件帧序列中确定至少一视频帧序列片段,并依据视频帧序列片段头部的参考I帧的索引信息作为SDK接口的输入参调用SDK文件,以获取对所述视频帧序列顺序解码后的YUV帧序列片段数据及其相应的时间戳信息并将其缓存至至少一个缓冲区;
[0022]逆序显示模块,用于依据所述时间戳信息逆序显示所述至少一个缓冲区中的YUV帧序列片段数据;
[0023]缓冲区,用于缓存YUV帧序列片段数据及其相应的时间戳信息。
[0024]优选地,解码处理模块依据输入的视频倒放指令从所述视频文件帧序列中确定一起始帧,以该起始帧为基准向前定位以确定一第一参考I帧作为索引帧,以所述索引帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取对所述自索引帧至起始帧的视频帧序列片段进行顺序解码后的第一 YUV帧序列片段并将其缓存至缓冲区,逆序显示模块逆序显示缓冲区中的第一 YUV帧序列片段;
[0025]当缓冲区中的第一 YUV帧序列片段被逆序显示完后,解码处理模块将上一次的索引帧作为当前起始帧并以此为基准向前定位以确定一第二参考I帧,并以所述第二参考I帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取顺序解码后的第二 YUV帧序列片段并将其缓存至缓冲区,逆序显示模块逆序显示缓冲区中的第二 YUV帧序列片段;
[0026]以此类推,直至所述视频文件被逆序显示模块逆序显示完或逆序显示模块接收到视频倒放停止命令并响应。
[0027]优选地,所述实现视频文件倒放的装置还包括:
[0028]状态标定模块,用于对缓冲区的状态进行标定;
[0029]存储模块,用于依据状态标定模块对缓冲区的状态标定将解码处理模块输出的YUV帧序列片段数据选择性地缓存至相应地缓冲区。
[0030]优选地,解码处理模块依据输入的视频倒放指令从所述视频文件帧序列中确定至少两个视频帧序列片段,并依据视频帧序列片段头部的参考I帧的索引信息作为SDK接口的输入参数调用SDK文件,以获取对所述视频帧序列顺序解码后的YUV帧序列片段数据;存储模块依据状态标定模块对缓冲区的状态标定将所述YUV帧序列片段数据缓存至处于存储状态的缓冲区,所述状态标定模块用于在该相应的缓冲区存储满后将该存储区的状态标定为显示状态;逆序显示模块依据状态标定模块对缓冲区的状态标定对处于显示状态的缓冲区中的YUV帧序列片段数据进行逆序显示,所述状态标定模块用于当该相应的缓冲区中的YUV帧序列片段数据显示完成后释放该存储区的存储资源,并将其状态标定为存储状
O
[0031]优选地,所述逆序显示模块将所述YUV帧序列片段数据传入封装的且被初始化地绑定了显示窗口句柄的SDL库中,并通过所述显示窗口逆序显示所述YUV帧序列片段数据。
[0032]采用本发明提供的技术方案,只需要对同一个视频帧序列集进行一次解码,之后进行倒序显示,从而有效地提高了程序的运行效率。
【附图说明】
[0033]图1为现有技术中对视频
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1