windows下适用msvc编译ffmpeg 适用于ffmpeg-7.1

news/2025/3/1 19:32:15/

需要的工具:
visual studio 2019 (可以是其他版本,只是本人电脑上装的为2019)
msys2
ffmpeg-7.1源码

1. 修改msys2_shell.cmd
在msys2目录修改msys2_shell.cmd
打开后找到行set MSYS2_PATH_TYPE=inherit
删除开头的rem

2. 运行msys2
运行x64 Native Tools Command Prompt for VS 2019
打开后跳转到msys2目录,并运行msys2_shell.cmd,会打开msys2窗口
在msys2窗口输入cl,查看是否有输出:

用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.29.30148 版
版权所有(C) Microsoft Corporation。保留所有权利。用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]

如果没有输出,则表示没有继承到VS 2019环境,查看msys2_shell.cmd是否修改成功

3. 配置环境
在msys2中运行:

pacman -Syu
pacman -S make
pacman -S diffutils
pacman -S yasm
pacman -S nasmmv /usr/bin/link.exe /usr/bin/link.exe.bak

4. 编译ffmpeg-7.1
在msys2窗口中进入ffmpeg-7.1目录下
创建build.sh,输入:

#!/bin/shexport CC=cl./configure \
--prefix=/d/lib/ffmpeg-7.1/build_windows \
--toolchain=msvc \
--arch=x86_64 \
--enable-x86asm \
--enable-asm \
--enable-shared \
--disable-programs \
--enable-d3d11va \
--enable-d3d12va \
--enable-dxva2 \
--disable-static

如果有报错查看ffmpeg目录下的ffbuild/config.log文件
等待配置完成
然后依次输入:

make V=1 j 8
make install

5. libx264
如果需要libx264,需要自行下载libx264源码并编译
在libx264目录下运行:

CC=cl ./configure --prefix=<编译物输出目录> --enable-shared
make -j 8
make install

ffmpeg配置的时候添加(libx264为gpl):

--enable-gpl \
--enable-libx264 \
--extra-ldflags="-LIBPATH:<你的libx264编译输入目录>/lib/" \
--extra-cflags="-I<你的libx264编译输入目录>/include/"

即可编译带有x264的ffmpeg

msys2 下载
ffmpeg-7.1 源码下载
libx264


http://www.ppmy.cn/news/1575849.html

相关文章

MySQL 中如何解决深度分页的问题? MySQL中 join、inner join、left join、right join区别

MySQL 中如何解决深度分页的问题&#xff1f; 在 MySQL 中解决深度分页问题的核心思路是减少扫描的数据量&#xff0c;尤其是避免通过 LIMIT offset, size 导致的大范围数据扫描。以下是三种优化方法及其原理、适用场景和注意事项&#xff1a; 1. 子查询 覆盖索引&#xff08…

江协科技/江科大-51单片机入门教程——P[1-1] 课程简介P[1-2] 开发工具介绍及软件安装

本教程也力求在玩好单片机的同时了解一些计算机的基本概念&#xff0c;了解电脑的一些基本操作&#xff0c;了解电路及其元器件的基本理论&#xff0c;为我们学习更高级的单片机&#xff0c;入门IT和信息技术行业&#xff0c;打下一定的基础。 目录 1.课程简介 2.开发工具及…

将VsCode变得顺手好用(1

目录 设置中文 配置调试功能 提效和增强相关插件 主题和图标相关插件 创建js文件 设置中文 打开【拓展】 输入【Chinese】 下载完成后重启Vs即可变为中文 配置调试功能 在随便一个位置新建一个文件夹&#xff0c;用于放置调试文件以及你未来写的代码&#xff0c;随便命名但…

六、索引优化实战案例

索引优化实战案例&#xff1a;电商商品查询优化 一、模拟数据环境 1. 创建测试表 -- 创建商品表&#xff08;无索引&#xff09; CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(255),category VARCHAR(50),price DECIMAL(10,2),stock INT,created…

(学习总结27)Linux工具:软件包管理器 yum、apt 和常用软件包下载安装介绍

Linux工具&#xff1a;软件包管理器 yum、apt 和常用软件包下载介绍 软件包管理器概念Linux 下载软件包的过程Linux 命令行中执行 yum安装软件包命令 yum install删除软件包命令 yum remove更新软件包命令 yum update搜索软件包命令 yum search查看软件包信息命令 yum info清理…

【三维分割】LangSplat: 3D Language Gaussian Splatting(CVPR 2024 highlight)

论文&#xff1a;https://arxiv.org/pdf/2312.16084 代码&#xff1a;https://github.com/minghanqin/LangSplat 文章目录 一、3D language field二、回顾 Language Fields的挑战三、使用SAM学习层次结构语义四、Language Fields 的 3DGS五、开放词汇查询&#xff08;Open-voca…

常用的 pip 命令

pip 是 Python 的包管理工具&#xff0c;可用于安装、卸载、更新和管理 Python 包。以下是一些常用的 pip 命令&#xff1a; 1. 安装包 安装最新版本的包 pip install package_namepackage_name 是你要安装的 Python 包的名称&#xff0c;例如 pip install requests 可以安装…