音视频之视频倒放

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010339039/article/details/89244768

演示:

视频演示

视频倒放,就是将一个视频倒序播放

练习app
中的
在这里插入图片描述

在ffmpeg中本来就有自带的倒放相关的filter
在这里插入图片描述
但是他的处理方式就是先把视频的所有帧都放入内存中,然后就倒序编码就可以了。这样对内存是个极大的压力,不过处理速度是还可以的。

但是在手机上用这种方式处理,视频文件一大oom肯定会出现的。
所以在手机上我还是借助了sdcard来处理,但是也不是直接将文件解码了,然后放入sdcard上,再逆序编码,这样也能解决,不过产生的文件特别大,分分钟上G是很正常的。

我是处理完最后一个gop后再处理倒数第二个gop。

比如视频一共只有有2个gop,我们先跳转(seek)到最后一个gop的I帧,然后顺序解码放入sdcard上,再逆序编码到多媒体文件中,这样最后一个gop就变成了第一个gop,并且gop中的帧也是逆序的。用相同原理处理完所有的gop就可以了。不过这里文件io操作很多,处理速度上肯定没直接内存中处理快,不过对文件大小就没要求了。

在这里插入图片描述
倒放中视频处理完了,音频怎么办?我尝试过把音频也逆序处理了。不过根本没意义,逆序后是一堆刺耳的杂音,并不是声音“1,2,3”,就变成了“3,2,1”。而是呲呲呲呲呲呲。

我参考了抖音的处理,他只是视频倒序了,声音还是正序的,我也就使用的相同的方式。

代码太多就不直接贴出来了
对应代码位置在:
videorunback.cpp

猜你喜欢

转载自blog.csdn.net/u010339039/article/details/89244768