从dmg安装ffmpeg,然后从终端运行,还有更好的方法吗?


11

从这里:https : //ffmpeg.org/download.html#build-mac我选择了64位静态版本,我也对https://evermeet.cx/ffmpeg/

然后,我下载了此文件:

在此处输入图片说明

并使用以下命令打开它:

在此处输入图片说明

这给了我这个:

Last login: Wed Jun  6 09:41:56 on ttys000
david-selfs-Air:~ david$ /Volumes/FFmpeg\ 91200-g1616b1be5a/ffmpeg ; exit;
ffmpeg version N-91200-g1616b1be5a-tessus Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      56. 18.102 / 56. 18.102
  libavcodec     58. 19.104 / 58. 19.104
  libavformat    58. 17.100 / 58. 17.100
  libavdevice    58.  4.100 / 58.  4.100
  libavfilter     7. 24.100 /  7. 24.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...7 completed.

[Process completed]

然而,当我打开一个终端,并尝试ffmpeg或者man ffmpeg甚至是ffmpeg -i filename.mp4 -vn filename.wav(从这里)我得到的是

-bash:ffmpeg:找不到命令

我必须接近,现在是否需要为之定义路径ffmpeg?我不知道该怎么做,也不知道该使用什么路径。

有没有更好的办法?

Answers:


20

问题是在中的目录列表中bash寻找。其中一些目录受SIP保护,因此您需要禁用SIP才能将文件放在这些目录中。或者,您可以使用Homebrew安装它。ffmpeg$PATH

首先使用以下命令安装HomeBrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后ffmpeg使用以下命令安装:

brew install ffmpeg

Homebrew会将ffmpeg安装在不受SIP保护的路径中,而是在内$PATHmpmpeg安装在 /usr/local/bin目录下。

这可以通过手动命令手动完成(基本上是手动执行homebrew的操作。对于这种方法,请查看@davids答案。但是出于多种原因,我建议使用homebrew。它易于使用,并且可以更快地安装大量工具。您可以更快地进行更新,自制软件也使安装依赖项变得更加容易。

编辑:我以前有部分答案,此后我更改了不正确的信息。我相信目前是准确的。我已经包括了有关SIP的部分,因为我认为了解有关命令放置的限制以及为什么所有命令都不只有一条路径非常重要。


26

您应该将程序从磁盘映像复制到本地文件夹。这些事情的通常位置是/ usr / local / bin

所以:

sudo mkdir -p /usr/local/bin
sudo cp /Volumes/FFmpeg\ 91200-g1616b1be5a/ffmpeg /usr/local/bin/
sudo chmod +x /usr/local/bin/ffmpeg

一切都应该很好。不需要禁用SIP。

无需自制程序或任何其他程序包处理程序即可安装预编译的二进制文件。但是,您确实需要阅读基本的UNIX。


2

在Windows或Linux中,macOS的终端外壳正在$PATH环境变量中查找二进制文件。

您可以检查$PATH变量:

echo $PATH

在最近的标准macOS中输出的内容:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

您要么必须将二进制文件的副本放入那些目录之一(最好是/ usr / local / bin,因为它不受SIP保护),要么在您的$PATH环境变量中添加另一个目录。

最佳实践通常是将您的应用程序存储在其他地方(例如/lib),并且仅将符号链接放在指向二进制文件本身的bin目录中。对于独立的二进制文件而言,情况并非如此,但如果您要运行.app内的可执行文件(例如/Applications/VLC.app/Contents/MacOS/VLC),则必须这样做


在macOS上,自行安装Unix二进制文件的规范位置/usr/local或更具体地/usr/local/bin来说是
nohillside
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.