OSX поставляется с командной строкой преобразованием видео утилиты avconvert но этот инструмент обеспечивает ограниченную функциональность по сравнению с avconv предоставленного 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
Установите зависимости с MacPorts (или другими менеджерами пакетов, такими как Homebrew ):
x264 +asmПохоже, что нужно работать cpu-capabilities, так что если вы не получаете их (т.е. [libx264 @ 0x7fe66101a800] using cpu capabilities: none!), запустите:
В Mac OSX зависимости, установленные через MacPorts и использующие pkg-config, не будут найдены, пока вы не установите переменную среды 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` выше чудесным образом проходит!
Алексия
5
brew install libav
Стивен Сорока
1
От второго до последнего шага, соберите lib-av. ОШИБКА: gnutls не найдены
Чейз Робертс
@ChaseRoberts Привет Чейз, у меня также есть та же самая проблема с gnutls, не найденными. Я пытался следовать руководству gist.github.com/morgant/1753095, но обнаружил больше ошибок. Вы когда-нибудь могли заставить вещи работать?
Джон
хорошо, я просто должен был переустановить доморощенный, чтобы приступить brew install libavк работе.
Джон
1
Для тех, у кого нет brew- и пока macports не придумают порт для libav, вот мои замечания по установке libav на OSX 10.8.5 из исходного кода (версия libav 12_dev0, из github).
Основная проблема, с которой я столкнулся, заключалась в том, что libav использует sem_timedwait()(semaphore.h в linux), который не определен в macos.
ПРЕДУПРЕЖДЕНИЕ. Я не могу сказать или гарантировать, является ли упомянутая реализация sem_timedwait()правильной и / или не будет иметь побочных эффектов для работы libavили любой другой части системы, которая связана с библиотеками libav, в которых теперь есть sem_timedwait()реализация !!!! Для последнего я могу предложить переименовать sem_timedwait()всюду в вашей копии libavи реализации Кита. Также проверьте, экспортируются ли какие-либо другие символы из sem_timedwait.o и также переименуйте их.
Вот новые, переименованные символы из реализации Кита Шортриджа sem_timedwait():
brew install libav
.Ответы:
Просто установите его с помощью brew:
источник
Сначала возьмите библиотеку:
Установите зависимости с MacPorts (или другими менеджерами пакетов, такими как Homebrew ):
Сборка libav:
Тогда вы можете запустить
avconv
:x264 +asm
Похоже, что нужно работатьcpu-capabilities
, так что если вы не получаете их (т.е.[libx264 @ 0x7fe66101a800] using cpu capabilities: none!
), запустите:Вы должны получить что-то вроде:
[libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
источник
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` выше чудесным образом проходит!brew install libav
к работе.Для тех, у кого нет
brew
- и пока macports не придумают порт дляlibav
, вот мои замечания по установке libav на OSX 10.8.5 из исходного кода (версия libav12_dev0
, из github).Основная проблема, с которой я столкнулся, заключалась в том, что libav использует
sem_timedwait()
(semaphore.h в linux), который не определен в macos.В этом посте https://stackoverflow.com/a/15163760 упоминается, что Кит Шортридж из группы разработчиков программного обеспечения Австралийской астрономической обсерватории (спасибо) написал реализацию указанной функции для макросов, которую можно найти здесь https://github.com/attie / libxbee3 / дерево / ведущий / xsys_darwin
Загрузите два файла в
${LIBAVDIR}/libavdevice
и затем добавьте следующую строку в заголовочный файлsem_timedwait.h
:int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);
Затем отредактируйте Makefile
${LIBAVDIR}/libavdevice
и добавьтеsem_timedwait.o
в конецOBJS
переменнойнастроить и сделать все
тебе хорошо идти.
для записи я использовал следующую команду настройки:
./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
ПРЕДУПРЕЖДЕНИЕ. Я не могу сказать или гарантировать, является ли упомянутая реализация
sem_timedwait()
правильной и / или не будет иметь побочных эффектов для работыlibav
или любой другой части системы, которая связана с библиотеками libav, в которых теперь естьsem_timedwait()
реализация !!!! Для последнего я могу предложить переименоватьsem_timedwait()
всюду в вашей копииlibav
и реализации Кита. Также проверьте, экспортируются ли какие-либо другие символы из sem_timedwait.o и также переименуйте их.Вот новые, переименованные символы из реализации Кита Шортриджа
sem_timedwait()
:sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith
(удалить,
_keith
чтобы получить оригинальные имена). Единственная ссылка наsem_timedwait()
вlibav
(для упомянутой версии) находится вjack.c
.источник
Для видео, размещенных на https (многие из них в наши дни), убедитесь, что вы собрали avconv с поддержкой OpenSSL:
источник