ubuntu ffmpeg 安装踩坑

ffmpeg 安装踩坑

安装命令:

sudo apt update 
sudo apt install ffmpeg

如果以上命令没有报错,那么恭喜你很幸运,可以关闭这篇文章了!
如果跟我一样,遇到如下报错,可以接着往下看:

报错信息:
在这里插入图片描述

报错原因:是因为ffmpeg的依赖包(比如libavformat58)的所需版本与系统已经安装的版本之间存在冲突。你试图安装的软件包需要 7:4.2.7 - 0ubuntu0.1 版本,但你的系统中有一个较新的版本7:4.4.2 - 0ubuntu0.22.04.1

解决方法:卸载掉系统里已经安装的新版本,然后手动安装旧版本(这里以libavformat58为例,其他依赖包也是同理的,理论上只需要卸载重装 libavformat58 和 libavutil56 两个包就够了):

dpkg -l | grep libavformat58  # 查看 libavformat58的已安装版本,不出意外应该是7:4.4.2 - 0ubuntu0.22.04.1
sudo apt remove libavformat58 # 卸载已安装版本
sudo apt install libavformat58=7:4.2.7-0ubuntu0.1 # 安装要求的版本

解决掉所有冲突之后,重新:

sudo apt install ffmpeg 

即可。

### 安装 FFmpeg 的方法 在 Ubuntu 系统中安装 FFmpeg 可以通过多种方式实现,具体取决于用户的权限以及需求。以下是几种常见的安装方法: #### 方法一:使用官方软件包管理器 `apt` 进行安装 对于大多数用户来说,最简单的方法是利用系统的包管理工具来安装预编译版本的 FFmpeg。 运行以下命令可以更新本地包索引并安装 FFmpeg: ```bash sudo apt update && sudo apt install ffmpeg ``` 此方法适用于不需要最新功能或自定义配置的一般用途场景[^1]。 #### 方法二:无 Root 权限时的用户级安装 当没有管理员权限时,可以通过下载源代码自行编译的方式,在个人目录下完成 FFmpeg安装。这种方式不会影响全局环境设置。 首先获取最新的稳定版压缩包链接地址 (可以从官网 https://ffmpeg.org 下载),接着解压该存档文件至工作区;之后切换到对应的目录位置执行如下操作流程: ```bash tar -xvzf ffmpeg-version.tar.gz cd ffmpeg-version/ ./configure --enable-shared --prefix=$HOME/ffmpeg_build make make install export PATH="$HOME/ffmpeg_build/bin:$PATH" ``` 上述脚本中的 `$HOME/ffmpeg_build` 是指定的目标存储地点,可以根据实际需要调整路径参数[^2]。 #### 方法三:定制化构建过程 为了满足特定的功能模块支持或者优化性能表现的要求,可能还需要进一步修改默认选项列表。比如启用硬件加速特性等等,则需参照官方文档指南来进行更详细的设定处理。 例如下面的例子展示了如何把最终产物放置于 `/home/user_name/software/ffmpeg` 文件夹内部: ```bash mkdir ~/software/ffmpeg ./configure --prefix=/home/user_name/software/ffmpeg \ --extra-cflags="-I/home/user_name/software/include" \ --extra-ldflags="-L/home/user_name/software/lib" \ --bindir="/home/user_name/bin" \ --pkg-config-flags="--static" \ --disable-debug \ --disable-doc \ --disable-programs \ --enable-gpl \ --enable-libass \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libtheora \ --enable-libvorbis \ --enable-libwebp \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree make make install ``` 注意这里额外指定了头文件和库的位置以便顺利找到依赖项,并且关闭了一些不必要的组件减少体积大小同时开放了部分版权受限编码方案的支持能力[^3]。 #### 方法四:动态链接库加载路径补充说明 无论采用何种方式进行部署完毕以后都建议验证一下共享对象能否被正确识别出来。如果遇到找不到符号错误提示的话可能是由于缺少必要的搜索范围声明所引起的。此时应该编辑 `/etc/ld.so.conf` 配置文件追加新加入的内容条目进去再调用刷新缓存指令让更改立即生效即可解决此类问题。 ```bash echo "/usr/local/ffmpeg/lib/" | sudo tee -a /etc/ld.so.conf.d/ffmpeg.conf >/dev/null sudo ldconfig ``` 这样做的好处是可以确保任何尝试访问这些资源的应用程序都能自动定位成功而无需手动干预每次启动之前都要重新导出路径变量[^4]。 --- ### 总结 综上所述,无论是快速简便还是高度灵活可控的选择都有各自的优缺点所在,使用者应当依据实际情况权衡利弊后再做决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值