背景

为了降低cpu的使用率提升系统的接入能力,需要将编解码模块移至GPU处理,ffmpeg默认的发行版中不支持GPU加速,所以需要重新编译ffmpeg使其支持GPU硬件加速。
ffmpeg官方编译指导
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

读者

本文的读者须具备一定的Linux使用经验,如常规软件安装等操作不在本文档中描述。

术语

ffmpeg:开源的流媒体编解码等处理工具。

依赖组件

git:版本管理工具,用于获取程序源码;
g++:c++程序的编译器;
cmake:c++程序的编译管理工具;
ffmpeg:主要作用拉取rtsp视频流,如果不添加此组件,opencv只能从本机摄像机处取视频流处理,该工具源码可从github获取。
cuda运行时库:NVIDIA发布的用来使用GPU的底层依赖库,可从NVIDIA官网获取。
Video_Codec_SDK:NVIDIA提供的视频编、解码库,可从NVIDIA官网获取。

安装cuda

安装toolkit

NVIDIA官网上下载cuda toolkit。
sh cuda_11.4.4_470.82.01_linux.run//不要安装驱动,驱动安装网上教程很多,可参考。

安装nv-codec-header

安装nvidia 编译依赖头文件,make会生成.pc文件,make install 将.pc文件安装在系统路劲下,可以用pkg-config找到
git clone http://git.videolan.org/git/ffmpeg/nv-codec-headers.git
make
make install

安装nasm

sudo apt-get install nasm

安装x264

git clone --depth 1 https://code.videolan.org/videolan/x264.git
PKG_CONFIG_PATH="/usr/local/x264/pkgconfig" ./configure --prefix="/usr/local/x264" --bindir="/usr/local/x264/bin" --enable-static --enable-pic && \
make & make install

安装x265

wget -O x265.tar.bz2 https://bitbucket.org/multicoreware/x265_git/get/master.tar.bz2
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/usr/local/x265" -DENABLE_SHARED=off ../../source
make & make install

ffmpeg编译

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/x264/lib/pkgconfig:/usr/local/x265/lib/pkgconfig
./configure --prefix="/usr/local/ffmpeg/" --extra-cflags="-I/usr/local/cuda/include"  --extra-ldflags="-L/usr/local/cuda/lib64" --extra-libs="-lpthread -lm" --bindir="/usr/local/ffmpeg/bin" --enable-shared --enable-ffplay --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --enable-gpl --enable-libx264 --enable-libx265 
make
make install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib

结论

ffmpeg支持使用硬件解码(已完成),但是不支持硬件进行像素格式转换;即ffmpeg硬件解码后输出的像素格式是NV12,如果要转换则必须使用cpu进行。

支持硬件加速的ffmpeg编译相关推荐

  1. PC mediapipe 支持硬件加速

    这里写自定义目录标题 PC 端 mediapipe GPU 硬件加速 准备工作 编译配置 Demo 测试 PC 端 mediapipe GPU 硬件加速 mediapipe 目前官方仅仅是 iOS 和 ...

  2. html5不支持硬件加速,CSS开启硬件加速来提高网站性能-HTML5综合

    CSS开启硬件加速来提高网站性能-HTML5综合 本文由 文梅画史 于 2016-1-28 5:09 发布在 HTML5综合 在桌面端和移动端用CSS开启硬件加速 CSS animations, tr ...

  3. 浏览器中支持硬件加速

    1 什么是硬件加速 硬件加速是指,应用程序使用计算机硬件的能力,比软件实现的功能能够更有效地执行某些操作.在 Chrome/Chromium 浏览器中,硬件加速能够利用计算机的图形处理单元(GPU)来 ...

  4. 【显示技术 - 视频编码】硬件加速 - 对接FFMPEG框架的H.265编码

    最近在搞的一个项目,使用硬件加速,代替软件x265库进行H.265编码,好听点的叫法就是异构. 作为软件工程师,硬件算法的实现基本就和本人无关了,不过好在这块本身也不是兴趣所在~~   为了更好地讲硬 ...

  5. debian stretch + kernel 4.4 固件发布(支持硬件加速),可安装kodi

    适用于Firefly-RK3288的板子 * rockchip kernel 4.4 (VPU, GPU, DRM RGA and WIFI设备驱动) * rockchip debian stretc ...

  6. Ubuntu18.04安装opencv4.5.1+contrib 支持cuda加速(附带编译好的opencv4.5.1及缺失文件)

    先前准备: 1.最好不要改动ubuntu默认的python2与3的版本,容易出问题.需要选择时用python,python3,python3.x选择即可. 2.ubuntu18.04 pc端装机自带的 ...

  7. ffmpeg使用硬件加速hwaccel、cuvid、h264_cuvid、h264_nvenc

    文章目录 ffmpeg支持硬件加速的原理 所用环境说明 ffmpeg使用硬件加速 安装nvidia驱动 安装cuda 加入header 安装pkgconfig 开始配置 在ffmpeg中看如何使用硬件 ...

  8. opencv python gpu加速_在Windows上使用OpenCV和Python进行硬件加速解码(MSMT/IntelMFX/FFMPEG/any-backend)...

    我无法在Windows10上使用OpenCV进行硬件加速解码. 有什么提示吗?我已经在最新的opencv4.1.0forwindows中编译并尝试了所有的后端. 我对MSMF解码最有信心,因为它支持D ...

  9. FFmpeg 硬件加速方案概览 (上)

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

最新文章

  1. C语言程序设计 搜集C/C++编译器
  2. linux查看nginx运行状态,如何查看nginx运行状态及相关属性说明
  3. 8年,永洪科技凭什么跑出中国BI领军速度?
  4. android+主界面所有应用程序图标添加统一背景主题,Android 4.0替Launcher主界面所有应用程序图标添加统一背景主题...
  5. python实验原理_Python实验报告八
  6. C++ Primer 第11章 泛型算法 学习总结
  7. Go语言vscode环境配置
  8. SpringBoot------定时任务
  9. HDU 4609 3-idiots (FFT)
  10. tomcat 启动报错 解决办法 A child container failed duringnbsp
  11. [Kaggle竞赛] IEEE-CIS Fraud Detection
  12. Cygwin 安装使用
  13. easyui 合并列_Easyui 合并单元格_EasyUI 教程
  14. 利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像
  15. 安防人眼里的“区块链玩法遛狗也能赚钱”
  16. mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布
  17. 网络工程项目报价单应该怎么写?记住这6个步骤准没错!
  18. 使用malloc函数分配空间
  19. 2022中科院分区表即将公布,多方官宣:或将弃用影响因子
  20. 区块链应用成功案例有哪些?

热门文章

  1. 科学计算机记忆方法,关于科学记忆的方法讲解
  2. java多线程执行任务(工具升级版)
  3. CLOS网络的无阻塞条件
  4. Docker容器安装Vim
  5. 消灭人狼 - 软件企业的银弹是什么
  6. java版“本佛祖保佑永无bug”
  7. 模块学习4:(2)MQTT协议连接、发布、订阅、心跳、断链等分析和代码实现,并且通过mqtt.fx连接服务器,使用wireshark抓包分析mqtt实现过程
  8. 什么无线蓝牙耳机平价实惠?2022真无线蓝牙耳机排行榜
  9. 2021年安全员-B证-项目负责人(广东省)考试报名及安全员-B证-项目负责人(广东省)考试总结
  10. 港科夜闻|香港科大校董会主席廖长城先生、候任校长叶玉如教授及在校学生、奥运乒乓球铜牌得主苏慧音女士获香港特区政府授勋...