在 Windows10 上配置 FFmpeg

41 篇文章 1 订阅
18 篇文章 1 订阅

当年小白入门,现在再看,确实需要改改了,再优化一下排版。添加或修改内容,用红色字体标记——2021/1/14

 

一、 下载

Win10 + VS2010 + FFmpeg + 64位

下载FFmpeg地址如下:  https://ffmpeg.org/download.html#build-windows

绿色的Download下载最新的,但是为了稳定,还是选择以前的常用版本,且下载编译好的。如图所示:

 进入previous builds ,本机下载的是64位,大家因需求而异。

选择Previous Builds,就是选择之前的版本,没必要搞最新的。

点击之后,目录结构如下所示:

dev里面包含include 和 lib库,include里面是头文件,lib库包含所有函数和方法。

Shared里面是 dll的动态库,运行项目执行文件*.exe时,需要将对应的dll放入*.exe同级目录中。

 

注意两个版本下载要一致。   这里,我下载的版本是3.2.4 :

二、 配置文件

打开VS2010,创建一个win32控制台应用程序,可包含预编译头。

在项目中,添加三个文件,分别是 : include  lib  bin

解压下载的dev压缩包,① 将include中的文件全部复制到项目的include中;

② 将lib中的.lib文件全部复制到项目的lib中;

③ 解压shared压缩包,将bin中的.dll文件,全部复制到项目中的bin文件中。

不清楚过程的,请看下面1-3图。

将项目改为64位debug和release,然后下面的操作在release下进行。也可以在debug下进行。

添加:项目->属性->VC++目录->常规->附加包含目录: 填写相对路径

include与*.sln文件 属于同一级

  

lib与*.sln文件 属于同一级

添加:项目->属性->链接器->输入->附加依赖项:

红框内容,避免屏幕一闪而过;绿框内容为添加的初始化。

代码如下:

#include "stdafx.h"
#include<iostream>

extern "C"
{
   #include "libavcodec/avcodec.h"
   #include "libavformat/avformat.h"
}

int _tmain(int argc, _TCHAR* argv[])
{
   av_register_all();

   system("pause");
   return 0;
}

三、开始编译工程

①  编译,出错了!莫方!

1>d:\practice\vs2010test\test\include\libavutil\common.h(35): fatal error C1083: 无法打开文件:“inttypes.h”: No such file or directory

提示找不到  inttypes.h。

网上下载此文件,然后放进VS的安装路径。

 

②  又出现新错误:

该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

解决方法:

在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;

 

③ 又又双出现问题了:

哦,原来是前面设置的时候,搞错了。

④  又又双叒这个错误,我都方了。但是还是要有信心,继续干掉它!不过现在还是先放一下。

 

四、 debug

上面的过程是在release下进行的,下面改为debug,项目中的配置修改同上。

① 结果又出现了这个问题。继续找方法:

 

解决方法一: 将dll 都复制到与bin同级的debug文件夹中。结果失败。

 

解决方法二: 将dll 都复制到test->x64下的debug文件夹中。结果通过。同理,dll也需要复制到test->x64下的release文件夹中。

一个完美的黑框!!!激动的很!!!

再添加两行代码,查看一下版本号:

至此,debug算是比较完美的收官。

 

五、 上面的release版本,依然有问题,现修改release版本下的代码,如下:

经查找,代码修改如下:

#include "stdafx.h"
#include<iostream>

extern "C"
{
   #include "libavcodec/avcodec.h"
   #include "libavformat/avformat.h"
   #include "afxmt.h"
}

int _tmain(int argc, _TCHAR* argv[])
{
   avcodec_register_all();
   av_register_all();

   system("pause");
   return 0;
}

新错误:

#error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

网上查找修改以下两个地方,但是我修改后,又出现了新问题,还真是问题不断呀!

然后我也无能为力了,毕竟也是新手,等以后积累更多知识的时候,也许就能轻松解决了。

 

debug可以通过,但release又出问题,解决办法:https://blog.csdn.net/qq_34732729/article/details/90076003

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值