基于cuda的ffmpeg源码安装

2023-11-14


本次安装系统是ubuntu20.04.
本文将GPU 加速的视频处理集成到最流行的开源多媒体工具中。FFmpeg 是最受欢迎的开源多媒体操作工具之一,其插件库可应用于音频和视频处理管道的各个部分,并已在全球范围内广泛采用。下图是GPU加速框架图:

安装ffmpeg之前要安装好CUDA,可以参考我的 博客.
接着开始安装。

1、安装nvcodec

下载:

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git

安装:

cd nv-codec-headers && sudo make install

2、安装ffmpeg

打开ffmpeg官网下载最新稳定版。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解压:

tar -xvf ffmpeg_4.2.2.orig.tar.xz

解压后的包重命名为ffmpeg

安装依赖:

sudo apt-get -y install build-essential pkg-config checkinstall git libfaac-dev libgpac-dev ladspa-sdk-dev libunistring-dev libbz2-dev \
  libjack-jackd2-dev libmp3lame-dev libsdl2-dev libopencore-amrnb-dev libopencore-amrwb-dev libvpx-dev libx264-dev libx265-dev libxvidcore-dev libopenal-dev libopus-dev \
  libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev \
  libxfixes-dev texi2html yasm zlib1g-dev

进行配置(当然也可以加入其它的选项)

./configure --prefix=/usr/local/ffmpeg --enable-shared \
--enable-nonfree --enable-gpl --enable-version3 \
--enable-libmp3lame --enable-libvpx --enable-libopus \
--enable-opencl --enable-libxcb --enable-avresample\
--enable-opengl --enable-nvenc --enable-vaapi \
--enable-vdpau --enable-ffplay --enable-ffprobe \
--enable-libxvid \
--enable-libx264 --enable-libx265 --enable-openal \
--enable-openssl --enable-cuda-nvcc --enable-cuvid --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64

然后反复安装过程解决两个报错。
第一个:ERROR: openssl not found
查看报错日志:ffbuild/config.log
解决:

sudo apt-get install libssl-dev

第二个错误:ERROR: failed checking for nvcc.
查看报错日志:Cuda.o Error 255 / unsupported gpu architecture ‘compute_30’ during installation: https://github.com/lvaccaro/truecrack/issues/32. It’s said you need to support architecture by your nvidia card.
修改configure文件:把30改成35

if enabled cuda_nvcc; then
    nvcc_default="nvcc"
    nvccflags_default="-gencode arch=compute_35,code=sm_35 -O2"
else
    nvcc_default="clang"
    nvccflags_default="--cuda-gpu-arch=sm_35 -O2"
    NVCC_C=""
fi

接着进行安装

make -j8
sudo make install
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/bin/ffprobe
sudo ln -s /usr/local/ffmpeg/bin/ffplay /usr/bin/ffplay
sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ffprobe
sudo ln -s /usr/local/ffmpeg/bin/ffplay /usr/local/bin/ffplay
sudo vim /etc/ld.so.conf.d/ffmpeg.conf
在其中添加路径:/usr/local/ffmpeg/lib

sudo ldconfig#更新环境变量

到此,安装完成,进行验证:

ffmpeg -version

在这里插入图片描述
本文参考:
[1] https://blog.csdn.net/TracelessLe/article/details/107362505
[2] https://rendulic.me/install-ffmpeg-on-ubuntu-20-04-with-cuda/
[3] https://blog.csdn.net/u014217137/article/details/127825726
[4]https://blog.csdn.net/heqingchun16/article/details/127375626
参见第四个就可以,也很好,有下载包,完整下载使用就行。
整个安装可以是自己指定安装跑径就行,要使用可以使用.bashrc环境变最,path来使用bin的可执行文件,LD_LIBRARY_PATH使用lib就可以。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于cuda的ffmpeg源码安装 的相关文章

  • Google Cloud Platform:将上传的 MP4 文件转换为 HLS 文件

    我正在构建一个平台 允许用户将一些视频文件 20 40 秒 从手机上传到服务器 所有这些上传目前都运行良好 文件通过nodejs云功能存储在谷歌存储桶中 现在我想创建一个 gcp 转码器作业 它将上传的 mp4 视频文件转换为 hls 视频
  • 代码::块 - 警告:GDB:无法设置控制终端:不允许操作

    我已经通过官方存储库在 Ubuntu 14 04 中安装了 Code Blocks 13 12 当我编译时 一切正常 但是当我调试时 shell 中会显示以下消息 警告 GDB 无法设置控制终端 操作不正确 允许的 程序执行到断点 但当我执
  • IntelliJ IDEA 无法在 Ubuntu 上启动

    我用IDEA好几个月了 到现在还可以 现在从快捷方式启动IDEA没有效果 我想这是在一些更新之后发生的 我尝试重新安装IDEA 但问题仍然存在 从终端启动 idea sh 会产生类似的效果 chronoexp ChronoExp PC Pr
  • C# - 捕获 RTP 流并发送到语音识别

    我正在努力实现的目标 在 C 中捕获 RTP 流 将该流转发到 System Speech SpeechRecognitionEngine 我正在创建一个基于 Linux 的机器人 它将接受麦克风输入 将其发送给 Windows 机器 Wi
  • 访问 AVFrame 的每个像素

    我需要访问 FFMPEG 的 AVFrame 对象的每个像素信息 如果是 RGB 则每个像素的每种颜色 R G 和 B 我怎样才能做到这一点 如果您已经前进到正确的框架 类似于 img convert ctx ffmpeg sws getC
  • 如何使用 SVN 通过网络提交单个文件?

    我可以查看整个svn使用以下命令存储库 svn co https myaccount svn beanstalkapp com myapp 但我无法弄清楚提交单个文件的命令 如果我改变成myapp page1 html 我怎样才能只签入那一
  • VLC 和 ffmpeg 如何协同工作?

    我从源代码编译了VLC 它运行良好 当我执行 Vlc 时 vlc 运行 我还从源代码编译了 ffmpeg 它也运行良好 当我执行 ffmpeg i f toto flv mp3 vn acodec copy new toto mp3 时 会
  • 如何使用ffmpeg重叠和合并多个音频文件?

    我正在尝试将多个音频文件合并到一个文件中 但我可以使用以下命令来连接 而不是连接 ffmpeg v debug i file1 wav i file2 wav i file3 wav filter complex 0 0 concat n
  • 使用 mkfifo 和传输流,这可能吗?

    我想执行一个 bash 脚本来执行以下操作 应用程序 ffmpeg 生成实时传输流 ts 文件 我需要处理这个实时流 执行解复用等 现在我知道这必须通过 FIFO 来完成 但这是我的任务 我需要重定向 ffmpeg 的输出以写入 fifo
  • 如何使用android ndk r9b为Android编译FFMPEG

    我想设计一个Android应用程序 可以通过FFMPEG命令播放和编辑视频 但我不知道如何在Android上使用FFMPEG 我尝试过从Google搜索到的许多方法 但它们太旧了 无法实现 现在 FFMPEG的最新版本是2 1 1 Andr
  • 如何使用 CUDA/Thrust 对两个数组/向量根据其中一个数组中的值进行排序

    这是一个关于编程的概念问题 总而言之 我有两个数组 向量 我需要对一个数组 向量进行排序 并将更改传播到另一个数组 向量中 这样 如果我对 arrayOne 进行排序 则对于排序中的每个交换 arrayTwo 也会发生同样的情况 现在 我知
  • FFmpeg 不适用于 android 10,直接进入 onFailure(String message) 并显示空消息

    我在我的一个项目中使用 FFmpeg 进行视频压缩 在 Android 10 Google Pixel 3a 上 对于发送执行的任何命令 它会直接进入 onFailure String message 并显示空消息 所以我在我的应用程序 g
  • 将 Docker 与具有 Node-gyp 依赖项的 Nodejs 一起使用

    我计划使用 Docker 部署 node js 应用程序 该应用程序有几个需要node gyp的依赖项 Node gyp 根据交付平台上的编译库构建这些模块 例如 canvas lwip qrcode 根据我的经验 这些构建可能高度依赖于操
  • 使用 Ffmpeg 编辑视频元数据

    我想更改视频元数据 原始视频信息 ffmpeg i video mp4 Metadata major brand mp42 minor version 0 compatible brands isomavc1mp42 creation ti
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接
  • ffmpeg:音频样本的字节顺序

    我使用 ffmpeg 的 avcodec 从我的 C 应用程序中的音乐文件中检索原始音频样本 对于我测试的文件 这些文件样本的字节序似乎是小字节序 但我想知道对于我尝试解码的所有文件是否总是如此 即来自 ffmpeg 的实现或至少它的体系结
  • apt-get install tzdata 非交互式

    当我尝试 apt get install y tzdata 将显示用于选择时区的命令行选项 我试图在脚本中使用它来进行一些设置 如何在没有用户输入的情况下使 apt get 运行 我知道重新配置 tzdata 我可以做 echo Ameri
  • Ubuntu 11.10 上的 c 数学链接器问题 [重复]

    这个问题在这里已经有答案了 我从 Ubuntu 升级后出现了一些奇怪的错误 10 11 11 04 i dont know 到 11 10 我正在得到一个undefined reference to sqrt 使用 math h 时并与 l
  • NMCLI 设备不可用

    我正在尝试在 ubuntu core 16 04 上配置带有蜂窝接口的新设备 我有 NMCLI 包在上面运行 在添加连接之前 我检查了接口 nmcli dev DEVICE TYPE STATE CONNECTION eth1 ethern
  • 内联 PTX 汇编代码强大吗?

    我看到一些代码示例 人们在 C 代码中使用内联 PTX 汇编代码 CUDA工具包中的文档提到PTX很强大 为什么会这样呢 如果我们在 C 代码中使用这样的代码 我们会得到什么好处 内联 PTX 使您可以访问未通过 CUDA 内在函数公开的指

随机推荐

  • Spring入门简介

    Spring框架是Java平台上最流行的企业应用程序开发框架之一 它是一个轻量级的开源框架 被设计为简化企业级应用程序的开发 Spring的核心目的是为了解决企业应用程序的开发问题 包括代码的耦合 事务管理 异常处理 数据访问 安全性 We
  • fatal error C1083: 无法打开预编译头文件:“Debug\opencv.pch”: No such file or directory

    步骤 方法右键点击你创建的项目 选择 属性标签 点击属性 弹出 项目属性页 在左侧找到以下位置 配置属性 gt C C gt 预编译头 并选择它 在右边的菜单中选择 创建 使用预编译头 中的 不使用预编译头文件 点击 确定 按钮退出即可原因
  • Transformer 架构和 BERT、GPT 和 T5 的兴起:初学者指南

    在广阔且不断发展的人工智能 AI 领域 有些创新不仅会留下深刻的印象 而且会带来巨大的影响 他们重新定义了整个领域的轨迹 在这些突破性的创新中 Transformer 架构成为变革的灯塔 这类似于工业革命期间蒸汽机的发明 推动人工智能进入一
  • 深入理解Unity5中的StandardShader屏幕像素化特效的实现

    概要 续接上文 本文进一步讲解与分析了上文未讲完的Unity5中Standard Shader正向基础渲染通道源码的片段着色实现部分 以及对屏幕像素化后期特效进行了实现 同样需要声明的是 本文中对Stardard Shader源码的一些分析
  • NTP时间服务器安装与配置

    第1章 Server端的安装与配置 1 1查看系统是否已经安装ntp服务组件 rpm qa grep ntp 查看是否已经安装ntp组件 有如下两个组件说明已经安装 ntpdate 4 2 6p5 1 el6 centos x86 64 n
  • Spark的RDD原理以及2.0特性的介绍

    注 本文由王联辉在高可用架构群分享 本文转载自高可用架构 ArchNotes 王联辉 曾在腾讯 Intel 等公司从事大数据相关的工作 2013 年 2016 年先后负责腾讯 Yarn 集群和 Spark 平台的运营与研发 曾负责 Inte
  • 微信小程序计算三角形面积,三棱锥体积

    微信小程序计算三角形面积 三棱锥体积 index wxml
  • oracle 12c 支持列表,ORACLE 12C 依然支持 bbed

    ORACLE 12C的测试版出来了 对于习惯了使用bbed ORACLE 手术刀 的人来说 12C是否继续被支持是一个很让人关注的问题 通过本实验测试 12C继续支持bbed 很多艰难的数据库恢复依然可以通过bbed来实现 也从侧面说明 O
  • Activiti7与Spring、Spring Boot整合开发

    Activiti整合Spring 一 Activiti与Spring整合开发 1 1 Activiti与Spring整合的配置 1 在pom xml文件引入坐标 如下
  • 毕业设计-深度学习身份证号码检测识别-python-opencv

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度
  • 使用CSS设置placeholder的样式

  • 服务器环境-安装基础环境

    虚拟机CentOS系统安装 VmWare安装Linux镜像 CentOS 最小镜像 虚拟机IP修改 安装开发常用环境 宝塔面板 宝塔命令 全部yes yum install y wget wget O install sh http dow
  • E-R图和关系模型怎么写?

    2023年6月3日 周六下午 前几天 刚刚写完数据库E R图和关系模型的作业 在B站找到了不少讲得不错的教学视频 E R图 快速学会软件工程和数据库课程中的ER图画法 https www bilibili com video BV19A41
  • 练什么有利于防身

    短跑 拳击
  • 【C语言】宏定义

    目录 一 宏定义 二 宏定义作用域 三 带参数的宏定义 四 宏定义中的 与 1 2 五 可变参数宏定义 一 宏定义 宏定义通俗就是一种替换操作 以 define在文件开头定义 如 define NUM 1234 define STR abc
  • expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token

    http hi baidu com B0 AE D4 C2 D2 B2 D2 B9 C3 DF B3 D9 blog item 08d3c0c5c342eea58226ac84 html
  • 语言接口:探索大模型优先架构的新一代 API 设计

    过去的两三个月里 在开发基于大语言模型的软件时 也一直在思考如何设计一个大模型优先架构 而随着越来越多的团队加入到这场竞赛里 我们会发现 基于大语言模型的软件架构与过去的不同之处 诸如于 我们需要新一代的 API 我暂时将这一代 API 称
  • 华为云 弹性文件服务器,华为云centos7 配置弹性云服务器实现多网卡多IP访问(转载华为云官网)...

    配置弹性云服务器实现多网卡多IP访问 当弹性云服务器配置了多张网卡时 需要在弹性云服务器内部配置策略路由来实现非主网卡的通信 具体操作步骤如下 可能原因 未设置路由规则 导致扩展网卡的IP无法访问 Linux操作系统 执行以下命令 在 et
  • 模拟电路设计(38)---基于LT1173的负压产生电路

    今天来介绍下LT1173在buck step down 模式的工作电路 在介绍PWM电路结构时 有一种形式成为buck型 如下所示 晶体管开关变换器 buck 电路 LT1173提供了内置开关管的集电极和发射极管脚 因此根据上图连接电感 电
  • 基于cuda的ffmpeg源码安装

    文章目录 1 安装nvcodec 2 安装ffmpeg 本次安装系统是ubuntu20 04 本文将GPU 加速的视频处理集成到最流行的开源多媒体工具中 FFmpeg 是最受欢迎的开源多媒体操作工具之一 其插件库可应用于音频和视频处理管道的