O OSX vem com um avconvert, utilitário de conversão de vídeo em linha de comando, mas essa ferramenta fornece funcionalidade limitada em comparação com o avconv fornecido pelo 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 as dependências com o MacPorts (ou outros gerenciadores de pacotes como o Homebrew ):
x264 +asmparece ser necessário para começar a trabalhar cpu-capabilities, portanto, se você não obtê-los (por exemplo, [libx264 @ 0x7fe66101a800] using cpu capabilities: none!), execute:
atualização da porta sudo --forceforce-variantes x264 + asm
Você deve obter algo como: [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
No Mac OSX, as dependências instaladas pelo MacPorts e usando o pkg-config não são encontradas até você definir a variável de ambiente 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` acima passa milagrosamente!
Alexy
5
brew install libav
Steven Soroka
1
Na penúltima etapa, crie a lib-av. Erro: gnutls não encontrado
Chase Roberts
@ChaseRoberts Oi Chase, eu também tenho o mesmo problema com gnutls não encontrado. Tentei seguir um guia gist.github.com/morgant/1753095, mas encontrei mais erros. Você já conseguiu fazer as coisas funcionarem?
John John
ok, só precisei reinstalar o homebrew para brew install libavpoder trabalhar.
John
1
Para aqueles que não têm brew- e até os libavmacports criarem uma porta para , aqui estão minhas notas para instalar o libav no OSX 10.8.5 a partir da fonte (versão libav 12_dev0, do github).
O principal problema que enfrentei foi que o libav usa sem_timedwait()(semaphore.h no linux) que não é definido no macos.
AVISO: Não posso dizer ou garantir se a implementação mencionada sem_timedwait()é a correta e / ou não terá efeitos colaterais no funcionamento libavou mesmo em qualquer outra parte do sistema que vincule a bibliotecas de libav que agora possuem uma sem_timedwait()implementação lá !!!! Para o último, sugiro renomear sem_timedwait()todos os lugares da sua cópia libave da implementação de Keith. Verifique também se outros símbolos foram exportados de sem_timedwait.o e renomeie-os também.
Aqui estão os novos símbolos renomeados da implementação de Keith Shortridge de sem_timedwait():
brew install libav
.Respostas:
Basta instalá-lo com o brew:
fonte
Primeiro pegue a biblioteca:
Configure as dependências com o MacPorts (ou outros gerenciadores de pacotes como o Homebrew ):
Crie o libav:
Então você pode executar
avconv
:x264 +asm
parece ser necessário para começar a trabalharcpu-capabilities
, portanto, se você não obtê-los (por exemplo,[libx264 @ 0x7fe66101a800] using cpu capabilities: none!
), execute:Você deve obter algo como:
[libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
fonte
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` acima passa milagrosamente!brew install libav
poder trabalhar.Para aqueles que não têm
brew
- e até oslibav
macports criarem uma porta para , aqui estão minhas notas para instalar o libav no OSX 10.8.5 a partir da fonte (versão libav12_dev0
, do github).O principal problema que enfrentei foi que o libav usa
sem_timedwait()
(semaphore.h no linux) que não é definido no macos.Este post https://stackoverflow.com/a/15163760 menciona que Keith Shortridge, do grupo de software do Observatório Astronômico Australiano (obrigado), escreveu uma implementação da referida função para macos, que pode ser encontrada aqui https://github.com/attie / libxbee3 / tree / master / xsys_darwin
Faça o download dos dois arquivos
${LIBAVDIR}/libavdevice
e adicione a seguinte linha no arquivo de cabeçalhosem_timedwait.h
:int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);
Em seguida, edite o Makefile
${LIBAVDIR}/libavdevice
e adicionesem_timedwait.o
no final daOBJS
variávelconfigurar e fazer tudo
Você está pronto para ir.
para o registro, usei o seguinte comando configure:
./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
AVISO: Não posso dizer ou garantir se a implementação mencionada
sem_timedwait()
é a correta e / ou não terá efeitos colaterais no funcionamentolibav
ou mesmo em qualquer outra parte do sistema que vincule a bibliotecas de libav que agora possuem umasem_timedwait()
implementação lá !!!! Para o último, sugiro renomearsem_timedwait()
todos os lugares da sua cópialibav
e da implementação de Keith. Verifique também se outros símbolos foram exportados de sem_timedwait.o e renomeie-os também.Aqui estão os novos símbolos renomeados da implementação de Keith Shortridge de
sem_timedwait()
:sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith
(remova
_keith
para obter os nomes originais). A única referência asem_timedwait()
inlibav
(para a referida versão) está emjack.c
.fonte
Para vídeos hospedados em https (muitos, atualmente), certifique-se de criar o avconv com suporte ao OpenSSL:
fonte