Установка ffmpeg из dmg, а затем запуск из терминала, есть ли лучший способ?

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? Я не знаю, как это сделать, или какой путь использовать.

Есть ли способ лучше?

UHOH
источник

Ответы:

20

Проблема заключается bashв поиске ffmpegв списке каталогов в $PATH. Некоторые из этих каталогов защищены SIP, и поэтому вам нужно будет отключить SIP, чтобы поместить файл в эти каталоги. Кроме того, вы можете установить его с помощью Homebrew.

Сначала установите HomeBrew с помощью этой команды:

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

Затем установите ffmpegс помощью этой команды:

brew install ffmpeg

Homebrew установит ffmpeg по пути, не защищенному SIP , но внутри $PATH, более конкретно, он установит его в /usr/local/binкаталоге.

Это можно сделать вручную с помощью ручных команд (в основном вручную, что делает homebrew. Для этого подхода проверьте ответ @davids. Но я бы предложил homebrew по нескольким причинам. Его гораздо проще использовать и быстрее установить большое количество инструментов. Вы также может обновляться намного быстрее. Homebrew также упрощает установку зависимостей.

Изменить: у меня ранее была часть этого ответа с неточной информацией, которую я с тех пор изменил. Я считаю, что в настоящее время это точно. Я включил часть о SIP, потому что я думаю, что важно понять, какие существуют ограничения в отношении размещения команд и почему не существует единого пути для всех команд.

JBIS
источник
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 не требуется.

Нет необходимости в homebrew или любом другом обработчике пакетов для установки предварительно скомпилированного двоичного файла. Вы должны прочитать базовый UNIX, хотя.

Дэвид
источник
2

Терминальная оболочка macOS, как в Windows или Linux, ищет $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)

zakinster
источник
В macOS каноническое место для самоустановленных двоичных файлов Unix - /usr/localили, более конкретно /usr/local/bin,
nohillside