FFmpeg window编译,遇到的坑

FFmpeg window编译,遇到的坑

结合各中百度,找到了总结一个编译流程

根据网站安装(但是安装过程的步骤可以根据一下命令)

其他作者网站
https://blog.csdn.net/m0_63230155/article/details/132216971

自己总结安装需要修改的地方
在编译FFMPEG的时候需要修改一下,可以用下面的命令安装
 ./configure --toolchain=msvc  --enable-cross-compile  --prefix=/usr/local/ffmpeg-6.0 --disable-static --enable-shared --extra-cflags=-l/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib 

错误信息:
D:\program\win_compile_ffmpeg\ffmpeg-6.0\config.h(1): warning C4828: 文件包含在偏移 0x284 处开始的字
符,该字符在当前源字符集中无效(代码页 65001)。
D:\program\win_compile_ffmpeg\ffmpeg-6.0\config.h(1): warning C4828: 文件包含在偏移 0x293 处开始的字
符,该字符在当前源字符集中无效(代码页 65001)。
D:\program\win_compile_ffmpeg\ffmpeg-6.0\config.h(1): warning C4828: 文件包含在偏移 0x294 处开始的字
符,该字符在当前源字符集中无效(代码页 65001)。
fftools/ffmpeg.c(346): warning C4267: “函数”: 从“size_t”转换到“unsigned int”,可能丢失数据
fftools/ffmpeg.c(545): warning C4090: “函数”: 不同的“const”限定符
fftools/ffmpeg.c(834): warning C4267: “函数”: 从“size_t”转换到“int”,可能丢失数据
fftools/ffmpeg.c(2991): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据
fftools/ffprobe.c(359): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据
fftools/ffprobe.c(589): warning C4267: “函数”: 从“size_t”转换到“int”,可能丢失数据
fftools/ffprobe.c(2380): warning C4267: “函数”: 从“size_t”转换到“int”,可能丢失数据
fftools/ffprobe.c(2381): warning C4267: “函数”: 从“size_t”转换到“int”,可能丢失数据
fftools/ffprobe.c(3537): error C2001: 常量中有换行符
fftools/ffprobe.c(3538): error C2146: 语法错误: 缺少“)”(在标识符“writer_print_string”的前面)
fftools/ffprobe.c(3537): error C2198: “writer_print_string”: 用于调用的参数太少
fftools/ffprobe.c(3653): warning C4133: “=”: 从“int *”到“SectionID *”的类型不兼容
fftools/ffprobe.c(3946): warning C4133: “=”: 从“const int *”到“const SectionID *”的类型不兼容
make: *** [ffbuild/common.mak:81: fftools/ffprobe.o] Error 2
STRIP   libavcodec/x86/vp9itxfm.o
skipping strip -x libavcodec/x86/vp9itxfm.o


找到第一个错误点:fftools/ffprobe.c(3537): error C2001: 常量中有换行符
其实是由于文件的编码格式导致,找到错误文件	fftools/ffprobe.c
定位到错误行号(3537): 

更改信息:
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
#define FFMPEG_CONFIGURATION "--toolchain=msvc --enable-cross-compile --prefix=/usr/local/ffmpeg-5.1.2-full_build-shared/ --disable-static --enable-shared --extra-cflags=-l/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2023
#define FFMPEG_DATADIR "/usr/local/ffmpeg-5.1.2-full_build-shared//share/ffmpeg"
#define AVCONV_DATADIR "/usr/local/ffmpeg-5.1.2-full_build-shared//share/ffmpeg"
// #define CC_IDENT "���� x64 �� Microsoft (R) C/C++ �Ż������� 19.29.30151 ��"	//这个文件用utf8打开会有问题,出现乱码,此文件默认编码gbk才能打开正确,但是编译文件默认选用utf8,需要将乱码改掉如下:
#define CC_IDENT "用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.29.30151 版"
#define OS_NAME win32
#define av_restrict restrict
#define EXTERN_PREFIX ""
#define EXTERN_ASM 


再去执行make -j8 && make install (完美)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值