ffmepg在VS开发环境中的设置以及常见问题

原创 2016年05月17日 18:58:19

1.先下载ffmpeg的 dev版本(这个比较好)

2.解压

3.使用VS建立一个cpp工程

4.设置引用文件的位置


5.设置lib文件位置


[特别注意:一开始少了avcodec.lib和 avformat.lib , 连接的时候提示找不到一些符号,但是有一些别的符号是能找到的,

而且找不到的符号,一看就是avXXXXX,所以想到可能是没有包含avcodec.lib,加上后就能编译过。]



6. 缺少宏定义

 fatal error C1189: #error : missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

解决方法:

 

6.编译,可能出问题:

1>test01.obj : error LNK2001: unresolvedexternal symbol "void __cdecl sws_freeContext(struct SwsContext *)"(?sws_freeContext@@YAXPAUSwsContext@@@Z) 
1>test01.obj : error LNK2001: unresolved external symbol "void __cdeclav_freep(void *)" (?av_freep@@YAXPAX@Z
1>test01.obj : error LNK2001: unresolved external symbol "int __cdeclsws_scale(struct SwsContext *,unsigned char const * const * const,int const *const,int,int,unsigned char * const * const,int const * const)"(?sws_scale@@YAHPAUSwsContext@@QBQBEQBHHHQBQAE2@Z
1>test01.obj : error LNK2001: unresolved external symbol "int __cdeclav_image_alloc(unsigned char * * const,int * const,int,int,enumAVPixelFormat,int)" (?av_image_alloc@@YAHQAPAEQAHHHW4AVPixelFormat@@H@Z
1>test01.obj : error LNK2001: unresolved external symbol "char const *__cdecl av_get_pix_fmt_name(enum AVPixelFormat)"(?av_get_pix_fmt_name@@YAPBDW4AVPixelFormat@@@Z) 
1>test01.obj : error LNK2001: unresolved external symbol "structSwsContext * __cdecl sws_getContext(int,int,enum AVPixelFormat,int,int,enumAVPixelFormat,int,struct SwsFilter *,struct SwsFilter *,double const *)"(?sws_getContext@@YAPAUSwsContext@@HHW4AVPixelFormat@@HH0HPAUSwsFilter@@1PBN@Z
1>test01.obj : error LNK2001: unresolved external symbol "int __cdeclav_parse_video_size(int *,int *,char const *)" (?av_parse_video_size@@YAHPAH0PBD@Z

 

经过查找,因为ffmpeg是 C程序编译的。

所以需要在包含头文件的时候加上 

extern "C"

 

如下:

extern "C"{

#include <libavutil/imgutils.h>

#include <libavutil/parseutils.h>

#include <libswscale/swscale.h>

};

 

7.能够编译过,到cmd命令下,运行, 提示缺少avutil-54.dll,等,

  在下载的ffmpeg 的dev版本中,没有发现这个,

去下载shared 版本的ffmpeg, 找到对应的dll文件,全部拷贝到编译的Debug目录下,能够运行。

8. 按照提示,输入相应的参数,

E:\test\FFMpeg\test01\Debug>test01.exetest.jpg 80*80

提示 

ffplay -f rawvideo -pix_fmt rgb24 -video_size80x80 test.jpg

 

能够看出运行效果来。

 

9.如果编译能够通过,链接的时候,如果发现有些函数找不到,则是没有添加足够的库,

 

1>recordDestop.obj : error LNK2019:unresolved external symbol _avcodec_alloc_frame referenced in function _main

1>recordDestop.obj : error LNK2019:unresolved external symbol _avcodec_open2 referenced in function _main

1>recordDestop.obj : error LNK2019:unresolved external symbol _avcodec_find_decoder referenced in function _main

1>recordDestop.obj : error LNK2019: unresolvedexternal symbol _av_dump_format referenced in function _main

1>recordDestop.obj : error LNK2019:unresolved external symbol _avformat_find_stream_info referenced in function_main

》》》avutil.lib swscale.lib avfilter.libavformat.lib avcodec.lib avdevice.lib 这些库应该就比较全了,

如果不全,再把其他的加上。

其实也可以看看这几个函数是在哪个头文件里面定义的,根据相应的头文件,找到对应的库加上就可以。

 

 

-========================================



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gengxt2003/article/details/51438501

ffmpeg用vs2005编译通过的工程

  • 2013年10月25日 17:28
  • 10.11MB
  • 下载

error LNK2001: unresolved external symbol "void __cdecl av_close_input_file(struct AVFormatContext *

编译出现这种原因是由于:dll中封装的是.c 文件,函数接口不对,所以必须: extern "C" { #include #include #include #include }...
  • cffishappy
  • cffishappy
  • 2012-05-30 10:41:31
  • 2937

遇到的两个ffmpeg库函数的坑

项目中使用ffmpeg库处理视频时掉进了两个内存泄漏的坑。1. av_bitstream_filter_filter下面这种用法,av_bitstream_filter_filter(h264bsfc...
  • BikeyTang
  • BikeyTang
  • 2017-03-08 22:16:19
  • 2287

VS2013中配置FFMPEG开发环境

包含三个版本:Static、Shared以及DevStatic   --- 包含3个应用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,此三个文件可以调用相应的ffm...
  • tigerxuchuanli
  • tigerxuchuanli
  • 2018-03-27 22:51:32
  • 22

VS2012中ffmpeg的使用配置及遇到的问题

开发环境:VS2012 ffmpeg SDL 配置步骤: 将ffmpeg 中的.h文件、.lib文件、.dll文件拷贝到工程目录下,如下图所示: 在_mingw.h文件的结尾处(在#endif...
  • u012609509
  • u012609509
  • 2015-02-11 17:06:14
  • 1623

vs2010调用ffmpeg的avcodec.lib崩溃的解决方案

在win7系统 vs2010下 用最新的ffmpeg库ffmpeg-3.0.2调用avcodec库直接崩溃在avcodec_register_all处,不调用avcodec_register_all直...
  • bestxp
  • bestxp
  • 2016-05-30 11:43:12
  • 707

用VS2015编译FFMPEG

用VS2015编译FFMPEG
  • dbyoung
  • dbyoung
  • 2016-09-27 13:30:36
  • 3207

ffmpeg VS2015 环境配置

  • 2016年05月09日 10:53
  • 21.87MB
  • 下载

vs2015+ffmpeg开发环境配置

1.在http://ffmpeg.zeranoe.com/builds/  下载最新的ffmpeg的dev版和share版,注意下载的时候严格区分x64和x86,取决于你vs2015调试的解决方案平...
  • HUSTLX
  • HUSTLX
  • 2016-03-30 14:37:59
  • 9490

【FFMPEG】VS2015编译FFMPEG

系统环境:Windows 10 64位   需要安装的软件和工具:   Visual Studio 2015 With Update 3   MSYS2   YASM   一、VS2015   安装V...
  • LG1259156776
  • LG1259156776
  • 2016-11-13 15:17:21
  • 3419
收藏助手
不良信息举报
您举报文章:ffmepg在VS开发环境中的设置以及常见问题
举报原因:
原因补充:

(最多只允许输入30个字)