编译并卸载后无法安装 ffmpeg

编译并卸载后无法安装 ffmpeg

我的电脑上有一块 Nvidia GPU,我想将它与 ffmpeg 一起使用,以便利用硬件功能更快地转换视频文件。在 Nvidia 的文档 (ttps://developer.nvidia.com/ffmpeg) 中,据说我们必须重新编译 ffmpeg 才能获得对 CUDA 的支持。我使用的是 Linux(基于 Debian,Ubuntu)。首先,我执行了“sudo apt remove”,然后我找到了存储库并执行了以下操作:

sudo ./configure --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-libass
sudo make -j 4
sudo make install

这确实与 CUDA 配合得很好,但事实是,并非所有免费编解码器都受支持-(一个例子是 CUDA)。所以我做了:

sudo ./configure --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-libass
sudo make uninstall
sudo make clean
./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --extra-libs="-lpthread -lm" --bindir="$HOME/bin" --enable-gpl --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
sudo make -j 4
sudo make install

问题是,当我运行 ffmpeg 命令时,出现此错误:

maxime@maxime-X756UWK:~/ffmpeg_sources$ ffmpeg
bash: /usr/local/bin/ffmpeg: 没有该类型的文件或档案

翻译为“没有此类文件或文件夹”。

以下是“type”命令的结果:

maxime@maxime-X756UWK:/usr/bin$ 类型 ffmpeg ffmpeg
已修复 (/usr/local/bin/ffmpeg)

翻译为“ffmpeg 已散列(/usr/local/bin/ffmpeg)”

我尝试使用 apt 安装 ffmpeg,安装成功,但我无法运行该程序......

你能帮我解决这个问题吗?
提前谢谢。

答案1

--bindir="$HOME/bin"在 ffmpeg 中使用了configure,因此您的ffmpeg可执行文件位于 中~/bin,而不是 中/usr/local/bin。这通常不是问题(例如,Ubuntu 的~/bin默认位置是PATH),但哈希表尚未更新。这是一种比较罕见的情况,当安装、执行、卸载、重新安装按特定顺序进行时会发生这种情况,这就是为什么FFmpeg 维基建议hash安装后使用该命令。

要解决此问题,您有多种选择:

  • 尝试运行hash -d ffmpeg
  • 或者退出并重新登录。
  • 或者,如果您喜欢该位置,ffmpeg则从移动~/bin/到。/usr/local/bin

相关内容