FFmpeg菜鸡互啄#第2篇#配置VS开发环境

时间:2022-05-03
本文章向大家介绍FFmpeg菜鸡互啄#第2篇#配置VS开发环境,主要内容包括下载FFmpeg、创建工程、配置FFmpeg目录、测试代码、github、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

下载FFmpeg

首先是下载FFmpeg的win32库,我用的版本是2.5.2(和其他2.x.x版本应该不会有太大差别)。FFmpeg的官网上好像已经找不到旧版本的下载了,可以在我的代码地址下载2.5.2版本。

创建工程

打开Visual Studio 2013,创建一个空的控制台项目。

配置FFmpeg目录

在上面一步创建的工程目录下,创建一个FFmpeg文件夹。FFmpeg文件夹下新建inc和lib目录。把ffmpeg-2.5.2-win32-dev.7z压缩包里的include文件夹的所有内容复制到FFmpeginc目录下,ffmpeg-2.5.2-win32-dev.7z压缩包里的lib文件夹的所有.lib文件复制到FFmpeglib目录下。

在项目属性里设置输出路径..bin。并在工程文件夹里新建一个bin文件夹,把ffmpeg-2.5.2-win32-shared.7z压缩包里的bin文件夹的所有.dll文件复制到bin目录下。

附加包含目录添加..FFmpeginc(从ffmpeg-2.5.2-win32-dev.7z里复制include文件夹的路径)。

附加库目录添加..FFmpeglib(从ffmpeg-2.5.2-win32-dev.7z里复制lib文件夹的路径)。

测试代码

向项目添加一个main.c源文件,并输入测试代码:

#include <stdio.h>

/*
#define __STDC_CONSTANT_MACROS
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif
*/

extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "libavdevice/avdevice.h"
}

#pragma comment(lib, "avcodec.lib")
#pragma comment(lib, "avdevice.lib")
#pragma comment(lib, "avfilter.lib")
#pragma comment(lib, "avformat.lib")
#pragma comment(lib, "avutil.lib")
#pragma comment(lib, "postproc.lib")
#pragma comment(lib, "swresample.lib")
#pragma comment(lib, "swscale.lib")

int main()
{
    //初始化FFMPEG  调用了这个才能正常适用编码器和解码器
    av_register_all();
    printf("FFmpeg's version is: %dn", avcodec_version());

    system("pause");
    return 0;
}

FFmpeg一共包含8个库: ▫ avcodec:编解码(最重要的库)。 ▫ avformat:封装格式处理。 ▫ avfilter:滤镜特效处理。 ▫ avdevice:各种设备的输入输出。 ▫ avutil:工具库(大部分库都需要这个库的支持)。 ▫ postproc:后加工。 ▫ swresample:音频采样数据格式转换。 ▫ swscale:视频像素数据格式转换

#define __STDC_CONSTANT_MACROS
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif

之前遇到过在Qt或者VS2008里要添加上面这个被注释的宏定义,但是在VS2013的话却不需要。 测试结果:

github

https://github.com/gongluck/FFmpegTest.git