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文件拷贝到工程——工程文件夹内

4.3

错误 4 error C4996: 'av_register_all': 被声明为已否决

解决办法:禁用SDL      右击工程-属性-c/c++-SDL检查

 

VS2013 FFmpeg开发环境配置的更多相关文章

  1. VS2013+ffmpeg开发环境搭建

    VS2013+ffmpeg开发环境搭建 转 https://blog.csdn.net/u014253332/article/details/86657868 一.准备ffmpeg相对应开发dll.i ...

  2. VS2013+ffmpeg开发环境搭建-->【转】

    本文转载自:http://blog.csdn.net/qq_28425595/article/details/51488869 版权声明:本文为博主原创文章,未经博主允许不得转载. 今天整理资料时,发 ...

  3. vs2013+ffmpeg开发环境搭建【转】

    本文转载自:http://blog.csdn.net/spaceyqy/article/details/43115391 每当看到配环境,我就泪流满面,好吧,闲话不多说,进入正题. 1.去官方下载ff ...

  4. OpenCV 学习笔记(7)vs2015+ffmpeg开发环境配置

    参考教程 https://blog.csdn.net/HUSTLX/article/details/51014307 1.在http://ffmpeg.zeranoe.com/builds/  下载最 ...

  5. vs2015+ffmpeg开发环境配置【转】

    本文转载自:http://blog.csdn.net/hustlx/article/details/51014307 1.在http://ffmpeg.zeranoe.com/builds/ 下载最新 ...

  6. Windows FFMPEG开发环境配置

    1.去FFMPEG网站上下载Dev版本的库,里面有我们需要的头文件和lib文件,然后下载Shared版本的库,里面有我们需要的dll文件 http://ffmpeg.zeranoe.com/build ...

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

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

  8. Visual Studio 开发(二):VS 2017配置FFmpeg开发环境

    在上篇文章Visual Studio 开发(一):安装配置Visual Studio Code 中,我们讲了一下如何配置VS CODE,来编写和调试C的代码.如果你已经使用VS Code回顾和复习好C ...

  9. 75.VS2013和opencv3.1.0开发环境配置

    首先要做的就是 开发环境配置,具体过程如下: Step 1:OpenCV环境变量配置 我的电脑--->属性--->高级系统设置--->高级--->环境变量--->系统变量 ...

随机推荐

  1. centos6.5 Python.7 pip install PIL --allow-external PIL --allow-unverified PIL报错 no such option: --allow-external

    解决办法 pip install pillow 使用from PIL import Image ,正常!!

  2. 大数据mapreduce俩表join之python实现

    二次排序 在Hadoop中,默认情况下是按照key进行排序,如果要按照value进行排序怎么办?即:对于同一个key,reduce函数接收到的value list是按照value排序的.这种应用需求在 ...

  3. Swift 学习- 09 -- 枚举

    // 递归枚举 // 美家居为一组相关的值定义了一个共同的类型, 使你可以在代码中以类型安全的的方式使用这些值. // 如果你熟悉C语言, 你会知道在C语言中, 枚举会为一组整型值分配相关联的名称, ...

  4. 修改Mysql5.7的root密码

    Mysql5.7修改root密码 禁用root密码 1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不 ...

  5. canvas 保存bitmap到本地

    File f = new File("/sdcard/DCIM/Camera/0.png"); FileOutputStream fos = null; try { fos = n ...

  6. 洛谷 P3627 [APIO2009]抢掠计划

    这题一看就是缩点,但是缩完点怎么办呢?首先我们把所有的包含酒吧的缩点找出来,打上标记,然后建立一张新图, 每个缩点上的点权就是他所包含的所有点的点权和.但是建图的时候要注意,每一对缩点之间可能有多条边 ...

  7. 【深度学习】吴恩达网易公开课练习(class1 week2)

    知识点汇总 作业内容:用logistic回归对猫进行分类 numpy知识点: 查看矩阵维度: x.shape 初始化0矩阵: np.zeros((dim1, dim2)) 去掉矩阵中大小是1的维度: ...

  8. Nginx详解十七:Nginx深度学习篇之动静分离

    动静分离:通过中间件将动态请求和静态请求分离 作用:分离资源,减少不必要的请求消耗,减少请求延时 动静分离还有个好处就是,当动态请求的后端服务出问题了,只会影响动态的部分,静态资源不影响,照样加载 如 ...

  9. easyui 布局之window和panel一起使用时,拉动window宽高时panel不跟随一起变化

    项目开发中布局是每一个组件都由最外层的window和内部的至少一个panel组成,其他的细小组件再依次放到panel中. 问题:当拉动外部的window时我们希望内部的panel的宽高也跟着变化,但是 ...

  10. mysql一列相同另一列相加

    select name, sum(number) total from test group by name;