视频处理——添加滤镜效果
前段时间学习了视频编解码,感觉比较枯燥,因为实际应用的少且偏理论,导致学习效果比较差。
后来思考了一下,怎么去提高学习效果。得出一个结论,先设定一个目标,然后全力去把这个东西做出来,之后再自上到下的去吃透效果会好一些。有反馈有趣才会有动力去继续学习。
一.问题导向
这篇博客的目的是基于GpuImage库实现给视频增加滤镜效果的功能。
解决方案:
- 对视频文件进行解码
- 对解码后的每一帧画面通过GpuImage进行处理
- 最后把每一帧画面再编码成视频文件
遇到的一些挫折:
- GpuImage这个库只能给图片添加滤镜,并不支持给视频添加滤镜。
- 网络上基于GpuImage的库有一些,运行时总会报错。
二.资料
CameraRecorder-android库
地址:http://p.codekk.com/detail/5b629d86fd1c9b26e2fcbadd
缺点:最小可支持的版本也很高
优点:支持实时滤镜
直接clone项目无法运行,引入库,自己写demo可以运行
android-gpuimage-videorecording
地址:https://github.com/proghjy/android-gpuimage-videorecording
优点:支持实时滤镜,且可支持的最小版本也满足需求
直接clone项目无法运行,引入库,自己写demo可以运行
TestGpuImageFilter
地址:https://github.com/houshunwei/TestGpuImageFilter
优点:代码简单,适合初学者学习
缺点:在某些型号的手机上会出现错误 OutputSurface: before updateTexImage: glError 1282
项目直接clone即可运行
Android-RTSP
地址:https://github.com/dingjikerbo/Android-RTSP
三.android-gpuimage-videorecording项目分析
下一篇文章会详细讲解