FFmpeg 开发环境搭建
- FFmpeg命令行环境搭建
- 使用FFmpeg官方编译的库
- Windows编译FFmpeg
- 1. 下载[msys2](https://www.msys2.org/#installation)
- 2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set
- 3. 修改pacman 镜像源并安装依赖
- 4. 下载并编译源码
FFmpeg命令行环境搭建
- 下载编译好的ffmpeg
在搭建命令行环境时,下载ffmpeg-master-latest-win64-gpl.zip
,将其解压后bin
文件夹下得到3个可执行文件。
拷⻉可执⾏⽂件到C:\Windows(系统可执行文件搜索路径),在cmd中输入ffmpeg -version
进行检查。
- 使用FFmpeg官方编译的库(也可以)
- 使用静态库版本
- 使用动态库版本
ffmpeg-master-latest-win64-gpl-shared.zip
版本运行时链接动态库使用,将可执行文件放到C:\Windows(系统可执行文件搜索路径),并将动态库拷贝到C:\Windows\SysWOW64(注:(WoW64 (Windows On Windows64 )是⼀个Windows操作系统的⼦系统,被设计⽤来处理许多在32-bit Windows和64-bit Windows之间的不同的问题,使得可以在64-bit Windows中运⾏32-bit程序。))
同样的,进行检查,那么这就是开发者版本。
使用FFmpeg官方编译的库
在上一part中得到的shared版本(dev版本),包含开发所需要的头文件和库文件,开发时引入include并链接lib即可。
使用C++开发时需注意,引入头文件时,声明extern,这是由于ffmpeg对C的支持性导致的。
extern "C" {
// your ffmpeg header file
}
Windows编译FFmpeg
之所以需要编译,是因为想要客制化FFmpeg。
1. 下载msys2
2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set
MSYS2_PATH_TYPE=inherit取消(rem 为注释符号,去掉rem即可),这是为了将vs的环境继承给MSYS2。
3. 修改pacman 镜像源并安装依赖
- 修改pacman 镜像源
进入msys2安装目录
- 编辑 /etc/pacman.d/mirrorlist.mingw32 ,在⽂件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/ Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
- 编辑 /etc/pacman.d/mirrorlist.mingw64 ,在⽂件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/ Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
- 编辑 /etc/pacman.d/mirrorlist.msys ,在⽂件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/ Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
-
安装依赖
我选择的是mingw64 进行编译
打开mingw64
安装依赖pacman -S mingw-w64-x86_64-toolchain pacman -S git pacman -S make pacman -S automake pacman -S autoconf pacman -S perl pacman -S libtool pacman -S mingw-w64-i686-cmake pacman -S pkg-config pacman -S mingw-w64-x86_64-SDL2 pacman -S yasm