1、下载ffmpeg包(dll、include、lib)   https://ffmpeg.zeranoe.com/builds/
        有3个版本:Static、Shared和Dev
  • Static  --- 包含3个应用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,相关的DLL已经被编译到exe里了。
  • Shared---包含3个应用程序之外还包含一些DLL,exe体积很小,在运行时到相应的DLL中调用功能。
  • Dev     ---开发者(developer)版本,包含了库文件XXX.lib和头文件XXX.h,不包含exe.
        开发者下载Shared(include、lib)和Dev(dll),依据自己电脑选择相应的平台下载,本文下载的是:
              
2、环境配置
2.1 新建工程
        
 2.2  将1中准备的dll、include、lib拷贝到2.1建立的tutorial02工程目录下
           
2.3 右击工程“属性”
      
2.4 “c/c++”---->"附加包含目录"---->添加2.2中拷贝到tutorial02工程目录下的“include”路径
          
2.5 “连接器”---->"常规"---->“附加库目录”---->添加2.2中拷贝到tutorial02工程目录下的“lib”路径
         
2.6  “连接器”---->"输入"---->“附加依赖项“---->添加“avcodec.lib;avformat.lib;avutil.lib;avdevice.lib;avfilter.lib;postproc.lib;swresample.lib;swscale.lib;”
            
3、测试
       在ffmpeg-3.4.2-win64-dev\examples目录下复制metagata.c源码到新建的tutorial02.cpp文件中,这是一个独立的demo,作用是打印音视频媒体文件基本信息。
       注意!!!有些人下载的metadata.c里面的头文件如下左图所示,需要修改为右图所示
      (why? C++工程直接调用ffmpeg的c函数库会导致c函数无法解析,用extern "C"进行声明即可)
 
        ------------>        
 
      测试代码(metadata.c):
#ifndef INT64_C
#define INT64_C (c)  (c ## LL)
#define UINT64_C (c) (c ## ULL)
#endif
 
#include <stdio.h>
#include "stdafx.h"
#include <stdlib.h>
//#include <libavformat/avformat.h>
//#include <libavutil/dict.h>
 
extern "C"
{
#include <libavformat/avformat.h>
#include <libavutil/dict.h>
}
 
#pragma comment (lib, "avformat.lib")
#pragma comment (lib, "avutil.lib")
 
int main(int argc, char ** argv)
{
                 AVFormatContext *fmt_ctx = NULL ;
                 AVDictionaryEntry *tag = NULL ;
                 int ret;
 
                 if (argc != 2) {
                                printf( "usage: %s <input_file>\n"
                                                 "example program to demonstrate the use of the libavformat metadata API.\n"
                                                 "\n", argv [0]);
                                 return 1;
                }
 
                av_register_all();
                 if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL )))
                                 return ret;
 
                 while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
                                printf( "%s=%s\n", tag->key, tag->value);
 
                avformat_close_input(&fmt_ctx);
                 return 0;
}
       运行结果:

 
4、出现的错误
4.1  编译出现---error LNK2019: 无法解析的外部符号                                                                                                                                                                                            
    解决方法:
         1) ffmpeg的环境已经配置好(第2部分)
         2)配置管理器--平台由Win32修改为x64(原因未知)参考 https://blog.csdn.net/ljh0302/article/details/50011587
        
4.2  运行程序,弹如下错误
         
     解决方法:将文件夹内的dll文件拷贝到Debug文件夹内
   
5、参考资料
    1      https://ffmpeg.zeranoe.com/builds/   
            https://www.cnblogs.com/bhlsheji/p/5359390.html
    4.1   https://blog.csdn.net/ljh0302/article/details/50011587

FFmpeg+vs2013开发环境配置(windows)的更多相关文章

  1. AndroidStudio开发环境配置-Windows

    Android Studio开发环境配置-Windows 最近突发奇想,开始研究Android开发.开始时使用Eclipse作为开发IDE,结果各种不好使,首先下载和安装SDK,以及不同版本的Imag ...

  2. OpenCV 2.4.9 +VS2013 开发环境配置

    OpenCV 的全称是:Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac O ...

  3. OpenGL开发环境配置-Windows/MinGW/Clion/CMake

    因为某些原因,不想用过于臃肿的VS了,转而使用常用的jetbrains的CLion,Clion沿袭了jetbrans的优良传统,基本代码提示功能还是比较好的,不过就是对于windows不熟悉cmake ...

  4. OpenCV2.4.13+VS2013开发环境配置

    List1:完成 写在前面:之前电脑很杂乱的装了OpenCV的2个版本,在配置OpenCV和VS2013环境时死活配不好.但是接下来的工作要用到,没有办法,还是得好好做.今天重新装了OpenCV2.4 ...

  5. Go语言Eclipse开发环境配置-Windows

    1.首先安装eclipse,选择一个适合的版本就好,解压即可 http://www.eclipse.org/downloads/ 2.下载go语言安装包 官网地址 :http://www.golang ...

  6. PHP开发环境配置~Windows 7 IIS

    1.配置IIS添加角色服务:CGI.ISAPI扩展.ISAPI筛选器 2.下载PHP安装包 http://windows.php.net/download/ 3.添加模块映射 4.配置php.ini ...

  7. 【转】测试LibreOffice SDK 开发环境配置(Windows)

    原文:http://www.aqcoder.com/blog/detail/id/7441186b-93fd-482c-b4d7-0facd1ee498d 下载与安装 LibreOffice 主页:h ...

  8. OpenCV开发环境配置-Windows/MinGW/Clion/CMake

    临时更换成了TDM-GCC,和mingw类似,这里只是声明一下. 由于opencv下载下来的.exe安装包实际上是没有mingw(gcc)匹配的/动静态库,因此这些东西需要我们自己使用mingw编译. ...

  9. Visual studio 通用开发环境配置:SDL,FFMPEG为例

    引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...

随机推荐

  1. 高可用api接口网络部署方案

    我们平时接触的产品都是7*24小时不间断服务,产品中的api接口肯定也是高可用的,下面我向大家分享一下互联网公司api接口高可用的网络部署方案.  我们一般通过http://le.quwenzhe.c ...

  2. mysql 数据库数据迁移 The user specified as a definer ('root'@'%') does not exist 解决方法

    从一个数据库数据迁移到本地localhost 程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似: mysql 1449 : The user specified as a defi ...

  3. ThinkPHP5 核心类 Request 远程代码漏洞分析

    ThinkPHP5 核心类 Request 远程代码漏洞分析 先说下xdebug+phpstorm审计环境搭建: php.ini添加如下配置,在phpinfo页面验证是否添加成功. [XDebug] ...

  4. 列表中不限制宽度,hover时,字体font-weight:bold,防止抖动

    项目一个小问题困扰了很久,在一个没有限制宽度的列表容器中,如果给hover时,给字体➕'font-wieght:bold'容器就会变宽,然后移动的下一个容器,就会出现抖动,这样很是影响用户体验,于是在 ...

  5. 1347: Last Digit (周期函数)

    1347: Last Digit Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: ...

  6. 差异是关键,TI首款隔离式CAN收发器评析

    差异是关键,TI首款隔离式CAN收发器评析           “无论是在日常生活还是媒体报道中, CAN接口对大家来说已经司空见惯了,然而将CAN接口和隔离功能整合在同一产品里,这还是业界头一遭,” ...

  7. 纯CSS + 媒体查询实现网页导航特效

    纯css+媒体查询实现网页导航特效 附上效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html lang="en"> <hea ...

  8. springboot集成elk实现分布式日志管理

    1.安装elk https://www.cnblogs.com/xuaa/p/10769759.html 2.idea创建springboot项目 File -> New -> Proje ...

  9. java常用API之Date类

    Date类: 类 Date 表示特定的瞬间,精确到毫秒. 毫秒概念:1000毫秒=1秒 毫秒的0点: System.currentTimeMillis()  返回值long类型参数   用于获取当前日 ...

  10. Linux开机自启动脚本

    将需要开机自启动的脚本命令写在文件/etc/rc.d/rc.local中即可. 比如需要开机自启动MySql和Apache,则在/etc/rc.d/rc.local文件尾部加入两行命令: system ...