Fmpeg在Windows环境下编译NVIDIA 详细步骤说明
本篇教程是参考链接:https://stackoverflow.com/questions/41870137/ffmpeg-error-libnpp-not-found-in-windows
编译环境准备:
windows10 x64系统、更新到最新驱动的NVIDIA GeForce GTX 1050Ti、cuda_11.4.1_471.41_win10、msys2、git
确认好环境后接下来就是编译步骤:
1、先从https://www.msys2.org/下载msys2,安装到系统中。
2、安装成功后打开mingw64.exe,使用pacman安装所有的软件包。
pacman -Su
4、执行命令安装软件包(2)
pacman -S make
5、执行命令安装软件包(3)
pacman -S diffutils
6、执行命令安装软件包(4)
pacman -S yasm
7、执行命令安装软件包(5)
pacman -S mingw-w64-x86_64-gcc
8、执行命令安装软件包(6)
pacman -S mingw-w64-x86_64-toolchain
以上6条命令就是安装了下系统的软件包,等待安装完毕即可;
9、将pkgconfig添加到环境变量,执行以下命令:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
10、将其他已安装的工具链添加到路径,执行以下命令:
PATH=$PATH:/opt/bin
11、从NVIDIA官网:https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local下载并安装cuda。(安装直接双击安装即可)
12、提取刚刚下载好cuda_11.4.1_471.41_win10.exe 安装包,在本地使用7zip解压出来;
13、进入解压好的文件夹中,复制"cuda_nvcc\nvcc\include"到您的msys2 例如"D:\msys64\tmp\nvidia_include"中;
14、继续复制"libnpp\npp_dev\lib\x64" 到您的"D:\msys64\tmp\nvidia_lib\x64"中;
15、继续复制"libnpp\npp_dev\include" 到您的"D:\msys64\tmp\nvidia_npp_include"中;
16、使用git客户端,下载ffmpeg包;
git clone https://github.com/FFmpeg/FFmpeg.git
//放置到 D:\msys64\home\ 下
17、使用git客户端,下载libav;
git clone https://github.com/libav/libav
//放置到 D:\msys64\home\ 下
18、使用git客户端,下载nv-codec-headers;
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
//放置到 D:\msys64\home\ 下
19、使用mingw64.exe 进入 nv-codec-headers 文件夹下,执行命令:
make
20、make执行完毕后,执行命令:
make install
21、接下来需要构建libav “avconv.exe”、“avprobe.exe”,(ffmpeg后边需要用);
cd D:\msys64\home\\libav
22、执行命令:
./configure
23、执行编译:
make
24、make完毕后,再次执行:
make install
25、接下来构建ffmpeg,进入到ffmpeg目录下:
cd D:\msys64\home\\ffmpeg
26、执行./configure命令:
这里有两个参数可变:–enable-shared 生成dll文件编译、 --enable-libnpp 开启libnpp 这个libnpp 设置成为关闭或删掉不然会提示libnpp找不到。
./configure --enable-nonfree --enable-shared --enable-nvenc --enable-cuda --enable-cuvid --disable-libnpp --extra-cflags=-I/tmp/nvidia_npp_include --extra-cflags=-I/tmp/nvidia_include --extra-ldflags=-L/tmp/nvidia_lib/x64
27、等待片刻,构建结束后,执行make编译命令:
make
28、make结束后,执行install:
make install
29、将咱们在libav中构建的两个 "avconv.exe"和"avprobe.exe"复制到ffmpeg目录中;
30、接下来就可尝试运行以下了,还是在mingw64.exe 中,执行命令:
./ffmpeg.exe -hwaccels
显示cuda 说明构建成功了;
31、简单测试的一个小命令:将mp4 通过n卡解码成yuv
ffmpeg.exe -hwaccel nvdec -i chengdu.mp4 chengdu.yuv
特别署名:以上内容来自杭州数澜公司的友情指导
from:https://bbs.qycx.com/index/jie/203.html