“本文正在参加 人工智能创作者扶持计划 ”
欢迎关注我的公众号 [极智视界],获取我的更多经验分享
大家好,我是极智视界,本文介绍一下 ubuntu源码编译gpu版ffmpeg。
邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:t.zsxq.com/0aiNxERDq
FFmpeg 是一个开源的音视频处理工具,它可以对音视频进行录制、转码、剪辑、合并等操作。FFmpeg 支持多种音视频格式,包括 MP4、AVI、FLV、MOV、WMV、MP3、AAC 等。FFmpeg 的命令行工具非常强大,可以通过命令行对音视频进行各种操作。例如,可以使用 FFmpeg 将一个视频文件转换成另一个格式的视频文件,也可以使用 FFmpeg 将一个视频文件中的音频提取出来,还可以使用 FFmpeg 将多个视频文件合并成一个视频文件。除了命令行工具之外,FFmpeg 还提供了一些库,可以在 C 语言等编程语言中使用这些库来对音视频进行处理。
FFmpeg 本身不支持 GPU 加速,但是可以通过一些第三方库来实现 GPU 加速。例如,可以使用 CUDA SDK 来实现 FFmpeg 的 GPU 加速。CUDA SDK 是 NVIDIA 公司开发的一个 GPU 加速库,可以在 NVIDIA 的 GPU 上实现各种计算密集型任务的加速。CUDA SDK 提供了一些 API,可以在 C 语言等编程语言中使用这些 API 来实现 GPU 加速。除了 CUDA SDK 之外,还有一些其他的第三方库,例如 OpenCL、Vulkan 等,也可以用来实现 FFmpeg 的 GPU 加速。
所以这里的标题本身多少有一点歧义,反正总之就是介绍编译能够使用gpu加速的 FFmpeg 的方法。
下面开始。
安装nv-codec-hearers
地址:docs.nvidia.com/video-techn…
# clone源码
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
# checkout到指定版本
# 可使用 git tag 查看可选的版本
git checkout n11.0.10.2 -b nv-codec-headers
# 编译&安装
make -j32
make install -j8
# 验证是否安装成功
pkg-config --modversion ffnvcodec
安装ffmpeg编码库
# clone源码
git clone https://code.videolan.org/videolan/x264.git
# 配置
cd x264
./configure --disable-asm --enable-shared --enable-pic
# 编译 & 安装
make -j32
make install -j8
安装ffmpeg
# 安装依赖
apt update
apt install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
apt install -y autoconf automake build-essential git 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 wget zlib1g-dev
apt install libavformat-dev libavcodec-dev libswresample-dev libswscale-dev libavutil-dev libsdl1.2-dev
# clone ffmpeg源码
git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure --prefix=/usr/local/ffmpeg --disable-static --enable-shared --disable-avdevice --disable-sdl2 --disable-ffplay --disable-zlib --disable-lzma --enable-cuda --disable-doc --enable-gpl --enable-libx264 --enable-cuvid --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
# 编译 & 安装
make -j32
make install -j8
# 软链
ln -s /usr/local/ffmpeg/bin/* /usr/bin/
# 添加系统环境变量
vim ~/.bashrc
# 末尾加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib
# 使配置生效
source ~/.bashrc
检查是否安装成功
# 检查硬件加速
ffmpeg -hwaccels
# 检查编解码器
ffmpeg -codecs | grep cuvid
这样就大功告成了。
好了,以上分享了 ubuntu源码编译gpu版 FFmpeg,希望我的分享能对你的学习有一点帮助。
【公众号传送】
畅享人工智能的科技魅力。邀请您加入我的知识星球,星球内有丰富的AI技术应用相关技术文章、资源、项目源码,涵盖人脸、检测、分割、多模态、自动驾驶、工业等实用、好玩的项目应用,一定会对你的学习有所帮助。t.zsxq.com/0aiNxERDq