Installare ffmpeg da dmg e quindi eseguirlo da un terminale, esiste un modo migliore?


11

Da qui: https://ffmpeg.org/download.html#build-mac ho scelto build statiche a 64 bit che anche a me https://evermeet.cx/ffmpeg/

Ho quindi scaricato questo:

inserisci qui la descrizione dell'immagine

e l'ho aperto usando questo:

inserisci qui la descrizione dell'immagine

che mi ha dato questo:

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]

Tuttavia quando apro un terminale e provo ffmpego man ffmpego anche ffmpeg -i filename.mp4 -vn filename.wav(da qui ) tutto ciò che ottengo è

-bash: ffmpeg: comando non trovato

Devo essere vicino, c'è un posto in cui ora devo definire un percorso per ffmpeg? Non so come farlo, né quale percorso utilizzare.

C'è un modo migliore?

Risposte:


20

Il problema è bashcercare ffmpegnell'elenco delle directory in $PATH. Alcune di queste directory sono protette da SIP e pertanto è necessario disabilitare SIP per inserire il file in queste directory. In alternativa, puoi installarlo usando Homebrew.

Prima installa HomeBrew con questo comando:

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

Quindi installare ffmpegcon questo comando:

brew install ffmpeg

Homebrew installerà ffmpeg in un percorso non protetto da SIP , ma all'interno $PATH, in particolare, lo installerà nella /usr/local/bindirectory.

Questo può essere fatto manualmente con comandi manuali (fondamentalmente facendo manualmente ciò che fa homebrew. Per questo approccio controlla @davids response. Ma suggerirei homebrew per diversi motivi. È molto più facile da usare e più veloce per installare una grande quantità di strumenti. può anche aggiornarsi molto più velocemente. Homebrew semplifica anche l'installazione delle dipendenze.

Modifica: in precedenza avevo ricevuto una parte di questa risposta con informazioni inesatte da allora l'ho modificata. Credo che sia attualmente accurato. Ho incluso la parte relativa a SIP perché ritengo sia importante capire quali sono le restrizioni relative al posizionamento dei comandi e perché non esiste un solo percorso per tutti i comandi.


26

Dovresti copiare il programma dall'immagine del disco nelle tue cartelle locali. Il solito posto per queste cose è / usr / local / bin

Così:

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

e tutto dovrebbe andare bene. Disabilitazione del SIP non richiesta.

Non è necessario homebrew o altri gestori di pacchetti per installare un binario precompilato. Tuttavia, è necessario leggere su UNIX di base.


2

La shell terminale di macOS, come in Windows o Linux, sta cercando nella $PATHvariabile d'ambiente per individuare i binari.

Puoi controllare la tua $PATHvariabile facendo:

echo $PATH

Quali output in macOS recenti standard:

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

Devi mettere una copia del file binario in una di quelle directory (preferibilmente / usr / local / bin in quanto non è protetto da SIP ) o aggiungere un'altra directory nella tua $PATHvariabile di ambiente.

In genere, è consigliabile archiviare l'applicazione altrove (ad es. /lib) E inserire un collegamento simbolico nella directory bin che punta al file binario stesso. Questo è meno vero per i file binari autonomi ma obbligatorio se si desidera eseguire un eseguibile che risiede all'interno di un .app (ad es. /Applications/VLC.app/Contents/MacOS/VLC)


Su macOS il posto canonico per i binari Unix autoinstallati è /usr/localo più specificamente /usr/local/bin,
nohillside
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.