11 votos

Instalar ffmpeg desde el dmg y luego ejecutarlo desde un terminal, ¿hay alguna forma mejor?

Desde aquí: https://ffmpeg.org/download.html#build-mac Elegí las construcciones estáticas de 64 bits que también me https://evermeet.cx/ffmpeg/

Entonces descargué esto:

enter image description here

y lo abrí con esto:

enter image description here

que me dio esto:

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]

Sin embargo, cuando abro un terminal e intento ffmpeg o man ffmpeg o incluso ffmpeg -i filename.mp4 -vn filename.wav (de aquí ) todo lo que obtengo es

-bash: ffmpeg: comando no encontrado

Debo estar cerca, ¿hay un lugar donde ahora tengo que definir un camino para ffmpeg ? No sé cómo hacerlo, ni qué camino utilizar.

¿Hay una forma mejor?

27voto

david Puntos 231

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

Así que:

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

y todo debería ir bien. No es necesario desactivar el SIP.

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

20voto

Pirooz Puntos 486

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

Primero instala HomeBrew con este comando:

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

A continuación, instale ffmpeg con este comando:

brew install ffmpeg

Homebrew instalará ffmpeg en una ruta no protegida por SIP pero dentro de la $PATH Más concretamente, se trata de instalarlo bajo el /usr/local/bin directorio.

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

Editar: Anteriormente tenía una parte de esta respuesta con información inexacta ya la he cambiado. Creo que actualmente es correcta. He incluido la parte sobre el SIP porque creo que es importante entender qué restricciones hay en cuanto a la colocación de los comandos y por qué no hay una sola ruta para todos los comandos.

2voto

zakinster Puntos 131

El shell de terminal de MacOS, al igual que en Windows o Linux, busca en el $PATH para localizar los binarios.

Puede comprobar su $PATH variable haciendo :

echo $PATH

Que sale en el estándar reciente de MacOS :

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

O bien tienes que poner una copia del binario en uno de esos directorios (preferiblemente /usr/local/bin ya que no es SIP -protegido) o añadir otro directorio en su $PATH variable de entorno.

Por lo general, la mejor práctica es almacenar su aplicación en otro lugar (por ejemplo /lib ) y poner sólo un enlace simbólico en el directorio bin apuntando al propio binario. Esto es menos cierto para los binarios autocontenidos, pero es obligatorio si se quiere ejecutar un ejecutable que reside dentro de un .app (por ejemplo /Applications/VLC.app/Contents/MacOS/VLC )

0 votos

En MacOS el lugar canónico para los binarios Unix autoinstalados es /usr/local o más específicamente /usr/local/bin ,

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X