Instalando ffmpeg desde dmg y luego ejecutando desde una terminal, ¿hay alguna manera mejor?

10

Desde aquí: enlace Escogí compilaciones estáticas de 64 bits, que también a enlace

Luego descargué esto:

  

yloabríusandoesto:

  

quemedioesto:

Lastlogin:WedJun609:41:56onttys000david-selfs-Air:~david$/Volumes/FFmpeg\91200-g1616b1be5a/ffmpeg;exit;ffmpegversionN-91200-g1616b1be5a-tessusCopyright(c)2000-2018theFFmpegdevelopersbuiltwithAppleLLVMversion9.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-ffplaylibavutil56.18.102/56.18.102libavcodec58.19.104/58.19.104libavformat58.17.100/58.17.100libavdevice58.4.100/58.4.100libavfilter7.24.100/7.24.100libswscale5.2.100/5.2.100libswresample3.2.100/3.2.100libpostproc55.2.100/55.2.100HyperfastAudioandVideoencoderusage:ffmpeg[options][[infileoptions]-iinfile]...{[outfileoptions]outfile}...Use-htogetfullhelpor,evenbetter,run'manffmpeg'logoutSavingsession......copyingsharedhistory......savinghistory...truncatinghistoryfiles......completed.Deletingexpiredsessions...7completed.[Processcompleted]

Sinembargo,cuandoabrounaterminaleintentoffmpegomanffmpegoinclusoffmpeg-ifilename.mp4-vnfilename.wav(de aquí ) todo lo que obtengo es

  

-bash: ffmpeg: comando no encontrado

Debo estar cerca, ¿hay un lugar donde ahora necesito definir una ruta para ffmpeg ? No sé cómo hacer eso, o qué camino usar.

¿Hay una mejor manera?

    
pregunta uhoh 06.06.2018 - 04:38

3 respuestas

18

El problema es que bash busca ffmpeg en la lista de directorios en $PATH . Algunos de estos directorios están protegidos por SIP y, por lo tanto, necesitaría deshabilite SIP para colocar el archivo en estos directorios. Alternativamente, puedes instalarlo usando Homebrew.

Primero instale HomeBrew con este comando:

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

Luego instale ffmpeg con este comando:

brew install ffmpeg

Homebrew instalará ffmpeg en una ruta no protegida por SIP , pero dentro de $PATH , más específicamente lo instalará en el directorio /usr/local/bin .

Esto se puede hacer manualmente con comandos manuales (básicamente, haciendo lo que hace homebrew. Para este enfoque, consulte la respuesta de @davids. Pero sugeriría homebrew por múltiples razones . Es mucho más fácil de usar y más rápido de instalar una gran cantidad de herramientas. También puede actualizar mucho más rápido. Homebrew también facilita la instalación de dependencias.

Editar: no estoy seguro de por qué esto está recibiendo tantos downvotes. Anteriormente recibí una parte de esta respuesta con información incorrecta que luego la cambié. Creo que actualmente es exacto. Si no está de acuerdo, puede comentar a continuación o editarlo según sea necesario. He incluido la parte sobre SIP porque creo que es importante entender qué restricciones existen con respecto a la ubicación de los comandos y por qué no hay una sola ruta para todos los comandos.

    
respondido por el JBis 06.06.2018 - 04:45
25

Se supone que debes copiar el programa de la imagen del disco a tus carpetas locales. El lugar habitual para estas cosas es / usr / local / bin

Entonces:

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

y todos deberían estar bien para ir. Deshabilitar SIP no es necesario.

No es necesario que Homebrew o cualquier otro manejador de paquetes instale un binario precompilado. Sin embargo, necesitas leer sobre UNIX básico.

    
respondido por el david 06.06.2018 - 07:06
2

El shell de terminal de macOS, como en Windows o Linux, busca en la variable de entorno $PATH para ubicar los binarios.

Puedes verificar tu variable $PATH haciendo:

echo $PATH

Qué salidas en macOS recientes estándar:

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

O bien, debe colocar una copia del binario en uno de esos directorios (preferiblemente / usr / local / bin, ya que no es SIP (protegido) o agregue otro directorio en su variable de entorno $PATH .

La mejor práctica es generalmente almacenar su aplicación en otro lugar (por ejemplo, /lib ) y solo colocar un enlace simbólico en El directorio bin que apunta al propio binario. Esto es menos cierto para el binario autónomo, pero es obligatorio si desea ejecutar un archivo ejecutable que se encuentre dentro de un .app (por ejemplo, /Applications/VLC.app/Contents/MacOS/VLC )

    
respondido por el zakinster 06.06.2018 - 08:35

Lea otras preguntas en las etiquetas