编译ffmpeg-4.0 x264-stable

https://github.com/ShiftMediaProject/x264/releases 也可以直接下载编译好的
vs2017 64位

  1. msys2下运行
pacman -Syu
pacman -S make pkg-config diffutils yasm
pacman -S mingw-w64-x86_64-nasm mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2

usr\bin\link.exe改一下名

  1. 编译x264
git clone git://git.videolan.org/x264.git
git checkout -b stable remotes/origin/stable
CC=cl ./configure --prefix=../build --host=x86_64-w64-mingw32 --enable-shared  --extra-ldflags=-Wl,--output-def=libx264.def 

如果--enable-static 后面config ffmpeg 时 会提示找不到x264,看config.log是一些符号未链接

make
make install

把lib目录下的 .dll.a 或 .dll.lib 重命名.lib
ffmpeg只认libx264.lib(动态库的lib)。可以编译ffmpeg时使用x264动态库lib,使用ffmpeg静态库时链接x264的静态库版本。

  1. 编译ffmpeg

msys2目录下新建bat文件

set MSYS2_PATH_TYPE=inherit
call "D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars64.bat"
msys2_shell.cmd -mingw64

执行bat文件,然后

./configure --prefix=../build --target-os=win64 --arch=x86_64  --toolchain=msvc --enable-static    --extra-cflags='-I../build/include'  --extra-ldflags='-LIBPATH:../build/lib'  --enable-gpl --disable-everything --disable-avdevice --enable-muxer=mp4 --enable-muxer=h264 --enable-protocol=file --enable-avformat --enable-avcodec --enable-decoder=mjpeg --enable-decoder=mpeg4 --enable-decoder=h264 --enable-encoder=libx264 --enable-encoder=mjpeg --enable-encoder=mpeg4 --enable-parser=h264 --enable-libx264  --disable-network --disable-avfilter --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-symver  

--extra-cflags 加上 -MD选项,链接时有问题。暂时不知如何搞。

config.h 编码改为utf8带bom,否则大量warning
config.mak
awk新版本 需要 把gsub(/\\/, "/")改为gsub("\\", "/")gsub(/\\\/, "/")(这个折磨了好长时间)

make -j4

make install

把lib目录下的.a重命名.lib
链接静态库 还需要Bcrypt.lib

  1. 最后

目前 ffmpeg 2.8 + x264 148 版本可以正常写mp4文件。
其它版本还有问题。暂时不知如何搞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值