赞
踩
本章节记录在Windows上编译ffmpeg的过程及编译过程的问题,并使用编译库编写测试程序验证是否可用。
在windows上编译主要使用MSYS2和vs 2019编译器编译ffmpeg,并且验证32位和64位的编译。
ffmpeg源代码
官网:https://ffmpeg.org/
版本信息:
5.1.2 was released on 2022-09-25. It is the latest stable FFmpeg release from the 5.1 release branch, which was cut from master on 2022-07-13.
It includes the following library versions:
libavutil 57. 28.100
libavcodec 59. 37.100
libavformat 59. 27.100
libavdevice 59. 7.100
libavfilter 8. 44.100
libswscale 6. 7.100
libswresample 4. 7.100
libpostproc 56. 6.100
系统版本:Windows 10
编译器:Visual Studio 2019
MSYS2
MSYS2是Windows下的Linux模拟器,支持绝大多数的Linux命令,软件包管理器是pacman
官网:https://www.msys2.org/
x264源代码
x264是一个用于将视频流编码为H.264/MPEG-4 AVC压缩格式的免费软件库和应用程序。为了支持ffmpeg的H264编解码必须编译这个。
官网:https://www.videolan.org/developers/x264.html
版本:master分支(20221112)
启动msys2
通过vs2019的命令行启动msys2,这样msys2可以获取到vs的环境变量。
编译32位和64位的动态库,只是启动的vs2019命令行不一样,其他执行操作都一样。下面以编译32位的动态库为例,启动msys2:
修改msys2的配置文件
修改msys2_shell.cmd文件,打开set MSYS2_PATH_TYPE=inherit的注释(使其能继承vs2019的命令行环境)
启动vs2019 x86(32位)命令行
如下可以看到32和64的命令行,这里我们启动x86 Native ToolsCommand Prompt for Vs2019
测试cl.exe的版本确实是x86(32)
启动msys2
启动mysy2(c:\msys64是msy2的安装目录),不管启动的vs2019命令行是32位还是64位的,执行下面操作都一致。
启动后的msys2:
安装依赖项
# 安装mingw工具链
pacman -S mingw-w64-x86_64-toolchain
# 安装linux base-devel
pacman -S base-devel
# 安装汇编工具,gcc等
pacman -S yasm nasm gcc
源代码解压
将ffmpeg和x264源码解压放在如下对应目录:
编译
# 当前脚本的目录
base_path=$(cd `dirname $0`
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。