Menginstal ffmpeg dari dmg dan kemudian berjalan dari terminal, apakah ada cara yang lebih baik?

11

Dari sini: https://ffmpeg.org/download.html#build-mac Saya memilih static build 64-bit yang juga saya gunakan untuk https://evermeet.cx/ffmpeg/

Saya kemudian mengunduh ini:

masukkan deskripsi gambar di sini

dan membukanya menggunakan ini:

masukkan deskripsi gambar di sini

yang memberi saya ini:

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]

Namun ketika saya membuka terminal dan mencoba ffmpegatau man ffmpegatau bahkan ffmpeg -i filename.mp4 -vn filename.wav(dari sini ) yang saya dapatkan hanyalah

-bash: ffmpeg: perintah tidak ditemukan

Saya harus dekat, apakah ada tempat di mana saya sekarang perlu menentukan jalan untuk ffmpeg? Saya tidak tahu bagaimana melakukan itu, atau jalan apa yang digunakan.

Apakah ada cara yang lebih baik?

uh oh
sumber

Jawaban:

20

Masalahnya adalah bashmencari ffmpegdalam daftar direktori di $PATH. Beberapa direktori ini dilindungi oleh SIP dan oleh karena itu Anda perlu menonaktifkan SIP untuk meletakkan file di direktori ini. Atau, Anda dapat menginstalnya menggunakan Homebrew.

Pertama instal HomeBrew dengan perintah ini:

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

Kemudian instal ffmpegdengan perintah ini:

brew install ffmpeg

Homebrew akan menginstal ffmpeg di jalur yang tidak dilindungi oleh SIP , tetapi di dalam $PATH, lebih khusus akan menginstalnya di bawah /usr/local/bindirektori.

Ini dapat dilakukan secara manual dengan perintah manual (pada dasarnya secara manual melakukan apa yang dilakukan oleh homebrew. Untuk pendekatan ini, periksa jawaban @davids. Tetapi saya akan menyarankan homebrew karena berbagai alasan. Jauh lebih mudah digunakan dan lebih cepat untuk menginstal sejumlah besar alat. Anda juga dapat memperbarui jauh lebih cepat. Homebrew juga membuat menginstal dependensi lebih mudah.

Sunting: Saya sebelumnya memiliki bagian dari jawaban ini dengan informasi yang tidak akurat yang telah saya ubah sejak saat itu. Saya percaya saat ini akurat. Saya telah memasukkan bagian tentang SIP karena saya pikir penting untuk memahami batasan apa yang ada mengenai penempatan perintah dan mengapa tidak hanya ada satu jalur untuk semua perintah.

JBis
sumber
26

Anda seharusnya menyalin program dari gambar disk ke folder lokal Anda. Tempat yang biasa untuk hal-hal ini adalah / usr / local / bin

Begitu:

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

dan semua harus baik untuk pergi. Menonaktifkan SIP tidak diperlukan.

Tidak perlu untuk homebrew atau penangan paket lainnya untuk menginstal biner yang telah dikompilasi. Anda perlu membaca tentang UNIX dasar.

David
sumber
2

Shell terminal macOS, seperti pada Windows atau Linux, sedang mencari $PATHvariabel lingkungan untuk menemukan binari.

Anda dapat memeriksa $PATHvariabel Anda melakukan:

echo $PATH

Yang keluaran dalam standar macOS terbaru:

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

Anda juga harus meletakkan salinan biner di salah satu direktori tersebut (lebih disukai / usr / local / bin karena bukan dilindungi SIP ) atau tambahkan direktori lain dalam $PATHvariabel lingkungan Anda .

Praktik terbaik umumnya untuk menyimpan aplikasi Anda di tempat lain (misalnya /lib) dan hanya menaruh symlink di direktori bin menunjuk ke biner itu sendiri. Ini kurang benar untuk biner mandiri tetapi wajib jika Anda ingin menjalankan executable yang berada di dalam .app (misalnya /Applications/VLC.app/Contents/MacOS/VLC)

zakinster
sumber
Pada macOS, tempat kanonik untuk binari Unix yang diinstal sendiri adalah /usr/localatau lebih khusus /usr/local/bin,
nohillside