如何将ffmpeg的dll放置到任意位置?
来源:互联网 发布:java判断是否是空格 编辑:程序博客网 时间:2024/05/20 16:36
现在假设做了一个基于ffmpeg动态库的thumb.dll,那么加载的顺序很重要。
一、简略提提基于ffmpeg库开发的DLL
创建thumb.dll的过程就略过了,网上很多教程。说一下thumb(我的工程名字)的工程注意事项吧。
工程属性->VC++目录配置“包含目录”和“库目录”。
包含目录添加“include”,库目录添加“lib”
这样编译貌似还有问题,要将“清单工具”->“输入和输出”的“嵌入清单”改为“否”
然后下载的dev版本的ffmpeg中include和lib复制到工程目录thumb/thumb下面。
要加_mingw.h和inttypes.h。stdint.h看情况,我忘记这个文件是属于ffmpeg库还是pthread引用的。
将shared版本的ffmpeg中dll们复制到thumb/thumb下面
然后回到thumb工程,写了一下截图的代码,具体可以到网上搜索的,这里不提供了。
这里没有在工程里面配置链接器,所以在工程里面要使用#pragma comment(lib,"xx.lib")将相应的lib引用。
最后编译得到thumb.dll
二。写个调用thumb.dll的exe(run_thumb_dll)
添加->新增项目->run_thumb_dll
在_tmain函数下先按顺序加载相关的dll。
1.将libgcc_s_dw2-1.dll加载,因为在网站https://ffmpeg.zeranoe.com/builds/win32/下载的shared版本是用gcc编译的。
2.加载avutil-xx.dll->swresample-xx.dll->avcodec-xx.dll
3.加载avformat-xx.dll
4.加载postproc-xx.dll->swscale-xx.dll->avfilter-xx.dll
5.加载avdevice-xx.dll
6.加载个人的dll文件(thumb.dll)
说明一下:
第2步avcodec会用到avutil和swresample的一些接口,所以avutil和swresample要放前面加载。
第3步avformat在旧版ffmpeg是和avcodec有关联的,所以还是放在avcodec之后加载比较合适。
第4步avfilter会用到swscale的,所以swscale必须在它之前。postproc不一定有用到的,但是网站下载的版本是用到,所以用网站的avfilter开发必须加postproc。
第5步avdevice与avcodec、avfilter都有关系的,所以必须放在最后调用。
因此得到
LoadLibrary(L"xxx/libgcc_s_dw2-1.dll");
LoadLibrary(L"xxx/avutil-xx.dll");
LoadLibrary(L"xxx/swresample-xx.dll");
LoadLibrary(L"xxx/avcodec-xx.dll");
LoadLibrary(L"xxx/avformat-xx.dll");
LoadLibrary(L"xxx/postproc-xx.dll");
LoadLibrary(L"xxx/swscale-xx.dll");
LoadLibrary(L"xxx/avfilter-xx.dll");
LoadLibrary(L"xxx/avdevice-xx.dll");
LoadLibrary(L"xxx/thumb.dll");
{不会上传图片,凑合看
- 如何将ffmpeg的dll放置到任意位置?
- 《鼠标拖动物体,将其放置到想放置的位置》
- UIButton将title和image放置在任意位置上
- 放置任意的文件到Delphi的EXE文件里面
- java将获取到的file文件下载到任意位置
- *tlb放置的位置
- 数据放置的位置
- MFC中如何将 CFormView放置到一个CDockablePane中
- 如何通过布局将图像放置到JPanel中间
- scrollview显示到任意位置的定位
- 关于android 选项卡效果及选项卡在屏幕中位置的任意放置
- 如何将ffmpeg整合到opencore中
- 如何将ffmpeg移植到Android平台
- 如何获得第三方应用Widget的包名和类名,并将其放置到桌面
- 如何将TabBar放置底部?
- log4j.properties的放置位置
- JavaScript代码放置的位置
- django模板放置的位置
- 在Docker中运行ONOS
- Ajax参数之dataType
- 关于使用androidstudio2.2通过CMake,NDK开发OpengGL程序中出现的extern “C”问题
- Boolean Expressions
- Uva12166
- 如何将ffmpeg的dll放置到任意位置?
- Oracle保留字符字段
- WPF+MVVM数据绑定问题集锦
- ORACLE简繁转换函数
- 学习资料 存储过
- 极光推送的步骤
- 【简单】回文序列
- java爬虫--crawler4j
- Hashcode方法的用法