ffmpeg 是可以使用 nvidia 加速的。但这个仅对 ffmpeg 编解码视频有用。只有当你使用 ffmpeg 编解码大量高清长视频时才有用。

参考文档

  • https://trac.ffmpeg.org/wiki/HWAccelIntro
  • https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/

文章目录

  • 安装 nvidia-460 + cuda-11.2
  • 安装 ffnvcodec 头文件
  • 编译 ffmpeg
  • 测试

安装 nvidia-460 + cuda-11.2

参考这篇 文章

安装 ffnvcodec 头文件

头文件和库文件会安装在 /usr/local/。

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install

为了能在 /usr/local/lib 中找到 pkgconfig,添加环境变量。

vim ~/.bashrc
# 文件末尾添加
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
# 使之生效
source ~/.bashrc

编译 ffmpeg

以 ffmpeg-4.3.1 为例。

http://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz
tar -zxf ffmpeg-4.3.1.tar.gz
cd ffmpeg-4.3.1
mkdir build && cd build
./../configure --prefix=/usr/local/ffmpeg --enable-shared --enable-nonfree --enable-cuda-nvcc --enable-cuda-llvm --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64

如果 configure 失败并报告 cuda-nvcc 出错,查看编译日志

vim ffbuild/config.log

如果文件末尾说是因为计算能力不匹配导致,那么修改 configure 文件。在文件内搜索 30,找到如下内容。把 30 改为自己 GPU 的计算能力。

<<<<<<<<<<<
if enabled cuda_nvcc; thennvcc_default="nvcc"nvccflags_default="-gencode arch=compute_30,code=sm_30 -O2"
else
>>>>>>>>>>>
if enabled cuda_nvcc; thennvcc_default="nvcc"nvccflags_default="-gencode arch=compute_61,code=sm_61 -O2"
else

重新 configure,将会看到所有的硬件加速

External libraries providing hardware acceleration:
cuda                    cuvid                   nvdec                   vaapi
cuda_llvm               ffnvcodec               nvenc                   vdpau
cuda_nvcc               libnpp                  v4l2_m2m

现在可以编译了

make
sudo make install

在 ~/.bashrc 中添加环境变量

vim ~/.bashrc
# 文件末尾添加
export PATH=/usr/local/ffmpeg/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
# 使之生效
source ~/.bashrc

测试

you can use NVENC:

ffmpeg -i input -c:v h264_nvenc -profile high444p -pixel_format yuv444p -preset default output.mp4

Sample decode using CUDA:

ffmpeg -hwaccel cuda -i input output

Sample decode using CUVID:

ffmpeg -c:v h264_cuvid -i input output

Full hardware transcode with NVDEC and NVENC:

ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input -c:v h264_nvenc -preset slow output

If ffmpeg was compiled with support for libnpp, it can be used to insert a GPU based scaler into the chain:

ffmpeg -hwaccel_device 0 -hwaccel cuda -i input -vf scale_npp=-1:720 -c:v h264_nvenc -preset slow output.mkv

[FFmpeg] nvidia 加速 ffmpeg相关推荐

  1. FFMPEG NVIDIA硬件加速总结

    目录 1.NVDIA概述 2.FFmpeg集成到GPU 3.FFmpeg uses Video Codec SDK 4.ffmpeg对NVIDIA GPU的编译步骤 4.1configure命令 4. ...

  2. [FFMPEG硬件加速]nvidia方案

    1.目标 <1>显卡性能参数: <2>方案可行性: 2.平台信息 2.1.查看当前显卡信息 命令:  lspci |grep VGA  信息:  01:00.0 VGA com ...

  3. ffmpeg Nvidia硬件加速总结

    0. 概述 FFmpeg可通过Nvidia的GPU进行加速,其中高层接口是通过Video Codec SDK来实现GPU资源的调用.Video Codec SDK包含完整的的高性能工具.源码及文档,支 ...

  4. NVIDIA GPU加速FFmpeg

    一.参考资料 使用GPU硬件加速FFmpeg视频转码 二.重要指令 查看支持的硬件加速选项 ffmpeg -hwaccels 查看cuvid提供的GPU编解码器 ffmpeg -codecs | gr ...

  5. FFmpeg 硬件加速方案概览 (下)

    被称为"多媒体技术领域的瑞士军刀",FFmpeg拥有广泛的应用基础.不过,当(实时)处理海量视频时,需要借助各种方法提升效率.比如,短视频平台Revvel将视频转码服务迁移到AWS ...

  6. ffmpeg 分辨率 压缩_用GPU加速FFmpeg中的超分辨率功能

    1. 简要回顾 首先简单复述一下FFmpeg中对深度学习的支持情况,如上图所示,FFmpeg在libavfilter中支持基于深度学习的filter,目前已经支持sr, derain和dnn_proc ...

  7. 使用GPU硬件加速FFmpeg视频转码

    最近看了些视频处理相关的文章,这里有一篇是讲如何使用Nvidia显卡为视频的编解码进行加速的, 为了方便查阅就转载了: 本文内容包括: 在Linux环境下安装FFmpeg 通过命令行实现视频格式识别和 ...

  8. 用GPU加速FFmpeg中的超分辨率功能

    1. 简要回顾 首先简单复述一下FFmpeg中对深度学习的支持情况,如上图所示,FFmpeg在libavfilter中支持基于深度学习的filter,目前已经支持sr, derain和dnn_proc ...

  9. 从 FFmpeg 性能加速到端云一体媒体系统优化

    简介:7 月 31 日,阿里云视频云受邀参加由开放原子开源基金会.Linux 基金会亚太区.开源中国共同举办的全球开源技术峰会 GOTC 2021 ,在大会的音视频性能优化专场上,分享了开源 FFmp ...

最新文章

  1. 使用rancher 搭建docker集群
  2. find 命令_linux中find命令的使用
  3. NickLee.FortuneBase数据库sql server版工具篇
  4. 【PAT甲级 删除字符串中的指定字符】1050 String Subtraction (20 分) C++
  5. 665. Non-decreasing Array - LeetCode
  6. lightoj 1020 (博弈水题)
  7. 工作42:可以不参考原型
  8. 开源前端 可视化大数据交互前端动态模板
  9. 有向无环图DAG 拓扑排序 代码解释
  10. 【特色团队采访】慌呀哩团队,用简洁算法达成高效协作
  11. 统计计量丨统计学公开课大盘点(附下载)
  12. 爬虫项目实战1——爬取天善课程
  13. CAD的那些装逼技巧!
  14. 计算机操作系统(四)
  15. 认识DDR SDRAM
  16. HttpClient如何进行ssl连接呢?
  17. 【GANs】Deep Convolution Generative Adversarial Network
  18. 公博评级06代表什么_钱币公博评级上72(05)什么意思?
  19. 看完电视剧“天道“的第一次感想记录
  20. 数据结构 图的邻接表和邻接矩阵实现———c语言

热门文章

  1. html财务统计,财务统计.html · 举子/layuiadmin-templete - Gitee.com
  2. mysql i优化_mysql优化 - ifeixiang的个人页面 - OSCHINA - 中文开源技术交流社区
  3. java发送html附件_Java发送邮件(图片、附件、HTML)
  4. Linux下逻辑卷LVM的管理和RAID磁盘阵列
  5. 记一次微信数据库解密过程
  6. 利用cookie爬取QQ邮箱的python脚本
  7. 2019 蓝桥杯省赛 A 组模拟赛(一)阶乘位数
  8. nlp-tutorial代码注释3-2,LSTM简介
  9. Python中如何设置函数的默认值
  10. CUDA——Ubuntu系统上CUDA和cuDNN的安装教程