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. 浅谈MyBatis缓存

    在谈论MyBatis的缓存之前,我们先说说它的延迟加载,所谓延迟加载, resultMap中的association和collection标签具有延迟加载的功能.延迟加载的意思是说,在关联查询时,利用 ...

  2. 使用 libffi 实现 AOP

    核心还是利用oc消息的查找派发机制,进行类结构的动态修改,用新函数替换老函数,然后再调用老函数. 前言     众所周知,使用runtime的提供的接口,我们可以设定原方法的IMP,或交换原方法和目标 ...

  3. Java阶段性总结与获奖感想

    一.获奖感想 这次能获得小黄衫,可以说是对我自己这半学期以来努力学习的一种肯定,也是激励我继续努力的动力. 首先,我要感谢给予我们耳目一新的学习方式的娄老师.我曾在我期望的师生关系中提到,我的高中班主 ...

  4. linq to sql 中增删改查

    首先我先说一下,如果真的要用linq做项目的话,也会是比较方便的.已经尝试了在三层架构中应用linq to sql 比较方便. //有三个不同的数据库表,所以写法不一样 public class Li ...

  5. oracle ORA-01722:无效数字 记录

    今天在对12万条记录的表进行左联接时,有时可以查询出数据,有时会报无效数字,反复检查,发现问题. 例如sql: SELECT * FROM USER U LEFT JOIN USER_ROLE UR ...

  6. http协议中的keeplive是做什么的?它的适应场景是什么?

    1.Http底层也是通过TCP传输的. 2.HTTP keep-alive Http是一个”请求-响应”协议,它的keep-alive主要是为了让多个http请求共享一个Tcp连接,以避免每个Http ...

  7. nagios-4.0.8 安装部署

    1.Nagios工作原理 Nagios周期性调用插件检测服务器状态,并维持一个队列,所有插件返回状态信息都进入队列,Nagios每次从队首开始读取信息,并把状态通过web显示. 安装完成后,在nagi ...

  8. p​o​s​t​m​a​r​k​使​用

    一.Postmark原理 Postmark是由着名的NAS提供商NetApp开发,用来测试其产品的后端存储性能. Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是: ...

  9. CSS3 Gradient渐变效果

    最近看到一遍关于渐变的文章,感觉很好,只是收藏感觉太可惜了,就转载了,好好学习! CSS3 Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变). ...

  10. 对象关系映射(ORM)

    1.什么是 对象-关系映射 对象-关系映射(Object Relational Mapping,简称ORM,对象关系映射)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,OR ...