VS2019编译FFMPEG 5.2.r109878

以下是我采用VS2019编译FFMpeg的全过程:
1、从这里完整下载所有源代码
https://github.com/ShiftMediaProject
2、然后解压到如E:\working\FFmpegCompile\FFmpegMFC\FFmpeg
3、进入E:\working\FFmpegCompile\FFmpegMFC\FFmpeg\SMP,执行SMP下的project_get_dependencies.bat,下载时间有点久,耐心等待一会。

4、下载yasm、nasm配置文件,地址
https://github.com/ShiftMediaProject/VSYASM/
https://github.com/ShiftMediaProject/VSNASM/

5、拷贝yasm.props、nasm.props等文件到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations
yasm.props、yasm.targets、yasm.xml
nasm.props、nasm.targets、nasm.xml
 
6、解压到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
https://www.nasm.us/pub/nasm/releasebuilds/2.16/win32/nasm-2.16-win32.zip 

yasm.exe需要下载官方源码,用VS2019编译生成的。目前官网上下载的都是比较旧的,我这边都编译失败了。
正常编译会有如下信息:
Assembling addlsh1_n.s ==> E:\working\FFmpegCompile\FFmpegMFC\gmp\SMP\obj\Release\Win32\libgmp\addlsh1_n.obj

nasm.exe采用官网最新版2.16版。试了2.15版和更早的都编译失败了,直接不编译asm文件,只编译c文件。
正常编译会有如下信息:
..\libass\x86\be_blur.asm

7、libxvidcore项目源码不能用最新版,可以采用release-1_3_3版本。project_get_dependencies.bat脚本自动下载的是release-1_3_7-1,编译成功但是链接失败,错误如下。
1>libavcodecd.lib(xvid.obj): error LNK2019: unresolved external symbol _bgr_to_yv12_mmx referenced infunction _xvid_gbl_init
1>libavcodecd.lib(xvid.obj): error LNK2019: unresolved external symbol _rgb_to_yv12_mmx referenced infunction _xvid_gbl_init
1>libavcodecd.lib(xvid.obj): error LNK2019: unresolved external symbol _bgra_to_yv12_mmx referenced infunction _xvid_gbl_init
1>libavcodecd.lib(xvid.obj): error LNK2019: unresolved external symbol _rgba_to_yv12_mmx referenced infunction _xvid_gbl_init
1>  libavcodecd.lib(xvid.obj): error LNK2019: unresolved external symbol _yuyv_to_yv12_mmx referenced infunction _xvid_gbl_init

8、部分项目需要包含一些头文件,可以参考这里解决
https://blog.csdn.net/wanfengnianhua/article/details/121117948

9、主要坑集中在第4-7点,特别是第6点,nasm编译直接被忽略,困扰了多天,以为是vs配置问题,最后换了官网最新版就解决了。其他的都是小问题了。
————————————————
参考链接:
https://blog.csdn.net/JiffyChen/article/details/74552402
https://blog.csdn.net/wanfengnianhua/article/details/121117948

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用VS2019编译FFmpeg的步骤: 1. 下载FFmpeg代码: - 访问FFmpeg官方网站(https://ffmpeg.org/)并下载最新的源代码压缩包。 - 解压缩下载的压缩包到你选择的目录。 2. 安装MSYS2: - 访问MSYS2官方网站(https://www.msys2.org/)并下载最新的安装程序。 - 运行安装程序并按照提示进行安装。 - 安装完成后,打开MSYS2的终端。 3. 更新MSYS2: - 在MSYS2终端运行以下命令来更新MSYS2的软件包: ```shell pacman -Syu ``` 4. 安装所需的依赖库: - 在MSYS2终端运行以下命令来安装所需的依赖库: ```shell pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-nasm ``` 5. 配置环境变量: - 打开VS2019并创建一个新的空白解决方案。 - 在解决方案资源管理器,右键单击解决方案并选择“属性”。 - 在属性窗口,选择“配置属性” > “VC++目录”。 - 在“包含目录”字段,添加FFmpeg代码路径。 - 在“库目录”字段,添加FFmpeg代码路径。 6. 配置FFmpeg编译选项: - 在解决方案资源管理器,右键单击解决方案并选择“属性”。 - 在属性窗口,选择“配置属性” > “C/C++” > “常规”。 - 在“附加包含目录”字段,添加FFmpeg代码路径。 - 在属性窗口,选择“配置属性” > “链接器” > “常规”。 - 在“附加库目录”字段,添加FFmpeg代码路径。 - 在属性窗口,选择“配置属性” > “链接器” > “入”。 - 在“附加依赖项”字段,添加以下库文件: ``` avcodec.lib avformat.lib avutil.lib swscale.lib ``` 7. 编译和运行: - 在VS2019,选择“生成” > “生成解决方案”来编译FFmpeg。 - 如果编译成功,你可以在出目录到生成的可执行文件。 请注意,编译FFmpeg可能需要一些时间和计算资源,并且可能会遇到一些依赖库的问题。确保按照上述步骤正确配置环境和依赖项。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值