vs 编译 ffmpeg

准备环境

msys2 – 用于运行配置文件
vs – 用于编译 ffmpeg

msys2 准备

下载

https://www.msys2.org/
在这里插入图片描述
这是一个 git 的链接,比要时候可以使用国内源,或者使用 gitee 转发仓库进行二次下载。

目前实验包

https://github.com/msys2/msys2-installer/releases/download/2023-01-27/msys2-x86_64-20230127.exe

vs

略–官方下载即可

注意

使用 vs 编译的时候,2022 版本明显区别与 2019 版本以及以下,因为 2022 默认使用 utf-8 with bom 格式代码,否则会出现错误,最明显的就是因警告而诞生的 “slib”: 未声明的标识符,解决办法这是强制转码,即 -> config.h 转为 适配编码 (事实上更多因编译所需的编译文件都应该转为适配编码)

开始

查找 vs 编译环境
在这里插入图片描述
64 位使用 1
32 位使用 2

配置到 msys2

找到 msys2 目录,并且编辑 msys2_shell.cmd

  • 1
rem set MSYS2_PATH_TYPE=inherit

改为

set MSYS2_PATH_TYPE=inherit
  • 2
    找到 msys2_shell.cmd
rem Setup proper title and icon

并且发现最后一个 else

  set "CONTITLE=MSYS2 MSYS"
  set "CONICON=msys2.ico"

在该命令末尾添加

	call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"

注意 该添加命令出现在 查找 vs 编译环境 一节,该节中使用
在这里插入图片描述
在这里插入图片描述
发现 bat 文件位置,若把该位置 替换对应的 的命令行,即 call * 中的 * 即可

  • 3
    创建 msys2_shell.cmd 快捷方式
    如:
    在这里插入图片描述
    D:\app\msys64\msys2_shell.cmd -msys
    使用目录中的 *.exe 并不能友好的加载 msys2_shell.cmd
  • 4
    运行创建好的快捷方式,并且执行以下包安装
pacman -S nasm #汇编工具,安装
pacman -S yasm #汇编工具,安装
pacman -S make #项目编译工具,必须安装 
pacman -S cmake #项目编译工具,必须安装 
pacman -S diffutils #比较工具,ffmpeg configure 生成makefile时会用到,若不安装会警告,最好是安装 

准备编译

使用 msys2 进入对应的 ffmpeg 目录当中,该目录应该存在 configure 文件

  • 1
 ./configure  --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-shared --enable-w32threads --disable-static --prefix=output --enable-optimizations shlibdir=output/bin --enable-version3 --enable-debug

执行配置编译选项,值得注意的是,编译选项可以使用 ./configure --help 获取,当需要在文档中参看的时候,可以使用 > 流符号,如 : ./configure --help > option.txt。之后可以打开 option.txt 查看编译选项

–toolchain=msvc

使用 vs 工具包

–arch=x86_64

64位

–enable-shared

生成动态库

–disable-static

不生成静态库

–prefix=output

安装时候的目录前缀安装使用的命令属于 make install,可以在 Makefile 文件查看,该文件一般与 configure 目录位置一同

–enable-version3

使用 lgpl3 协议
生成编译选项时候,该功能具备不同协议,在 lgpl3 当中,引用 动态库 并不需要引用者开源代码,但是 gpl 则需要
若需要使用 gpl,但有不能开源的开发代码,可以使用插件形式,以加载形式使用被引用者

–enable-debug

加入调试内容

  • 2
    配置运行期间需要一定时间,但值得注意的是,它看上去像是卡死!
  • 3
    但配置完毕之后,msys2 会获取用户输入,但目前并不能完美运行,起码需要解决编码问题。
    config.h 编码问题,当然。编码内容需要编译器的发现,若在使用 make 出现 “编码” 问题,则需要更改config.h类似的文件编码

编译

以上步骤实现完成,可以使用

make

运行配置的编译,或者利用更多的资源,指定编译任务数量

make -j 8

其中 -j 表示使用更多资源,8 则表示可以使用 8 线程
但很明显,资源的数量并不代表真的可以利用这么多的资源,一般建议参考 cpu 的线程数量
注意 期间会出现一些编码警告,请参考 vs 章节

安装

使用

make install

命令进行安装,它会根据之前使用 configure 文件配置选项去实现文件拷贝

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值