ffmpeg c语言开发环境搭建,WINDOWS编译FFMPEG4.3 搭建VS2019开发环境

安装VS2019

前往微软官网下载并安装VS2019社区版

511a154ba7e2b17a0ba87c8d610469c1.png

安装MSYS2

(1)下载安装包

前往官网下载MSYS2安装包 https://www.msys2.org/ (假设安装至 D:\msys64)

26da941c2f2b6942f7dabe3e3f913545.png

(2)访问windows PATH环境变量

编辑 D:\msys64\msys2_shell.cmd

将 rem set MSYS2_PATH_TYPE=inherit

修改为 set MSYS2_PATH_TYPE=inherit

(3)使用VS2019命令行加载MSYS2

在开始菜单中打开VS2019文件夹,点击 x86 native tools command…

592c42a3c23279a815116fdd10839c54.png

进入msys2所在目录,以32位方式运行 msys2_shell.cmd

288f171ba69d8205aba6da3f78627db9.png

即可顺利启动MSYS2

a5a1e6a53d6f2d88614a7dc80811deb2.png

(4)安装MSYS2编译FFMPEG所需的依赖

依次安装如下工具:

汇编工具

Pacman -S nasm

Pacman -S yasm

项目编译工具

Pacman -S make cmake

比较工具

Pacman -S diffutils

(5)验证

在VS2019命令行输入cmkae,可以正确执行即代表msys2配置成功

fbd2b7127962745d9f6eea958ac36f0d.png

安装FFMPEG依赖

在开始编译FFMPEG之前,我们需要编译X264、fdk-acc、X265

(1)创建源码目录

创建/home/source目录,用于存放源码 D:\msys64\home\source

(2)使用msys2编译X264

将x264放入source目录

cd /home/source/x264/

CC=cl ./configure --enable-shared

Make -j4

Make install

721288a3bb7a09b3f7186be7370e228b.png

(3)使用VS2019命令行编译fdk-acc

将fdk-aac-master放入source目录

cd d:\msys64\home\source\fdk-aac-master

nmake -f Makefile.vc

nmake -f Makefile.vc prefix=.\install install

d1e53f13a5cd9f83bcacc4c9d9fc9ee5.png

(4)使用VS2019的cmake在msys2中编译x265

将x265放入source目录,并使用VS2019的cmake进行编译

查看VS2019 cmake路径

Whereis cmake

dca7d7fc93375440445ab74bc9d8658b.png

编辑文件 D:\msys64\home\source\x265\build\msys-cl\make-Makefiles.sh

cmake -G "NMake Makefiles" -DCMAKE_CXX_FLAGS="-DWIN32 -D_WINDOWS -W4 -GR -EHsc" -DCMAKE_C_FLAGS="-DWIN32 -D_WINDOWS -W4"  ../../source

修改为

/c/"Program Files (x86)/Microsoft Visual Studio/2019"/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe -G "NMake Makefiles" -DCMAKE_CXX_FLAGS="-DWIN32 -D_WINDOWS -W4 -GR -EHsc" -DCMAKE_C_FLAGS="-DWIN32 -D_WINDOWS -W4"  ../../source

使用msys2 进入目录

cd /home/source/x265/build/msys-cl/

./make-Makefiles.sh

Nmake install

执行nmake install 如果出现权限错误,

8f29436837cdab6dc94946d6118020ea.png

那么需要使用管理员权限启动VS2019命令行,再通过命令行启动msys2

4462f58e7cbbba1c1a3679400f901a71.png

执行namake install之后可见x265被编译至  C:/Program Files (x86)/x265/目录

9bec6d3706f75f53602f1db391cb7088.png

我们需要将其复制至msys2的 /usr/local/目录

f04c9ba5fd6cfd57dd74a2ef3992afae.png

编辑D:\msys64\usr\local\lib\pkgconfig\x265.pc

prefix=C:/Program Files (x86)/x265

修改为

prefix=/usr/local

准备编译FFMPEG

进入目录 D:\msys64\home\source\fdk-aac-master\install

将其中的 bin、lib、include 目录 复制至 /usr/local

将 D:\msys64\home\source\fdk-aac-master\fdk-aac.pc.in

复制至 D:\msys64\usr\local\lib\pkgconfig 并重命名为 fdk-aac.pc

将内容替换为:

prefix=/usr/local

exec_prefix=${prefix}

libdir=${exec_prefix}/lib

includedir=${prefix}/include

Name: Fraunhofer FDK AAC Codec Library

Description: AAC codec library

Version:

Libs: -L${libdir} -lfdk-aac

Libs.private:

Cflags: -I${includedir}

将D:\msys64\usr\local\lib\pkgconfig 复制至 D:\msys64\mingw32\lib

进入目录 D:\msys64\usr\local\lib

将 libx264.dll.lib 重命名为 libx264.lib

将 libx265.lib 重命名为 x265.lib

编译ffmpeg

(1)复制FFMPEG 4.3源代码

将ffmpeg源码复制至 /home/source

cd /home/source/ffmpeg-4.3/

(2)使用VS2019编译器配置FFMPEG

CC=cl.exe ./configure --prefix=./install --toolchain=msvc --enable-shared --disable-programs --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-libx264 --enable-gpl --enable-libfdk-aac --enable-nonfree --enable-libx265

7499703b036d74c1fbac3609859681a0.png

(3)编译FFMPEG

Make -j4

5533d04749e7c8625389833fa232d57c.png

(4)安装FFMPEG

Make install

1c351ddaaa22b7d535930a1cf1892da7.png

整理编译后的文件

成功编译FFMPEG之后,我们需要整理FFMPEG相关文件,以便开发所用

(1)创建目录 ffmpeg4.3_project

进入该目录继续创建文件夹

Include : 用于放置头文件

Lib : 用于放置库文件

Bin : 用于放置DLL

Src :用于放置项目源码

Tools : 放置FFMPEG源码

(2)整理bin目录

复制 D:\msys64\home\source\ffmpeg-4.3\install\bin  中的DLL文件 至bin目录

复制 D:\msys64\usr\local\bin 中的DLL文件至 bin目录

(3)整理lib目录

复制 D:\msys64\home\source\ffmpeg-4.3\install\bin 中的lib文件至 lib目录

(4)整理include目录

复制 D:\msys64\home\source\ffmpeg-4.3\install\include 至include目录

(5)整理tools目录

复制 D:\msys64\home\source\ 至 tools目录

验证

(1)在src目录创建VS2019项目

8ec19d3c21a07bfbe273fc5f00d53924.png

(2)配置附加包含目录路径

8db6f85f912b093a5daa0b20f51a5be1.png

(3)配置附加库路径

6b3a7f5d1e291c82cceaa5344290c156.png

(4)配置输出目录

978f64375a9277d72306241d4eaa3cd0.png

(5)配置工作目录

5fa1588f5c9f4a44b726b5f99efb1b1b.png

(6)创建测试类

df51a9066d109c35d79d60b11c55b496.png

(7)编写代码

#include

using namespace std;

extern "C" {

#include

}

#pragma comment(lib,"avcodec")

int main(int argc, char* argv[])

{

cout << avcodec_configuration() << endl;

return 0;

}

(8)测试

8c608b41a99a0122028eba0b4358800f.png

相关下载:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值