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

下载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文件夹的所有内容复制到FFmpeg\inc目录下,ffmpeg-2.5.2-win32-dev.7z压缩包里的lib文件夹的所有.lib文件复制到FFmpeg\lib目录下。

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

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

附加库目录添加..\FFmpeg\lib(从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: %d\n", 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2675
来自专栏魂祭心

原 canvas绘制clock

4244
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4948
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2626
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2892
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2232
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4838
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

3028
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

7098

扫码关注云+社区