音视频:Ubuntu下安装 FFmpeg 5.0.X

1.安装相关依赖

首可选一: 

sudo apt-get update
sudo apt-get install build-essential autoconf automake libtool pkg-config \
  libavcodec-dev libavformat-dev libavutil-dev \
  libswscale-dev libresample-dev libavdevice-dev \
  libopus-dev libvpx-dev libx264-dev libx265-dev \
  yasm wget vim 

 可选二:

sudo apt-get update
sudo apt-get install -y \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libsdl2-dev \
  libtool \
  libva-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  pkg-config \
  texinfo \
  wget \
  zlib1g-dev

2. 编译安装FFmpeg

创建 ffmpeg 安装包文件路径 :

cd ~
mkdir ffmpeg
cd ffmpeg

下载安装包:

wget https://ffmpeg.org/releases/ffmpeg-5.0.2.tar.bz2

解压并打开:

tar xjvf ffmpeg-5.0.2.tar.bz2
cd ffmpeg-5.0.2

 配置并安装:

./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static \
  --enable-gpl --enable-libx264 --enable-libx265 --enable-libopus --enable-libvpx

.configure 成功则显示:

make -j2 && sudo make install

make 则显示:注make -j 后面根据自己系统选择 -j (number) ,l来提高编译速度!

如果 ffmpeg 命令后可能出现 下面情况,说明需要配置环境变量!

3. 配置环境变量

1、修改环境变量

将ffmpeg的绝对路径添加到PATH环境变量中,以让系统能找到ffmpeg的安装路径

vim ~/.bashrc  # 打开系统环境变量配置文件

在文件中添以下内容:

export PATH="/usr/local/ffmpeg/bin:${PATH}"
export LD_LIBRARY_PATH="/usr/local/ffmpeg/lib:{LD_LIBRARY_PATH}"

接着需要让配置的环境应用

source ~/.bashrc

然后终端命令输入命令 ffmpeg:可以看见安装的FFmpeg 版本信息,则显示成功!

在/usr/local/ffmpeg路径下可以看见成功安装后FFmpeg的 库

4.额外补充问题点

注意:如果有如下情况,对应查找进行配置!(额外补充的解决方法!)

安装之后在/usr/local/ffmpeg/bin 下执行ffmpeg时可能会报错,这是因为找不到共享文件路径

./ffmpeg: error while loading shared libraries: libavdevice.so.59: cannot open shared object file: No such file or directory

命令行使用“ffmpeg -h”命令检测ffmpeg安装情况时,可能会出现以下内容:

error while loading shared libraries: libavdevice.so.58: can not open shared object file or directory

这是由于系统找不到ffmpeg的共享库所致。因此,可在“/etc/ld.so.conf.d/”路径下创建文件“ffmpeg.conf”文件,在该文件中写入“/usr/local/ffmpeg/lib”

这个时候修改/etc/ld.so.conf文件,添加/usr/local/ffmpeg/lib, 路径编译时prefix的路径下的lib,然后执行

vim /etc/ld.so.conf.d/ffmpeg.conf   # 编辑文件,添加内容“/usr/local/ffmpeg/lib”后保存退出
cat /etc/ld.so.conf.d/ffmpeg.conf   # 查看ffmpeg.conf中的内容
sudo ldconfig        # 执行ldconfig命令,使/etc/ld.so.conf.d/目录下新加入的配置信息生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/256724.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

不会代码循环断言如何实现?只要6步!

对于使用jmeter工具完成接口测试的测试工程师而言。在工作中,或者在面试中,都会遇到一个问题—— “CSV文档做了一大笔测试数据后,怎么去校验这个结果呢?” 现在大部分测试工程师可能都是通过人工的方法去查看结果,十…

HTML5+CSS3小实例:纯CSS实现锚点平滑过渡

实例:纯CSS实现锚点平滑过渡 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"&…

云仓酒庄的品牌雷盛红酒LEESON分享红酒存放几年质量最佳?

云仓酒庄的品牌雷盛红酒LEESON分享对于酒的看法&#xff0c;有人认为“酒是陈的香”&#xff0c;酒越老越好。不过对于葡萄酒来说&#xff0c;这种说法不完全对&#xff0c;如果一款葡萄酒等待的时间太久&#xff0c;未必是件好事。对待葡萄酒也要把握一个“度”&#xff0c;既…

智能优化算法应用:基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.阿基米德优化算法4.实验参数设定…

2023_Spark_实验三十:测试Flume到Kafka

实验目的&#xff1a;测试Flume采集数据发送到Kafka 实验方法&#xff1a;通过centos7集群测试&#xff0c;将flume采集的数据放到kafka中 实验步骤&#xff1a; 一、 kafka可视化工具介绍 Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了…

ansible远程操作主机功能(1)

自动化运维&#xff08;playbook剧本yaml&#xff09; 是基于Python开发的配置管理和应用部署工具。自动化运维中&#xff0c;现在是异军突起。 Ansible能批量配置&#xff0c;部署&#xff0c;管理上千台主机&#xff0c;类似于Xshell的一键输入的工具&#xff0c;不需要每次…

Git总结 | Git面试都问些啥?

什么是Git为什么要用Git等等这些相信看到该标题点进来的同学也不希望浪费时间再看一遍&#xff0c;那么直接进入主题&#xff0c;对于日常工作中常用的Git相关操作进行整理&#xff0c;一起看看吧 面试官&#xff1a;你常用的Git操作是什么? 候选人&#xff1a;git clone 面试…

k8s集群使用calico网络组件

一、前言 k8s的网络组件可以使用flannel或者calico两种&#xff0c;flannel的配置比较简单&#xff0c;但是性能还是calico会更高一点&#xff0c;所以现在来介绍以下calico网络组件的部署 二、部署 k8s集群版本对calico的版本也有对应要求&#xff0c;k8s 1.23.0版本要求对应…

Spring MVC 中的常用注解和用法

目录 一、什么是 Spring MVC 二、MVC定义 三、简述 SpringMVC 起到的作用有哪些? 四、注解 五、请求转发或请求重定向 一、什么是 Spring MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web…

为什么MCU在ADC采样时IO口有毛刺?

大家在使用MCU内部ADC进行信号采样一个静态电压时&#xff0c;可能在IO口上看到这样的波形。这个时候大家一般会认识是信号源有问题&#xff0c;但仔细观察会发现这个毛刺的频率是和ADC触发频率一样的。 那么为什么MCU在ADC采样时IO口会出现毛刺呢&#xff1f;这个毛刺对结果有…

深度解析Python爬虫中的隧道HTTP技术

前言 网络爬虫在数据采集和信息搜索中扮演着重要的角色&#xff0c;然而&#xff0c;随着网站反爬虫的不断升级&#xff0c;爬虫机制程序面临着越来越多的挑战。隧道HTTP技术作为应对反爬虫机制的重要性手段&#xff0c;为爬虫程序提供了更为灵活和隐蔽的数据采集方式。本文将…

基于视触觉的柔性机械爪与水果硬度无损检测

近日&#xff0c;课题组柑橘全程机械化平台研究团队以“Non-destructive fruit firmness evaluation using a soft gripper and vision-based tactile sensing”为题在农业计算机与电子信息领域期刊“Computers and Electronics in Agriculture”(IF20238.3)发表研究论文。 果…

Zero date value prohibited 异常处理

项目场景&#xff1a; 在项目中&#xff0c;我们会时常遇到数据查询&#xff0c;今天在对数据进行查询的时候&#xff0c;遇到一个之前闻所未闻的异常&#xff0c;所以记录下来&#xff0c;分享给大家。 问题描述 查询数据为datetime类型的数据时&#xff0c;发现该字段的值为…

Linux Docker本地部署WBO在线协作白板结合内网穿透远程访问

文章目录 前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cpolar4. 配置WBO公网访问地址5. 公网远程访问WBO白板6. 固定WBO白板公网地址 前言 WBO在线协作白板是一个自由和开源的在线协作白板&#xff0c;允许多个用户同时在一个虚拟的大型白板上画图。该白板对所有线上用…

生日蜡烛C语言

分析&#xff1a;假设这个人只能活到100岁&#xff0c;如果不这样规定的话&#xff0c;那么这个人就可以假设活到老236岁&#xff0c;直接一次吹236个蜡烛&#xff0c;我们就枚举出所以情况&#xff0c;从一岁开始。 #include <stdio.h> int f(int a,int b){//计算从a到…

案例分享|企业为什么要选择数字化转型?

数字化在现代社会中扮演着重要的角色&#xff0c;成为企业转型的必由之路。随着科技的发展和信息化的进程&#xff0c;越来越多的企业开始拥抱数字化转型&#xff0c;以应对市场的变化和竞争的压力。数字化带来了诸多好处&#xff0c;不仅提高了企业的效率和生产力&#xff0c;…

Pytorch:Tensorboard简要学习

目录 一、TensorBoard简介二、TensorBoard的安装与启动Tensorboard的安装Tensorboard的启动 三、TensorBoard的简单使用3.1 SummaryWriter()3.2 add_scalar()和add_scalars()3.3 add_histogram()3.4 模型指标监控 四、总结参考博客 一、TensorBoard简介 TensorBoard 是Google开…

一款简单的单节锂电池电量指示芯片 XC260A 适用于四个指示灯的电量指示

XC260A是一款单节鲤电池电量指示芯片&#xff0c;该芯片采用CMOS 工艺实现&#xff0c;体积小&#xff0c;便于便携式产品安装 XC260A内置比较器和反馈回路,实现4个电压点的检测通过内部修调技术&#xff0c;可以保证电压检测精度达到士2%。输出采用 OPENDRAIN结构,便于…

基于DINOv2的图像相似性比对(含代码和模型数据)

目录 一、概述二、实践2.1 安装环境2.2 示例代码 一、概述 2023年4月份&#xff0c;Meta发布了DINOv2预训练模型。DINOv2属于一种自监督学习算法&#xff0c;相比于以往的自监督技术有了显著改进&#xff0c;并达到了与弱监督算法相当的性能。 DINOv2算法可以在任何图像数据集…

嵌入式开发行业会不会也变成java行业?

今日话题&#xff0c;嵌入式开发行业会不会也变成java行业&#xff1f;关于嵌入式行业的未来&#xff0c;与一些人的担忧不同&#xff0c;它并不会内卷化&#xff0c;而是具有相对稳定性的领域。嵌入式开发在制造业等重要第二产业中扮演着关键角色&#xff0c;这些领域的稳定性…