文章目录
- 一、创建一个ShiftMediaProject文件夹
- 二、下载ShiftMediaProject源码 (以下操作最好都要翻墙)
- 三、下载其他头文件
- 四、编译
- 五、参考资料
一、创建一个ShiftMediaProject文件夹
我创建在: C:\ShiftMediaProject
二、下载ShiftMediaProject源码 (以下操作最好都要翻墙)
- 创建一个
source
文件夹,进入这个文件夹中(C:\ShiftMediaProject\source
),下载 FFmpeg:
git clone https://github.com/ShiftMediaProject/FFmpeg.git
- 下载其他依赖,进入\FFmpeg\SMP 执行
project_get_dependencies.bat
自动下载ffmepg依赖项目
cd FFmpeg\SMP
project_get_dependencies.bat
脚本执行完成后,会下载到这些:
备用方案
:如果你的网络很慢,经常下载失败,可以自己一个一个下载这些依赖,下载在source文件夹中(C:\ShiftMediaProject\source),依次执行:
git clone https://github.com/ShiftMediaProject/bzip2.git
git clone https://github.com/ShiftMediaProject/fontconfig.git
git clone https://github.com/ShiftMediaProject/freetype2.git
git clone https://github.com/ShiftMediaProject/fribidi.git
git clone https://github.com/ShiftMediaProject/game-music-emu.git
git clone https://github.com/ShiftMediaProject/gmp.git
git clone https://github.com/ShiftMediaProject/gnutls.git
git clone https://github.com/ShiftMediaProject/harfbuzz.git
git clone https://github.com/ShiftMediaProject/lame.git
git clone https://github.com/ShiftMediaProject/libass.git
git clone https://github.com/ShiftMediaProject/libbluray.git
git clone https://github.com/ShiftMediaProject/libcdio.git
git clone https://github.com/ShiftMediaProject/libcdio-paranoia.git
git clone https://github.com/ShiftMediaProject/libgcrypt.git
git clone https://github.com/ShiftMediaProject/libgpg-error.git
git clone https://github.com/ShiftMediaProject/libiconv.git
git clone https://github.com/ShiftMediaProject/libilbc.git
git clone https://github.com/ShiftMediaProject/liblzma.git
git clone https://github.com/ShiftMediaProject/libssh.git
git clone https://github.com/ShiftMediaProject/libvpx.git
git clone https://github.com/ShiftMediaProject/libxml2.git
git clone https://github.com/ShiftMediaProject/mfx_dispatch.git
git clone https://github.com/ShiftMediaProject/modplug.git
git clone https://github.com/ShiftMediaProject/nettle.git
git clone https://github.com/ShiftMediaProject/ogg.git
git clone https://github.com/ShiftMediaProject/opus.git
git clone https://github.com/ShiftMediaProject/sdl.git
git clone https://github.com/ShiftMediaProject/soxr.git
git clone https://github.com/ShiftMediaProject/speex.git
git clone https://github.com/ShiftMediaProject/theora.git
git clone https://github.com/ShiftMediaProject/vorbis.git
git clone https://github.com/ShiftMediaProject/x264.git
git clone https://github.com/ShiftMediaProject/x265.git
git clone https://github.com/ShiftMediaProject/xvid.git
git clone https://github.com/ShiftMediaProject/zlib.git
下载完,再执行 \FFmpeg\SMP 目录下的 project_get_dependencies.bat , 因为上面这些主动下载的也不全,还需要使用这个脚本补充下载
- 下载安装yasm nasm,也是下载在source文件夹中(C:\ShiftMediaProject\source)
下载:https://github.com/ShiftMediaProject/VSNASM/releases/latest
下载:https://github.com/ShiftMediaProject/VSYASM/releases/latest
或者
git clone https://github.com/ShiftMediaProject/VSYASM.git
git clone https://github.com/ShiftMediaProject/VSNASM.git
执行nasm 和yasm安装脚本(需要使用管理员权限打开cmd执行安装脚本)
VSNASM\install_script.bat
VSYASM\install_script.bat
三、下载其他头文件
- 创建一个
msvc
目录(C:\ShiftMediaProject\msvc
),目录结构如下:
- msvc # (这次创建的,用于放置头文件和编译完FFmpeg后生成的动态库)
- source #(这里是前一节下载的FFmpeg和依赖库源文件)
- FFmpeg #(FFmpeg源文件)
- Any other libraries source code.. #(其他依赖库源文件)
所需要的头文件,我整理上传到资源库了,可以下载我整理出来的: https://download.csdn.net/download/Jay_Xio/87274439
也可以按照下面的步骤自己下载
-
下载opengl 的
glext.h
和wglext.h
到msvc/include/gl/
目录下:
下载地址:https://registry.khronos.org/OpenGL/api/GL/
-
下载 opengl 的
khrplatform.h
到msvc/include/KHR/
目录下:
下载地址:https://registry.khronos.org/EGL/api/KHR/
-
下载 nv-codec-headers 项目的
include
文件夹下的ffnvcodec文件夹
内容到msvc\include
目录下:
下载地址:https://github.com/FFmpeg/nv-codec-headers
-
下载 AMF 项目的
amf/public/include
文件夹下的内容到msvc/include/AMF/
目录下:
下载地址:https://github.com/GPUOpen-LibrariesAndSDKs/AMF
四、编译
用visual studio打开 ShiftMediaProject\source\FFmpeg\SMP\ffmpeg_deps.sln
编译后的文件在: ShiftMediaProject\msvc 目录
五、参考资料
https://shiftmediaproject.github.io/1-projects/
https://github.com/ShiftMediaProject/FFmpeg/blob/master/SMP/readme.txt
vs2019编译ShiftMediaProject
VS2022编译调试FFmpeg