win10 编译FFmpeg + x264

背景

最近在学习pjsip2,想开发一个自己的软电话。看了官方文档,要求挺多的,其中一项表示需要ffmpeg2.8版本。其他方面不谈,就说在自己电脑上折腾ffmpeg2.8版本编译的问题,历时两周多,踩的坑不计其数,很多都没有记录,本文也不细表。

本机环境信息

操作系统版本不同,在编译过程中遇到的问题不同,所以环境信息要说明一下:


操作系统: Windows 10 专业工作站版
版本号: 21H2
操作系统内核版本:19044.1766
64位操作系统,基于x64处理器

安装准备软件

下载MSYS2,https://www.msys2.org/

傻瓜式安装到默认文件夹C:\msys64

添加环境变量C:\msys64\mingw64\bin
在这里插入图片描述

添加msys64环境变量
双击mingw64.exe打开mingw64,安装软件
在这里插入图片描述


pacman -Syu
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-SDL2
pacman -S mingw-w64-x86_64-cmake
pacman -S yasm nasm gcc
pacman -S base-devel
pacman -S make
pacman -S diffutils

可能有些重复安装,但没办法,在编译过程中也是拼拼凑凑才整理出来的.

编译 x264

在这里插入图片描述

下载稳定版x264,x264还是比较好编译的,按照这个命令应该不会有问题
https://code.videolan.org/videolan/x264/-/archive/stable/x264-stable.zip
放到/home目录下

./configure --enable-static --enable-shared  --enable-pic --disable-thread
make -j8
make install

问题: msys2自带的libpthread.a中没有pthread_num_processors_np这个接口, 所以链接时会提示未定义的符号.解决方案是 增加–disable-thread
在这里插入图片描述

编译ffmpeg-n2.8.20

拷贝usr/local/lib目录下的 libx264.a、libx264.dll.a到C:\msys64\usr\lib目录,否则会报错找不到ERROR: libx264 not found
错误信息:


/usr/lib/gcc/x86_64-pc-msys/11.3.0/../../../../x86_64-pc-msys/bin/ld: cannot find -lx264

collect2: error: ld returned 1 exit status

ERROR: libx264 not found

在这里插入图片描述

configure 时需要指定目标系统和架构,否则会报Unknown mingw64_nt-10.0-xxx

./configure --target-os=mingw32 --arch=x86_64 --enable-shared --enable-static --enable-memalign-hack --enable-gpl --enable-libx264 --extra-cflags="-I/usr/local/includ"  --extra-ldflags="-I/usr/local/lib/" 
make -j8
make install

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值