最近要给项目做视频合成的功能,核心的需求是:拍摄视频–>人物抠像、得到背景透明的序列帧–>序列帧进行裁剪、缩放、位移等操作后,与背景、前景视频进行合成–>其他业务流程,而第三步目前准备使用FFmpeg来实现,语言使用Python3。(如果有更方便的方法或工具,欢迎留言)
关于此系列的文章,目前打算写2篇,第一篇只是简单说明、并对相关资料做索引;第二篇会针对实现需求时,类库无法直接实现的功能给出解决方案(可能是我没正确使用工具,如果这样,请在留言中教我一下0.0)。
Tip:文章中不会涉及类似 如何安装、如何配置环境变量、如何编译、如何运行等基础操作也不会针对英文API做翻译。除此之外大家不明白的可以留言。
python版本:python3
IDE:pycharm
PC系统:windows
FFmpeg下载地址:https://ffmpeg.org/download.html
FFmpeg文档地址:https://ffmpeg.org/documentation.html
FFmpeg中文文档(民间翻译):https://www.bookstack.cn/read/other-doc-cn-ffmpeg/README.md
在使用FFmpeg-python库之前,建议先使用FFmpeg工具、看官方文档,熟悉一下FFmpeg的功能和指令格式。在使用第三方的类库前,我用命令行实现了一遍功能需求,确保可以实现后,再选择是自己封装还是用现成。
选择FFmpeg-python的原因主要有2点:
1.时间。目前是demo阶段,需要尽快出效果。
2.流程。到目前为止,其他流程都没有确定,所以这些就不用在意了,怎么方便怎么来。demo是必须要重构的。
GitHub地址:https://github.com/kkroening/ffmpeg-python
git上有例子和API文档,虽然API并不详尽(吐槽一下…测试功能的过程中,多用了不少时间)
下篇将会是满满干货的一篇。会补充说明FFmpeg-python API中未提及的功能的实现、还有当FFmpeg-python API无法满足需求时的解决方案。