视频倒放¶
视频从后往前播放,只适应于视频图像,声音倒放只是噪音,没有意义,所以倒放的时候声音都是去除的。
倒放实现¶
一般对H264编码的视频进行解码,都是从头至尾进行的,因为视频存在I帧、P帧、B帧。
解码P帧的时候需要依赖前面最近的I帧或者前一个P帧,解码B帧的时候不仅要依赖前面的缓存数据还要依赖后面的数据。这就导致没法真正让解码器从后往前解码,只能把视频分成很多足够小的片段,对每一个片段单独进行处理。
具体思路如下:先seek到最后第n个GOP的第一帧(I帧),然后把当前这个点到视频最后的图像都解码出来,存储在一个数组里面。这个n是根据解码数据大小定的,因为如果解码出来的数据太大,内存占用过多,会导致程序被杀掉,把视频分成一秒一个小片段,对这些片段,倒过来进行解码,然后把每一段解出来的图像,倒过来编码。
使用AVFoundation可以很方便的实现。