首页 > 系统相关 >windows 上 ffmpeg 库的安装

windows 上 ffmpeg 库的安装

时间:2023-09-19 15:58:12浏览次数:42  
标签:ffmpeg windows -- vcpkg test link 安装

真复杂啊

安装 ffmpeg 库有两种途径,一种是自己下载源码再去编译,另一种是使用 vcpkg 自动安装

一般情况下,第二种是最简单方便的,但是如果你需要使用 ffmpeg 的特定历史版本,那就有点困难了

下面记录下我遇到的坑,

借助这篇文章,我打算使用 vcpkg 切换到 ffmpeg 的历史提交并安装

1. cmd 下切换到 vcpkg.exe 的安装目录下,确保该目录下有 .git 文件夹,没有的话,git init 新创建就行

2. 列出 ffmpeg 历史提交

git log --color=always --pretty="%Cred%h%Creset -%C(auto)%d%Creset %Cgreen%s%Creset %Cgreen(%ad)" --date=short | grep --color=never ffmpeg 

3. 找到你需要的历史提交,复制并切换,这里你可以先自己 checkout 一个测试分支,以免原始分支(master)受到影响

git checkout 351fbda5b

 4. 重新安装 ffmpeg 静态库,如果之前已经安装了最新的,卸载即可

vcpkg install ffmpeg:x86-windows-static

问题来了,到这一步应该就安装成功了,可是事实往往相反,报错了

 搜了相关错误文章,没有找到合适的解决方法,所以这条路先放弃

补充:要安装 grep 工具,自行查找安装即可,以及 PowerShell Core 工具,可以到 github 上下载安装包

 


 

我又尝试手动编译 ffmpeg 库,下载了相关的源码,并借助这篇文章来学习如何编译

文章中的 MINGW 编译库的方法是可以成功的,不过我们需要在 visual studio 中调试源码,所以要用 msvc 编译源码

方法如下:(x86 版本)

1. 打开 x86 Native Tools Command Prompt for VS 2019,切到 msys64 目录

2. 用 Notepad++ 打开 msys2_shell.cmd 并将下面一行取消注释,取消注释后的代码如下

set MSYS2_PATH_TYPE=inherit

3. 在 x86 Native Tools Command 中运行 msys2_shell.cmd,会自动打开 msys2 窗口,在 msys2 窗口切换到 ffmpeg 源码下,并运行 configure

./configure --prefix=usr/local/ffmpegmsvc --disable-shared --enable-static --toolchain=msvc --enable-gpl

这边理论成功的,但是失败了

ffbuild 文件夹下 config.log 记录了错误原因

BEGIN ./ffconf.ZNgb3tDo/test.c
    1	int main(void){ return 0; }
END ./ffconf.ZNgb3tDo/test.c
cl -nologo -c -Fo./ffconf.ZNgb3tDo/test.o ./ffconf.ZNgb3tDo/test.c
test.c
./compat/windows/mslink -nologo -out:./ffconf.ZNgb3tDo/test.exe ./ffconf.ZNgb3tDo/test.o
LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
C compiler test failed.

  

这个错误我搜索了很多资料,但是都无法解决

另:我在自己的电脑上操作了上面的安装步骤,是可以成功的,感觉是公司电脑环境有问题,无语

还有要避坑的地方是注意 cl 的路径是否正确,以及 link 的位置,可以使用 which 命令来查看

$ which link
/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.37.32822/bin/HostX86/x86/link

$ which cl
/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.37.32822/bin/HostX86/x86/cl

特别是 link,往往最后会提醒你找不到匹配的 link.exe,因为配置过程中有可能会使用 msys2 下的 link.exe,我们可以简单的将 link.exe 重命名来避免链接错误

 

 


 

最后打算使用微软出的 vcpkg 控制版本来完成这个需求,使用 vcpkg.json 文件控制,相关文章如下

 

标签:ffmpeg,windows,--,vcpkg,test,link,安装
From: https://www.cnblogs.com/strive-sun/p/17714860.html

相关文章

  • 【转】MySQL安装失败原因及解决方案
     MySQL安装,初始化数据的时候失败。。。。。报错bin.index一堆的乱码找了好长时间的原因了。。。。。。。大概率原因是:计算机名称是中文。 转自:MySQL安装失败原因及解决方案(ngui.cc)......
  • Linux 安装Nodejs
    1.cd/usr/local/src/2.下载nodewgethttps://nodejs.org/dist/v15.4.0/node-v15.4.0-linux-x64.tar.xz3.解压文件tarxfnode-v15.4.0-linux-x64.tar.xz4.导航至解压目录cdnode-v15.4.0-linux-x65.运行node查看版本,确认是否安装成功:./bin/node-v6.设置node软链接:ln......
  • Linux 安装Nginx
    1.安装epelsudoyuminstallepel-release2.安装nginxyuminstall-ynginx3.导航至nginx配置文件目录cd/etc/nginx/4.修改nginx配置文件vinginx.conf#Formoreinformationonconfiguration,see:#*OfficialEnglishDocumentation:http://nginx.org/en/docs/......
  • CentOS7装浏览器:安装配置一步搞定
    CentOS7是一款开源的操作系统,它广泛应用于服务器和工作站。然而linuxqq,由于它的默认安装没有包含任何图形界面centos装浏览器,因此很难在上面使用Web浏览器。本文将向您展示如何在CentOS7上安装和配置浏览器。1.安装桌面环境要在CentOS上使用浏览器,您需要先安装桌面环境。这......
  • 怎么安装网线
    安装网线步骤如下:准备一根网线。将网线的两头塞进网线钳的圆孔刀具,两边各预留3~5厘米的距离。转圈之后,再将外面的一层剥离,露出里面的线。将里面的网线拆开,按颜色分类,并按顺序排列整齐。将网线放进去,要顶到最里边。用钳子将网线的水晶头放在适合的位置,用力按一下,能够听到咔嚓的一声......
  • Linux系统同时安装MySQL5.7和MySQL8.0
    本文是在一台Centos7虚拟机上面同时安装mysql5.7和mysql8.0的步骤,记录一下,方便后续回顾,这篇文章之后会接着学习搭建两台虚拟机一主一从的架构。其中配置的文件名称、目录、端口号、IP地址要根据自己电脑的实际情况进行更改。mysql5.7和mysql8.0同时安装完成后:将安装包上传到家目录......
  • vue:安装使用nprogress([email protected])
    一,官方地址:官方站:https://rstacruz.github.io/nprogress/代码站:https://github.com/rstacruz/nprogress二,安装/引入:1,安装root@lhdpc:/data/vue/responsive#npminstallnprogress —save2,main.js中引入:123456789101112131415161718......
  • 简单易懂的Linux RedHat安装教程,轻松搭建开发环境
    Linux RedHat是一款流行的操作系统,它拥有强大的稳定性和安全性,是许多企业和开发者首选的操作系统。本文将为你详细介绍如何从零开始安装LinuxRedHat并搭建你的开发环境。1.准备工作在安装LinuxRedHat之前,需要准备好以下物品:-一台电脑-一个USB启动盘-LinuxRedHat......
  • Harbor 安装(k8s)-企业容器镜像仓库
    Harbor安装在k8s集群本小节目的是要在k8s集群上安装一个harbor镜像仓库。准备工作参考官网文档需要的准备工作。PrerequisitesKubernetescluster1.10+Helm2.8.0+Highavailableingresscontroller(Harbordoesnotmanagetheexternalendpoint)Highavailabl......
  • 解决安装wsl时候报错的问题: WslRegisterDistribution failed with error: 0x800701bc
    在Win10或者Win11上安装wsl的时候,可能会遇到如下的错误信息:Error:0x800701bcWSL2??????????????????https://aka.ms/wsl2kernelPressanykeytocontinue...  这个是由于系统内置的WSL内核过低导致的,可以到如下的网址下载升级包:https://learn.microsoft.com/zh-cn......