音视频之视频倒放

演示:

视频演示

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

练习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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值