windows 10 使用MSYS2 编译 x64位的ffmpeg

1. windows 下面编译ffmpeg真可谓折腾,网上资料大多是使用mingw+msys,mingw用来生成32位程序,它的内部集成了msys,下载地址: Welcome to MinGW.OSDN,下载并安装即可(安装时加上msys组件),如下图:

windows 10 使用MSYS2 编译 x64位的ffmpeg_第1张图片

windows 10 使用MSYS2 编译 x64位的ffmpeg_第2张图片

windows 10 使用MSYS2 编译 x64位的ffmpeg_第3张图片

2. 如果要编译x64位的ffmpeg,得用mingw64,但mingw64没有集成msys,需要手动搭建mingw64和msys的编译环境,比较费劲。

msys2集成了mingw x86 和 mingw x64,就可以比较方便地切换编译环境。

msys2官方网站下载安装包: MSYS2

也可以直接去清华大学软件站上下载安装,并根据其说明添加软件包镜像源: msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

msys2安装完成后,在cmd里面执行:C:/msys64/msys2_shell.cmd -mingw64(默认安装在C:/msys64路径下),打开64位编译环境。或者直接在开始菜单栏打开 MSYS2 MinGW x64。

打开这个编译环境之后,可以发现这个环境都是空的,连gcc也没有,因此需要安装编译工具:

pacman -Su
pacman -S mingw-w64-x86_64-toolchain
pacman -S base-devel
pacman -S yasm

# 如果需要编译出ffplayer.exe的话,应该还需要安装SDL(可以选择不生成ffplayer.exe)
pacman -S mingw-w64-x86_64-SDL2

编译工具装好之后,开始尝试编译ffmpeg,期间缺少什么库,就安装什么库(源码编译安装,或者pacman工具安装,就像linux上一样),一般可以成功。(ps:  编译libx264依赖库,参考:https://blog.csdn.net/nodeman/article/details/106431858)

mkdir install_dir
cd ffmpeg
./configure --prefix=../install_dir --disable-static --enable-shared --disable-ffplay --enable-ffmpeg --disable-x86asm --enable-gpl --enable-libfreetype --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 --disable-debug

make -j8
make install

有一个问题,使用msys2编译动态库的时候,有些mingw内部的dll库没有被编译进去,所以脱离了这个编译环境使用会报缺少dll, 一般在C:\msys64\mingw64\bin或者C:\msys64\mingw32\bin下面就能找到这些dll,将它们拷贝到.exe可执行文件同目录下,就可以正常使用了,也可以直接编成静态库,可以避免dll找不到的问题。

3. ffmpeg编程实践

用ffmpeg处理视频可以分为5个步骤:"解封装、解码、加滤镜、编码、封装",根据需求确定用哪几个步骤组合,实现不同的功能。可以参考我写的一个小项目,希望对大家有帮助。

VideoProcess: ffmpeg 学习笔记 (gitee.com)

你可能感兴趣的:(windows,音视频)