无需 root 权限即可为 ffmpeg 安装 libavcodec deb

无需 root 权限即可为 ffmpeg 安装 libavcodec deb

我需要将 FLAC 文件转换为 mp3,但 ffmpeg 失败

Encoder (codec mp3) not found for output stream #0:0

Unknown encoder 'libmp3lame'

我发现我需要安装软件包libavcodec-extra。我没有这台机器的 root 权限,所以我下载了 .deb 文件,使用 提取了其内容,ar x并从 中提取了内容data.tar.xz。这创建了一个usr/lib包含共享库的本地目录。

然后我将路径添加到LD_LIBRARY_PATH环境变量中,

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/build/usr/lib/x86_64-linux-gnu

看起来现在找到了该库:

$ ldconfig -v | grep libavcodec
/sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /lib32: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib32: No such file or directory
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: /lib/i386-linux-gnu/ld-2.19.so is the dynamic linker, ignoring

/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.19.so is the dynamic linker, ignoring

    libavcodec.so.54 -> libavcodec.so.54.35.1
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied

但 ffmpeg 仍然失败。我遗漏了什么?

答案1

另一种解决方案是下载静态二进制文件ffmpeg。它支持 libmp3lame。只需下载、提取并执行即可。无需 root 或超级用户。

相关内容