当前位置: 首页 > article >正文

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

需要的工具:
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 nasm
 
mv /usr/bin/link.exe /usr/bin/link.exe.bak

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

#!/bin/sh

export 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.kler.cn/a/568267.html

相关文章:

  • php 的 composer.phar 是干什么用的?
  • Vue3实现文件上传、下载及预览全流程详解(含完整接口调用)
  • 加油站小程序实战教程03站点管理
  • 《从0到1:用Python在鸿蒙系统开发安防图像分类AI功能》
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_pstrdup函数
  • 计算机视觉(opencv-python)入门之图像的读取,显示,与保存
  • 【每日八股】MySQL篇(三):索引(上)
  • 如何让 Git 管理本地项目
  • 基于PHP+MySQL实现的毕业设计选题管理系统
  • 算法(四)——位运算与位图
  • Unity中动态切换光照贴图的方法
  • Android限制后台服务、广播和Activity,节省更多的电量
  • MAC 怎么设置 Java虚拟内存设置
  • vue+wsplayer对接大华的rtsp实时预览视频流
  • LangChain解锁LLM大语言模型的结构化输出能力:调用 with_structured_output() 方法
  • ORM Bee V2.5.2.x 发布,支持 CQRS; sql 性能分析;更新 MongoDB ORM分片
  • 六十天前端强化训练之第五天响应式设计原理深度解析
  • 0301 leetcode - 1502.判断是否能形成等差数列、 682.棒球比赛、657.机器人能否返回原点
  • java数据结构_Map和Set_9.1
  • 【K8S】Kubernetes 基本架构、节点类型及运行流程详解(附架构图及流程图)