FFmpeg 4.3 源码在windows上的编译

本文详细介绍了如何在Windows上配置VS2019+MSYS2编译环境,以及如何编译x264、x265、fdk-aac和FFmpeg 4.3。主要步骤包括修改MSYS2环境以支持外部变量,安装必要的编译工具和依赖库,然后分别使用nmake和make编译各个组件。最终目的是生成pdb文件以进行源码级别的调试。
摘要由CSDN通过智能技术生成

FFmpeg开发环境准备

 

 

学习目标

    学会配置vs2019+msys2 编译环境

    学会编译x264、x265、fdk-aac、sdl、ffmpeg4.3

编译目的:

    获取pdb文件,调试能进入ffmpeg源码
 

菜单运行vs2019编译控制台

使用cl编译源码

msys2 安装

修改msys2_shell.cmd 支持外部环境变量

修改 msys2_shell.cmd 去掉 rem set MSYS2_PATH_TYPE=inherit中的rem 表示去掉注释标记 让msys支持外部环境变量,主要为了支持vs2019的编译环境

msys2 依赖环境安装

# 安装的汇编工具 编译x264 和ffmpeg用到,如果不安装,在config是要禁用汇编

pacman -S nasm

pacman -S yasm

pacman -S make # 项目编译工具,必须要安装

cmake  安装windows版本配置环境变量

pacman -S diffutils # 比较工具,ffmpeg configure生成makefile时用到

pacman -S pkg-config # 库配置工具,编译支持x264 和 x265用到

pacman -S git # 从版本库下载源码用到

 

msys2 依赖环境安装 网络问题

替换源

G:\msys64\etc\pacman.d

vs2019 编译X264

用于h264 AVC 视频格式编码

CC=cl ./configure --enable-shared

make -j32

make install

 

生成 pkg-config

vs2019 编译 fdk-aac

AAC格式音频编码

nmake -f Makefile.vc

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

vs2019 编译x265

不用msys2 的cmake  命令查看:where cmake

进入目录 x265\build\msys-cl

make-Makefiles.sh

nmake install

 

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

 

--prefix=./install   --toolchain=msvc #指定安装路径和工具链vs

--enable-shared #编译为动态链接库

# 不编译工具

--disable-programs --disable-ffplay  --disable-ffmpeg --disable-ffprobe

 --enable-libx264 --enable-libx265  #支持x264 和 x265

--enable-gpl # 支持x264协议,x264 和 x265必备

--enable-libfdk-aac --enable-nonfree # aac音频编码 aac必须包含-enable-nonfree

 

第一个vs2019 ffmpeg项目

头文件 include

库文件 lib lib/x86 x64

动态库文件dll bin/x86 x64

调试执行和pdb路径 bin/x86 x64

源码项目路径 src/first_ffmpeg

 

#include <iostream>

using namespace std;

extern "C"{ //指定函数是c语言函数,函数名不包含重载标注

//引用ffmpeg头文件

#include <libavcodec/avcodec.h>

}

//预处理指令导入库

#pragma comment(lib,"avcodec.lib")

 

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

{

    cout << "first ffmpeg" << endl;

    cout << avcodec_configuration() << endl;

    return 0;

}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏曹俊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值