windows环境下搭建ffmpeg开发环境

ffmpeg是一个开源、跨平台的程序库,可以使用在windows、linux等平台下,本文将简单讲解windows环境下ffmpeg开发环境搭建过程,本人使用的操作系统为windows 7,集成开发环境为Visual Studio 2005,ffmpeg版本为2.2。有人可能会说都什么年代了,还VS
2005,现在VS 2010/2012/2013都出了。本人电脑也安装了VS2010,每次打开,伴随着硬盘指示灯的闪烁,以及硬盘的吱吱响声,过了许久才弹出闪屏页面,此时你的思绪可能已经飘到了南极,启动一次实在太慢了,完全老牛拉车的感觉,所以后续VS2012/2013就都没有再安装使用了。个人觉得VS2005/2008比较锐,相对轻巧些,启动速度快,当然很多快捷键用着也习惯了。

下面从一个非常简单的ffmpeg例子着手,讲一下开发环境搭建过程:

1. 打开VS编辑器,新建一个win 32 c++控制台应用程序。

2. 进入ffmpeg源码下的doc/examples文件夹,找到metadata.c文件,该文件是一个独立demo,运行结果为打印音视频媒体文件基本信息。该文件体积还不到2k,代码行数在这几个demo里最少,看起来也容易懂。下图为metadata.c文件源码,打开该文件,拷贝里面的代码到我们新建的win
32工程,此时如果尝试编译上述代码时,编译器会报各种各样的错误,主要错误原因还是ffmpeg在windows环境下的各种水土不服,在linux环境下好很多,没有这么多的什么数据类型不识别、宏定义缺失等等错误,下面根据错误类型,设置工程并修改上述代码,以完成正确编译。

(1)设置工程头文件及lib库依赖。ffmpeg的头文件和lib库可以自己编译得到,不过本人没有尝试,而是直接到这里下载了已编译好的ffmpeg windows相关版本,解压后得到下述文件:

拷贝其中的include头文件、lib库文件以及bin目录下的dll文件到自己的工程下,然后在工程属性中设置附加包含目录:$(ProjectDir)\include和附加库目录:$(ProjectDir)\lib,这个设置很简单了。此时工程目录如下图所示:

(2)此时编译工程会有如下图所示错误,解决方法就是定位到该错误,直接将其注释即可。

(3)再次编译工程,会有如下图所示错误:

定位错误后发现还是common.h头文件有问题,解决方法为在刚才注释的下面,新增下述代码:

#ifndef INT64_C

#define INT64_C(c) 
(c ## LL)

#define UINT64_C(c)
(c ## ULL)

#endif

(4)如果此时再次编译工程,还是会有错误,错误原因是我们新建的win 32 c++工程直接调用ffmpeg的c函数库,导致c函数无法解析,对于这样由于c++和c函数名编译后命名机制不同导致无法解析的问题,只需在引用c函数库时添加extern "C"即可,当然还有引用lib库。修改后的代码如下:

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

extern "C"
{
    #include <libavformat/avformat.h>
    #include <libavutil/dict.h>
}

#pragma comment(lib, "avformat.lib")
#pragma comment(lib, "avutil.lib")

int main ()
{
    AVFormatContext *fmt_ctx = NULL;
    AVDictionaryEntry *tag = NULL;
    int ret = 0;

    av_register_all();
    if ((ret = avformat_open_input(&fmt_ctx, "iphone.mp3", 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);

	system("pause");
    return 0;
}

此时可以顺利编译通过了,运行结果如下:

当然,随着开发的深入,在使用uint8_t、int64_t等数据类型时,编译器会报如下错误:fatal error C1083: Cannot open include file: ‘stdint.h‘: No such
file or directory,即找不到相关头文件,该头文件的压缩包可以在我上传的工程文件目录内找到,解压缩后将两个头文件拷贝至Microsoft Visual Studio 8/vc/include目录即可。

工程下载链接:http://download.csdn.net/detail/u013085897/7428719

由于工程运行依赖的几个dll体积比较大,所以在上传工程时本人将其删掉了,该dll可以到文中提到的链接下载。即:

http://ffmpeg.zeranoe.com/builds/

windows环境下搭建ffmpeg开发环境,布布扣,bubuko.com

时间: 2024-12-08 01:49:33

windows环境下搭建ffmpeg开发环境的相关文章

Windows环境下搭建Objective-C开发环境

Windows环境下搭建Objective-C开发环境 目前来说,如果真的想用Xcode来运行Objective-C程序,那么可以用虚拟机装Mac OS X或者装黑苹果(在PC机上安装苹果的系统,不建议),不过这两种方式都有些麻烦,以下介绍GNUstep以及Code blocks来实现,具体方法如下. 在我的云盘下载所需工具:链接: http://pan.baidu.com/s/1i34b8wP 密码: wd9e 解压后按照一下顺序进行安装 gnustep-core-0.28.0-setup.e

【大数据系列】windows环境下搭建hadoop开发环境从hadoop URL读取数据

前言 搭建完hadoop集群之后在windows环境下搭建java项目进行测试 操作hdfs中的文件 版本一 package com.slp.hadoop274.hdfs; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;

Windows环境 和 Linux环境下搭建Qt开发环境

原文链接:  http://blog.csdn.net/duxinfeng2010/article/details/8227548 此处仅适用windows下安装: 1.解压缩MinGW-gcc440_1.zip.将解压后的文件夹复制至C盘根目录下. 2.安装qt-creator-win-opensource-2.5.2. 3.安装qt-win-opensource-4.7.3-mingw.不要更改默认安装目录. 4.打开QT creator,菜单-->工具-->选项-->构建和运行(左

windows环境下搭建Java开发环境(一):jdk安装和配置

一.资源下载 官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人安装的是jdk1.8,百度云资源:链接:https://pan.baidu.com/s/1s674_5DjnsUO1A0_JGCLpg 密码:vx2i 二.安装jdk,注意jre安装 安装结果如下: 三.配置环境变量 1.找到环境变量配置位置 我的电脑右键"属性",并按照以下步骤 2.修改环境变量 1.新建JAVA_HOME环境变

Win7环境下搭建Go开发环境,基于VSCode编辑器

一.在搭建的时候参考以下文章 http://www.cnblogs.com/zsy/archive/2016/02/28/5223957.html http://blog.csdn.net/hil2000/article/details/51714607 http://www.cnblogs.com/mubing/p/5820038.html http://www.golangtc.com/t/57d3961db09ecc1635000170 二.准备(将所有需要的软件下载下来) 1.VSCod

Linux centos 7 环境下搭建vue开发环境

下载node.js安装包 #wget https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0.tar.gz #tar -zxvf node-v10.13.0.tar.gz #cd node-v10.13.0 #./configure #make && make install 编译安装时间比较长,请耐心等待完成,完成后验证 使用node -v和npm -v来验证是否安装成功,若安装成功则会看到相应的版本信息 安装cnpm: #n

Ubuntu系统下搭建Python开发环境

之前演示了在Windows中安装Pycharm,很简单.下面介绍一下如何在Ubuntu中安装Pycharm 1.更新Python至3.5.1,执行以下命令: sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 执行完成后,在shell中输入python3.5,出现如下对话框说明Python3.5更新成功. 2.安装JDK8,在终端中输入如下命令: sudo

Windows下搭建PHP开发环境

Windows下搭建PHP开发环境 一.准备工作-所需软件 ·   Apache  \php\httpd-2.2.25-win32-x86-no_ssl.msi ·   PHP \php\php-5.3.1-Win32-VC6-x86.zip ·   Oracle client 10g\php\client 二.安装软件 安装Apache: 双击安装,与安装其他Windows软件没有什么区别,在填Server Infomation时,并没有特殊规定,只要输入的信息符合格式即可. 安装完成之后,在

Cocos2d-x 3.1.1 在Windows下搭建Android开发环境

Cocos2d-x 3.1.1 在Windows下搭建Android开发环境 本篇博客来给大家介绍如何在Windows下搭建Cocos2d-x Android开发环境,笔者前面写了几篇博客都是针对如何对Android项目进行交叉编译的,对应了Cocos2d-x 2.2.3版本和Cocos2d-x 3.0版本,其实3.0版本跟3.1.1是一样的,只是笔者介绍如何不适用命令行对Cocos2d-x Android项目进行交叉编译,而直接在Eclipse进行交叉编译. 前面几篇博客,如果有需要比较差别的