本发明属于视频播放技术领域,尤其与一种移动端流媒体实时倒放方法有关。
背景技术:
在网络技术上,流媒体(streamingmedia)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。流媒体技术是视频和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的计算机上创建一个缓冲区,在播放前预先下一段数据作为缓冲,在网路实际连线速度小于播放所耗的速度时,播放程序就会取用一小段缓冲区内的数据,这样可以避免播放的中断,也使得播放品质得以保证。流媒体实现的关键技术就是流式传输,流媒体的传输过程中需要缓存的支持。
视频播放的原理是单帧图片的快速连续渲染,连续的图像变化每秒超过24帧画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。流媒体视频播放时需要对传输到缓存中的压缩文件进行解压。
视频倒放就是图片帧的倒序播放。要实现倒序播放就需要对压缩文件进行倒序解码,但目前视频播放器不能有效支持倒序解码,所以倒放视频需要通过预先制作好反向的短视频,然后以正向播放的方式播放该短视频实现视频内容的倒放,因而也不能由用户随时切换播放方向。
移动端主要是指手机或者具有多种应用功能的智能手机以及平板电脑。这类设备运算资源有限,解码速率可能跟不上视频帧速率,就会出现滞卡现象。
技术实现要素:
本发明目的旨在解决现有流媒体播放器不能由用户随时切换播放方向和移动端设备由于运算资源限制导致流媒体播放时容易滞卡的问题,提供一种能使移动端设备顺畅倒序播放并支持用户随时切换播放方向的移动端流媒体实时倒放方法。
为此,本发明采用以下技术方案:一种移动端流媒体实时倒放方法,其特征是,利用流媒体技术对摄影采集的数据进行编码压缩存储和分段网络传输到移动端缓冲区缓存,缓存的文件长度要满足如下关系:n>intr*fr*fr/sp(n:缓存帧数;intr:关键帧间隔,单位秒;fr:视频帧速率,单位帧/秒;sp:解码速率,单位帧/秒);使用计算机程序控制在缓冲区形成数据栈,由移动端的gpu对传输到移动端缓冲区的分段压缩文件进行解码还原成图片帧数据,由移动端的cpu控制经gpu解码还原的图片帧数据入栈和出栈,解码时按照关键帧分割成多个子过程,每个解码子过程向前解码并顺序入栈,播放时图片帧数据倒序出栈,解码完一个过程后向后跳到上一个子过程继续解码,形成宏观上解码方式是向后的,微观上每一个子过程解码上向前的。用户不管是在哪一个阶段切换播放方向进行倒放,总是对应上某一个子过程,从该子过程顺序解码入栈,倒序出栈播放,再向后跳到上一个子过程继续解码,实现任意位置切换播放方向。
本发明可以达到以下有益效果:通过采用cpu软解和gpu硬解结合的处理模式,解决了移动端运算资源受限的问题,使视频播放顺畅;计算机程序控制解码过程分成多个子过程,每一个子过程向前解码并顺序入栈,播放时图片帧数据倒序出栈,解码完一个过程后向后跳到上一个子过程继续解码,实现了实时倒放和任意位置的播放方向可切换。
具体实施方式
下面对本发明的具体实施方式进行详细描述,所描述的实施例只是对本发明创造的说明和解释,并不构成对本发明的唯一限定。
本发明方法利用流媒体技术对摄影采集的数据进行编码压缩存储和分段网络传输到移动端缓冲区缓存,缓存的文件长度要满足如下关系:n>intr*fr*fr/sp(n:缓存帧数;intr:关键帧间隔,单位秒;fr:视频帧速率,单位帧/秒;sp:解码速率,单位帧/秒);使用计算机程序控制在缓冲区形成数据栈,由移动端的gpu对传输到移动端缓冲区的分段压缩文件进行解码还原成图片帧数据,由移动端的cpu控制经gpu解码还原的图片帧数据入栈和出栈,解码时按照关键帧分割成多个子过程,每个解码子过程向前解码并顺序入栈,播放时图片帧数据倒序出栈,解码完一个过程后向后跳到上一个子过程继续解码,形成宏观上解码方式是向后的,微观上每一个子过程解码上向前的。