Linux+FFMPEG+GPU安装
Date: May 3, 2022
Property: 冲啊CC
⚠️ ATTENTION!
- 前提:已安装CUDA,并且显卡支持ffmpeg GPU encoder.
- 硬件配置参考:https://developer.nvidia.com/nvidia-video-codec-sdk/download
- 已测试配置:Nvidia GeForce 1080Ti + CUDA 11.2
- 安装参考链接:https://my.oschina.net/u/2950272/blog/1796874
- 若用CPU编解码直接安装ffmpeg即可,无需执行下列步骤,但编解码速度较慢
安装ffmpeg(建议全面安装)
- 安装基础依赖:
apt-get update
apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \
libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
- 安装yasm
apt-get install yasm
- 安装lib264
apt-get install libx264-dev
- 安装libx265
apt-get install libx265-dev
- 安装 libvpx(for webm)
apt-get install libvpx-dev
- 安装libfdk-aac
apt-get install libfdk-aac-dev
- 安装libmp3lam
apt-get install libmp3lame-dev
- 安装libopus
apt-get install libopus-dev
安装Nvidia硬件编码支持NVENC:
- 安装依赖:
sudo apt-get -y install glew-utils libglew-dbg libglew-dev libglew1.13 \
libglewmx-dev libglewmx-dbg freeglut3 freeglut3-dev freeglut3-dbg libghc-glut-dev \
libghc-glut-doc libghc-glut-prof libalut-dev libxmu-dev libxmu-headers libxmu6 \
libxmu6-dbg libxmuu-dev libxmuu1 libxmuu1-dbg
- 下载ffmpeg
git clone https://github.com/FFmpeg/FFmpeg ffmpeg -b master
- 下载nvidia video sdk:https://developer.nvidia.com/nvidia-video-codec-sdk#Download,解压后命名为 nv_sdk, 与ffmpeg 放于同目录下(伪代码:)
mv nvidia-video-codec-sdk nv_sdk
- 移动头文件
cp -r nv_sdk/LegacySamples/common/inc/ /usr/include/
- 编译ffmpeg,注意添加cuda依赖,部分地址根据自己的主机地址更改!
export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
PATH="$HOME/bin:$PATH" ./configure \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree \
--extra-cflags=-I../nv_sdk \
--extra-ldflags=-L../nv_sdk \
--extra-cflags="-I/usr/local/cuda/include/" \
--extra-ldflags=-L/usr/local/cuda/lib64 \
--disable-shared \
--enable-nvenc \
--enable-cuda \
--enable-cuvid \
--enable-libnpp
注意查看terminal中显示的encoder、filter等工具,名称中带nvenc
,hwcc
字样代表硬件编解码相关。
PATH="$HOME/bin:$PATH" make -j$(nproc)
make -j$(nproc) install
make -j$(nproc) distclean
hash -r
- Test
ffmpeg -i input.mp4 -c:v h264_nvenc -c:a copy output.mp4
ERROR Solutions
- 在ubuntu下面安装glew,然后将列表中的所有项目都安装。例如:
apt-cache search glew
sudo apt-get install libglew-dbg libglew-dev libglew1.10 libglewmx-dbg libglewmx-dev libglewmx1.10 glew-utils