Welcome to A!Die Software Studio |
1. 下载源代码:
git clone https://github.com/adintr/FFmpeg.git
git checkout rtmp265
2. 安装 Visual C++ 2017
3. 安装 MSYS2, 64 位版本 http://www.msys2.org/
4. 安装基本环境:
pacman -S vim
pacman -S git
pacman -S --disable-download-timeout base-devel
5. 安装 MinGW:pacman -S --disable-download-timeout mingw-w64-x86_64-toolchain
pacman -S --disable-download-timeout yasm
pacman -S --disable-download-timeout nasm
6. 修改 msys2_shell.cmd 文件:
取消: rem set MSYS2_PATH_TYPE=inherit 的注释.
添加: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
7. msys64\usr\bin\link.exe 改名 glink.exe, 避免和 VC 的 link 程序冲突.
拷贝 msys64\mingw64\bin\tclsh.exe 到 msys64/usr/bin/tclsh.exe
8. 安装依赖包
pacman -S openssl
pacman -S libopenssl
9. 编译 libsrt
1) git clone https://github.com/Haivision/srt.git
2) git clone https://github.com/GerHobbelt/pthread-win32.git
3) 直接打开 pthread-win32 下的 VC 工程编译 Release, 64, 按照 https://github.com/Haivision/srt 的说明拷贝 lib 和头文件.
4) 修改 srt 代码目录下的 configure 程序, 只打印运行的 cmake 命令行, 不执行.
./configure --disable-static --enable-shared --pthread-include-dir=/e/study/ffmpeg/3rdlibs/pthread-win32/include/ --pthread-library=/e/study/ffmpeg/3rdlibs/pthread-win32/lib/ --pkg-config-executable=E:\study\ffmpeg\msys64\mingw64\bin\pkg-config.exe
5) 拷贝 cmake 命令并添加参数:
-G"Visual Studio 15 2017 Win64"
-B编译路径
cmake . -DENABLE_STATIC=0 -DENABLE_SHARED=1 -DPTHREAD_INCLUDE_DIR=E:/study/ffmpeg/3rdlibs/pthread-win32/include/ -DPTHREAD_LIBRARY=E:/study/ffmpeg/3rdlibs/pthread-win32/lib/ -DPKG_CONFIG_EXECUTABLE=E:/study/ffmpeg/msys64/mingw64/bin/pkg-config.exe -G"Visual Studio 15 2017 Win64" -B/e/study/ffmpeg/3rdlibs/srt/build
6) 打开 IDE 编译工程
1> 连接选项中的:
ssl.lib => libssl.a
crypto.lib => libcrypto.a
ws2_32.lib =>并添加路径 E:\study\ffmpeg\msys64\usr\lib\w32api
libws2_32.a => 并添加路径 msys64\mingw64\x86_64-w64-mingw32\lib
添加 pthread_lib.lib 和路径
添加 libgcc.a 和路径 msys64\usr\lib\gcc\x86_64-pc-msys\7.4.0
添加 legacy_stdio_definitions.lib
2> 确保解决方案中所有工程编译成功
7) 拷贝 haisrt.pc 和 srt.pc 文件到 msys64\mingw64\lib\pkgconfig 中, 并修改其中的路径.
10. 配置:
./configure --disable-static --enable-shared --toolchain=msvc --arch=x86_64 --extra-ldflags="-static-libgcc" --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-libsrt
11. make -j8
修改使用 CC_IDENY 宏导致的错误后继续编译.
12. make install
编译好的文件在 usr\local\bin 下面, 拷贝 srt.dll 过来后可以运行.
==================================================== 加入 libx264 和 libx265
1. 编译安装 libx264
1) git clone https://code.videolan.org/videolan/x264.git
2) ./configure --enable-static --enable-shared --host=x86_64-w64-mingw64
3) make
4) make install
5) export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
6) 修改 /usr/local/lib/pkgconfig/x264.pc 中的路径.
ln -s /usr/local/lib/libx264.dll.a libx264.lib
2 编译安装 libx265
1) 下载 x265_3.2.1.tar.gz https://bitbucket.org/multicoreware/x265/downloads/
2) 解压运行 x265_3.2.1\build\vc15-x86_64\make-solutions.bat 生成 VC 工程
3) 打开工程编译 64 位 Release
4) 拷贝 x265.pc 到 /usr/local/lib/pkgconfig 下
拷贝 libx265.lib 到 /usr/local/lib 下
拷贝 x265.h, x265_config.h 到 /usr/local/include 下
3. 运行:
make clean
./configure --disable-static --enable-shared --toolchain=msvc --arch=x86_64 --enable-libsrt --enable-libx264 --enable-libx265 --enable-gpl --enable-encoder=libx264 --enable-encoder=libx265 --extra-cflags="-I/usr/local/include" --extra-ldflags="-libpath:/usr/local/lib"
make
make install
1. 下载安装 CUDA, 下载 NVIDIA VIDEO CODEC SDK 9.0: https://developer.nvidia.com/video-codec-sdk-archive 解压
1) 拷贝 include 目录下的文件到 /usr/local/include
2) 拷贝 lib\x64 下的文件到 /usr/local/lib
2. 安装相关头文件:
1) git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
2) git checkout n9.0.18.3
3) make
4) make install
3. 编译
./configure --disable-static --enable-shared --toolchain=msvc --arch=x86_64 --enable-libsrt --enable-libx264 --enable-libx265 --enable-gpl --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-encoder=libx264 --enable-encoder=libx265 --extra-cflags="-I/usr/local/include" --extra-ldflags="-libpath:/usr/local/lib"
make
make install
能否发一份编译好得到744092553#qq邮箱。万分感谢