OSX viene con una utilidad de conversión de video de línea de comandos avconvert, pero esta herramienta proporciona una funcionalidad limitada en comparación con avconv proporcionada por libav .
wget http://libav.org/releases/libav-10.1.tar.gz
# use http://libav.org/releases/libav-snapshot.tar.bz2 for the latest snapshot
tar -xvzf libav-10.1.tar.gz
cd libav-10.1
Configure las dependencias con MacPorts (u otros gestores de paquetes como Homebrew ):
x264 +asmparece ser necesario para que funcione cpu-capabilities, así que si no los consigue (es decir [libx264 @ 0x7fe66101a800] using cpu capabilities: none!), ejecute:
actualización de puerto sudo --enforce-variantes x264 + asm
Deberías obtener algo como: [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
En Mac OSX, las dependencias instaladas a través de MacPorts y usando pkg-config no se encuentran hasta que establezca la variable de entorno export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig'. Also, for the fun of it, you may add, to ./configure , options: --extra-cflags = -I / opt / local / include --extra-ldflags = -L / opt / local / lib . Then the whole . / configure` arriba pasa milagrosamente!
Alexy
55
brew install libav
Steven Soroka
1
En el penúltimo paso, compile lib-av. ERROR: no se encontraron gnutls
Chase Roberts
@ChaseRoberts Hola Chase, también tengo el mismo problema con gnutls no encontrado. Intenté seguir una guía gist.github.com/morgant/1753095 pero encontré más errores. ¿Alguna vez pudiste hacer que las cosas funcionen?
John
ok solo tuve que reinstalar homebrew para poder brew install libavtrabajar.
John
1
Para aquellos que no lo tienen brew, y hasta que los macports tengan un puerto libav, aquí están mis notas para instalar libav en OSX 10.8.5 desde la fuente (versión libav 12_dev0, desde github).
El principal problema que enfrenté fue que libav usa sem_timedwait()(semaphore.h en linux) que no está definido en macos.
ADVERTENCIA: No puedo decir ni garantizar si dicha implementación de sem_timedwait()es la correcta y / o no tendrá efectos secundarios para el funcionamiento de libavninguna otra parte del sistema que se vincule a las bibliotecas libav que ahora tienen una sem_timedwait()implementación allí. !!!! Para este último, puedo sugerir cambiar el nombre a sem_timedwait()todas partes en su copia libavy la implementación de Keith. Compruebe también si se exportan otros símbolos desde sem_timedwait.o y cámbieles el nombre también.
Aquí están los nuevos símbolos renombrados de la implementación de Keith Shortridge de sem_timedwait():
brew install libav
.Respuestas:
Simplemente instálelo con brew:
fuente
Primero agarra la biblioteca:
Configure las dependencias con MacPorts (u otros gestores de paquetes como Homebrew ):
Construir libav:
Entonces puedes ejecutar
avconv
:x264 +asm
parece ser necesario para que funcionecpu-capabilities
, así que si no los consigue (es decir[libx264 @ 0x7fe66101a800] using cpu capabilities: none!
), ejecute:Deberías obtener algo como:
[libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
fuente
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig'. Also, for the fun of it, you may add, to
./configure, options:
--extra-cflags = -I / opt / local / include --extra-ldflags = -L / opt / local / lib. Then the whole
. / configure` arriba pasa milagrosamente!brew install libav
trabajar.Para aquellos que no lo tienen
brew
, y hasta que los macports tengan un puertolibav
, aquí están mis notas para instalar libav en OSX 10.8.5 desde la fuente (versión libav12_dev0
, desde github).El principal problema que enfrenté fue que libav usa
sem_timedwait()
(semaphore.h en linux) que no está definido en macos.Esta publicación https://stackoverflow.com/a/15163760 menciona que Keith Shortridge del grupo de software del Observatorio Astronómico Australiano (gracias) ha escrito una implementación de dicha función para macos que se puede encontrar aquí https://github.com/attie / libxbee3 / tree / master / xsys_darwin
Descargue los dos archivos
${LIBAVDIR}/libavdevice
y luego agregue la siguiente línea en el archivo de encabezadosem_timedwait.h
:int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);
Luego edite el Makefile
${LIBAVDIR}/libavdevice
y agreguesem_timedwait.o
al final de laOBJS
variableconfigurar y hacer todo
tú eres bueno para irte.
para el registro, utilicé el siguiente comando de configuración:
./configure --extra-cflags=-I/opt/local/include --extra-ldflags=-L/opt/local/lib --enable-gpl --enable-libx264 --enable-libxvid --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-nonfree --enable-libfaac --enable-libmp3lame --enable-libspeex --enable-libvorbis --enable-libtheora --enable-libvpx --enable-libopenjpeg --enable-libfreetype --enable-doc --enable-gnutls --prefix=/opt/local
ADVERTENCIA: No puedo decir ni garantizar si dicha implementación de
sem_timedwait()
es la correcta y / o no tendrá efectos secundarios para el funcionamiento delibav
ninguna otra parte del sistema que se vincule a las bibliotecas libav que ahora tienen unasem_timedwait()
implementación allí. !!!! Para este último, puedo sugerir cambiar el nombre asem_timedwait()
todas partes en su copialibav
y la implementación de Keith. Compruebe también si se exportan otros símbolos desde sem_timedwait.o y cámbieles el nombre también.Aquí están los nuevos símbolos renombrados de la implementación de Keith Shortridge de
sem_timedwait()
:sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith
(eliminar
_keith
para obtener los nombres originales). La única referencia asem_timedwait()
inlibav
(para dicha versión) está enjack.c
.fuente
Para los videos alojados en https (muchos, en estos días), asegúrese de crear avconv con soporte de OpenSSL:
fuente