目录

通过ShiftMediaProject生成ffmpeg的DLL和Lib的简要说明

这是将FFmpeg构建为msvc DLL和lib文件的一个小步骤说明文档。

项目包含静态库文件的发布和调试版本(调试/发布)以及动态共享dll文件(DebugDLL/ReleaseDLL)。

选择符合您要求的项目配置。

注意:FFmpeg需要C99支持才能编译。只有Visual Studio 2013或更新的版本才需要C99的功能

不支持旧版本。需要Visual Studio 2013或更新版本。如果使用旧的不受支持的Visual Studio版本,则英特尔编译器可用于添加所需的C99功能。

*** 使用默认提供的项目 ***

所提供的项目文件是使用ShiftMediaProject使用的默认配置选项创建的。这些项目使用Visual Studio,需要构建某些额外的依赖项,并在编译时可用。

所需的项目依赖项包括:

bzlib

iconv

zlib

lzma

libxml2

sdl2

libmp3lame

libvorbis

libspeex

libopus

libilbc

libtheora

libx264

libx265

libxvid

libvpx

libgme

libmodplug

libsoxr

libfreetype

fontconfig

libfribidi

libass

gnutls

libgcrypt

libssh

libcdio

libcdio_paranoia

libbluray

opengl

ffnvcodec

libmfx

上述大多数依赖项都是作为ShiftMediaProject存储库的一部分提供的。可以手动下载这些存储库,也可以使用提供的文件自动克隆这些存储库

project_get_dependencies.bat文件。这个文件也可以用来检查和下载在第一次克隆库之后的任何时间点上的任何依赖项更新。

这些依赖项目中的一些对这里列出的那些有额外的要求。请参阅每个项目的相应自述以了解更多详细信息。

ShiftMediaProject存储库中提供了许多可能的FFmpeg依赖项(以及这些依赖项)。

然而,以下是需要外部下载的额外依赖项选项列表:

  1. opengl(需要gleext)

a)从opengl.org下载gleext .h和wgleext .h。

b)将头文件保存到"OutputDir/include/gl/*"中。

c)从khronos.org下载khhrplatform .h

d)将头文件保存到"OutputDir/include/KHR/*"中。

  1. ffnvcodec(需要nv-codec-headers)

a)从https://github.com/FFmpeg/nv-codec-headers下载nv-codec-headers存储库

b)将nv-codec-headers存储库"include"文件夹的内容保存到"OutputDir/include/*"中。

  1. AMF(需要高级媒体框架(AMF) SDK头)

a)从https://github.com/GPUOpen-LibrariesAndSDKs/AMF下载AMF存储库

b)将AMF库的内容"AMF/ public/include"保存到"OutputDir/include/AMF/*"中。

*OutputDir是项目属性中指定的"输出目录"。

OutputDir的默认值是"..\.."\msvc"相对于FFmpeg源目录。期望的一个例子

目录结构为:

  • msvc (OutputDir)

-> source

  • FFmpeg

  • ..任何其他库的源代码..

ShiftMediaProject提供的任何依赖项都应该下载到FFmpeg文件夹旁边,因为它们将使用相同的OutputDir的位置。构建每个依赖项的项目可以在各自的存储库./SMP目录中找到,或者使用包含所有内容的ffmpeg_depth .sln。

只测试和支持从提供的ShiftMediaProject存储库构建的依赖项。使用编译的依赖项其他来源可能导致版本不匹配或其他问题。虽然这些外部来源通常工作良好,但任何相关问题它们不包括在ShiftMediaProject中,所以它们应该谨慎使用。

***使用ASM构建 ***

为了使用msvc构建FFmpeg,必须首先下载并安装NASM。

编译所有程序集文件都需要NASM。

  1. Visual Studio NASM集成可以从https://github.com/ShiftMediaProject/VSNASM/releases/latest下载

2)下载后,只需按照下载中包含的安装说明进行安装。

编译的结果可以从下面的链接下载,都是release版编译:

32位版:https://download.csdn.net/download/jyl_sh/90283058

64位版:https://download.csdn.net/download/jyl_sh/90283062

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
君义_noip5 分钟前
信息学奥赛一本通 1524:旅游航道
c++·算法·图论·信息学奥赛
学习同学28 分钟前
C++进阶知识复习 1~15
java·开发语言·c++
egoist202344 分钟前
【C++指南】一文总结C++二叉搜索树
开发语言·数据结构·c++·c++11·二叉搜索树
小王努力学编程1 小时前
动态规划学习——背包问题
开发语言·c++·学习·算法·动态规划
f狐0狸x3 小时前
【蓝桥杯每日一题】4.1
c语言·c++·算法·蓝桥杯
ん贤3 小时前
2023第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(真题&题解)(C++/Java题解)
java·c语言·数据结构·c++·算法·蓝桥杯
二进制人工智能7 小时前
【QT5 网络编程示例】TCP 通信
网络·c++·qt·tcp/ip
莫有杯子的龙潭峡谷9 小时前
3.31 代码随想录第三十一天打卡
c++·算法
AaronZZH10 小时前
【进阶】vscode 中使用 cmake 编译调试 C++ 工程
c++·ide·vscode
杨筱毅10 小时前
【性能优化点滴】odygrd/quill 中将 MacroMetadata 变量声明为 constexpr
c++·性能优化