Instalowanie ffmpeg z dmg, a następnie uruchamianie z terminala, czy jest lepszy sposób?

11

Stąd: https://ffmpeg.org/download.html#build-mac Wybrałem kompilacje statyczne 64-bitowe, które też mi do https://evermeet.cx/ffmpeg/

Następnie pobrałem to:

wprowadź opis zdjęcia tutaj

i otworzyłem go za pomocą:

wprowadź opis zdjęcia tutaj

co dało mi to:

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]

Jednak kiedy otworzyć terminal i spróbować ffmpeglub man ffmpegnawet ffmpeg -i filename.mp4 -vn filename.wav(od tutaj ) wszystko mogę to

-bash: ffmpeg: nie znaleziono polecenia

Muszę być blisko, czy jest miejsce, w którym muszę teraz określić ścieżkę ffmpeg? Nie wiem, jak to zrobić ani jakiej ścieżki użyć.

Czy jest lepszy sposób?

O o
źródło

Odpowiedzi:

20

Problemem jest bashszukanie na ffmpegliście katalogów w $PATH. Niektóre z tych katalogów są chronione przez SIP, w związku z czym należy wyłączyć SIP, aby umieścić plik w tych katalogach. Alternatywnie możesz zainstalować go za pomocą Homebrew.

Najpierw zainstaluj HomeBrew za pomocą tego polecenia:

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

Następnie zainstaluj za ffmpegpomocą tego polecenia:

brew install ffmpeg

Homebrew zainstaluje ffmpeg na ścieżce nie chronionej przez SIP , ale w ramach $PATH, a dokładniej zainstaluje go w /usr/local/binkatalogu.

Można to zrobić ręcznie za pomocą poleceń ręcznych (w zasadzie ręcznie robiąc to, co robi homebrew. W tym podejściu sprawdź odpowiedź @davids. Ale sugerowałbym homebrew z wielu powodów. Jest znacznie łatwiejszy w użyciu i szybszy w instalacji dużej ilości narzędzi. może również aktualizować się znacznie szybciej. Homebrew ułatwia także instalowanie zależności.

Edycja: Poprzednio miałem część tej odpowiedzi z niedokładnymi informacjami, które zmieniłem. Uważam, że jest to obecnie dokładne. Włączyłem część dotyczącą SIP, ponieważ uważam, że ważne jest, aby zrozumieć, jakie są ograniczenia dotyczące rozmieszczania poleceń i dlaczego nie ma jednej ścieżki dla wszystkich poleceń.

JBis
źródło
26

Powinieneś skopiować program z obrazu dysku do folderów lokalnych. Zwykłym miejscem na te rzeczy jest / usr / local / bin

Więc:

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

i wszystko powinno być dobre. Wyłączenie SIP nie jest wymagane.

Nie ma potrzeby instalowania prekompilowanego pliku binarnego przez homebrew lub inny moduł obsługi pakietów. Musisz jednak przeczytać o podstawowym systemie UNIX.

David
źródło
2

Powłoka terminalowa systemu macOS, podobnie jak w systemie Windows lub Linux, szuka $PATHzmiennej środowiskowej w celu zlokalizowania plików binarnych.

Możesz sprawdzić swoją $PATHzmienną wykonując:

echo $PATH

Które wyjścia w standardowym najnowszym systemie macOS:

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

Musisz albo umieścić kopię pliku binarnego w jednym z tych katalogów (najlepiej / usr / local / bin, ponieważ nie jest on chroniony przez SIP ) lub dodać inny katalog do $PATHzmiennej środowiskowej.

Najlepszą praktyką jest na ogół przechowywanie aplikacji w innym miejscu (np. /lib) I umieszczanie dowiązania symbolicznego w katalogu bin wskazującym na sam plik binarny. Jest to mniej prawdziwe w przypadku niezależnych plików binarnych, ale obowiązkowe, jeśli chcesz uruchomić plik wykonywalny znajdujący się w .app (np. /Applications/VLC.app/Contents/MacOS/VLC)

zakinster
źródło
W systemie macOS kanoniczne miejsce dla samodzielnie instalowanych plików binarnych z systemem Unix jest, /usr/locala dokładniej /usr/local/bin,
nohillside