win10 下Msys2编译FFmpeg的流程方法

安装Msys

MSYS2官网

安装...

将\msys64\usr\bin加入环境变量

Mysy2中输入

pacman --Syu

pacman --Su

pacman -S git patch unzip

pacman -S mingw-w64-x86_64-toolchain

pacman -S mingw-w64-x86_64-yasm

pacman -S mingw-w64-x86_64-SDL2

pacman -S mingw-w64-x86_64-fdk-aac

pacman -S mingw-w64-x86_64-x264

pacman -S mingw-w64-x86_64-x265

安装make

pacman -S make

查看是否被安装

pacman -Q gcc

安装GCC

pacman -S gcc

查看gcc安装路径

which gcc

进入FFmpeg文件夹

cd /f/ffmpeg

生成Makefile(这里要在MSYS2 MINGW64中进行),回车后会有一段时间没有什么反馈,别急,等等。

./configure --prefix=C/ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265

编译/安装

make -j8 && make install

安装后将c:\ffmpeg\bin加入环境变量

vs中头文件include,库文件bin,依赖名lib

如果缺少xxx.dll去\msys64\mingw64\bin中找

libwinpthread-1.dll

SDL2.dll

zlib1.dll

liblzma-5.dll

libbz2-1.dll

libiconv-2.dll

libgcc_s_seh-1.dll

libstdc++-6.dll

libx265.dll

libx264-164.dll

libfdk-aac-2.dll

  • ./configure:这是一个脚本,用于配置FFmpeg的编译选项。它会检查你的系统上是否有编译FFmpeg所需的库和工具,并根据你指定的选项来生成Makefile。

  • --prefix=/c/FFmpeg:这个选项指定了安装路径。编译完成后,所有的文件(包括可执行文件、库和头文件)都会被安装到这个路径。在这里,/c/FFmpeg对应的Windows路径是C:\FFmpeg

  • --disable-static:这个选项禁用了静态库的构建。静态库是一种包含了多个对象文件的库,可以在链接阶段被完全集成到可执行文件中。

  • --enable-shared:这个选项启用了共享库的构建。共享库是一种可以被多个程序共享的库,它们在运行时被动态加载到内存中。

  • --enable-version3:这个选项启用了版本3的API。FFmpeg的API有多个版本,不同的版本有不同的功能和兼容性。

  • --disable-ffplay:这个选项禁用了ffplay的构建。ffplay是FFmpeg项目的一部分,是一个简单的媒体播放器。

  • --enable-ffmpeg:这个选项启用了ffmpeg的构建。ffmpeg是FFmpeg项目的核心,是一个用于处理多媒体数据的命令行工具。

  • --disable-x86asm:这个选项禁用了对x86汇编的优化。一些FFmpeg的功能可以使用x86汇编进行优化,以提高性能。但是,这需要额外的编译时间,并可能导致兼容性问题。

相关推荐
aqi008 小时前
FFmpeg开发笔记(六十四)使用国产的RedPlayer播放器观看网络视频
android·ffmpeg·音视频·直播·流媒体
道剑剑非道1 天前
QT开发技术【ffmpeg + QAudioOutput】音乐播放器 完善
开发语言·qt·ffmpeg
毒果1 天前
FFmpeg 低延迟同屏方案
ffmpeg·同屏
aqi001 天前
FFmpeg开发笔记(六十三)FFmpeg使用vvenc把视频转为H.266编码
ffmpeg·音视频·直播·流媒体
梧桐樹下2 天前
FFmpeg avformat_open_input函数分析
ffmpeg
道剑剑非道2 天前
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
开发语言·qt·ffmpeg
IOsetting2 天前
Ubuntu24.04 交叉编译 aarch64 ffmpeg
ffmpeg
却道天凉_好个秋2 天前
ffmpeg(三):处理原始数据命令
ffmpeg
@残梦2 天前
129、QT搭建FFmpeg环境
开发语言·qt·ffmpeg
阿飞__3 天前
C++ 使用 ffmpeg 解码本地视频并获取每帧的YUV数据
c++·ffmpeg·音视频