作者:虚坏叔叔
早餐店不会开到晚上,想吃的人早就来了!😄
基于ffmpeg扩展库示例环境项目创建和调用

一、FFmpeg开发库文件的下载
下载FFmpeg 4.0.1 32位
链接: https://pan.baidu.com/s/1Xb7EK9-QfLBKqOFdeaJ1Og 提取码: 9j5e
二、PyFFmpeg扩展库创建
创建一个PyFFmpeg项目
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pq7LHPl4-1656331668939)(02 - 副本.assets/image-20220627193517902.png)] Python&C++相互混合调用编程全面实战-25基于ffmpeg扩展库示例环境项目创建和调用_扩展库_02](https://file.cfanz.cn/uploads/png/2022/08/11/5/1T6d91edF8.png)
创建空项目的Dll。

设置成Release x86。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EIEnJcFn-1656331668940)(02 - 副本.assets/image-20220627194902804.png)] Python&C++相互混合调用编程全面实战-25基于ffmpeg扩展库示例环境项目创建和调用_c++_04](https://file.cfanz.cn/uploads/png/2022/08/11/5/V78068d1EO.png)
添加一个PyFFmpeg.cpp
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hwDigeBm-1656331668941)(02 - 副本.assets/image-20220627193800677.png)] Python&C++相互混合调用编程全面实战-25基于ffmpeg扩展库示例环境项目创建和调用_音视频_05](https://file.cfanz.cn/uploads/png/2022/08/11/5/F0ZcdS6ZQ6.png)
#include<Python.h>
// 开放给python
// 模块入口 模块名称 pyffmpeg
PyMODINIT_FUNC PyInit_pyffmpeg(void)
{
PyObject *m = NULL;
static PyModuleDef ffmod = {
PyModuleDef_HEAD_INIT,
"pyffmpeg",
"", -1, 0
};
m = PyModule_Create(&ffmod);
return m;
}
添加 附加包含目录
$(PYTHONHOME)include
$(PYTHONHOME)PC
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YC47Oc7H-1656331668941)(02 - 副本.assets/image-20220627194228370.png)] Python&C++相互混合调用编程全面实战-25基于ffmpeg扩展库示例环境项目创建和调用_音视频_06](https://file.cfanz.cn/uploads/png/2022/08/11/5/e59a76eFc0.png)
添加 附加库目录
$(PYTHONHOME)PCbuild\win32

此时编译,可以正常通过。
三、PyFFmpeg扩展库调用
添加一个testmod.py
import pyffmpeg
input()

c++中添加提示输出:
#include<Python.h>
// 开放给python
// 模块入口 模块名称 pyffmpeg
PyMODINIT_FUNC PyInit_pyffmpeg(void)
{
PyObject *m = NULL;
static PyModuleDef ffmod = {
PyModuleDef_HEAD_INIT,
"pyffmpeg",
"", -1, 0
};
m = PyModule_Create(&ffmod);
printf("Pyinit_pyffmpeg\n");
return m;
}
添加项目调试参数
$(PYTHONHOME)PCbuild\win32\python.exe
testmod.py

调整输出文件的路径:
$(PYTHONHOME)Lib\site-packages\pyffmpeg.pyd

运行 就可以看到创建成功了

四、总结
- 本文实现了基于
ffmpeg扩展库示例环境项目创建和调用 。










