OSX에는 명령 줄 비디오 변환 유틸리티 avconvert가 제공되지만이 도구는 libav에서 제공하는 avconv에 비해 제한된 기능을 제공합니다 .
OS X에 avconv를 어떻게 설치합니까?
OSX에는 명령 줄 비디오 변환 유틸리티 avconvert가 제공되지만이 도구는 libav에서 제공하는 avconv에 비해 제한된 기능을 제공합니다 .
OS X에 avconv를 어떻게 설치합니까?
답변:
먼저 라이브러리를 가져옵니다.
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 와 같은 다른 패키지 관리자) 와의 종속성을 설정하십시오 .
sudo port install yasm zlib bzip2 faac lame speex libogg libvorbis libtheora libvpx x264 XviD openjpeg15 opencore-amr freetype
libav를 빌드하십시오.
./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 --enable-shared
make && sudo make install
그런 다음 다음을 실행할 수 있습니다 avconv
.
avconv -i input.avi -c:v libx264 -preset slow -crf 18 output.mp4
x264 +asm
작동 해야하는 것처럼 cpu-capabilities
보이므로 [libx264 @ 0x7fe66101a800] using cpu capabilities: none!
실행 하지 않으면 (예 :) 실행하십시오.sudo 포트 업그레이드 --enforce-variants x264 + asm
당신은 sth를 얻습니다 : [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 / 옵션 / 지역 / --extra-LDFLAGS를 포함 = -L / 옵션 / 지역 . Then the whole
기적적으로 위의 / lib . / configure`!
brew install libav
. 일 을하기 위해 집주인을 다시 설치해야 했어요 .
없는 사람들을 위해 brew
- 그리고 MacPorts를 할 때까지를위한 포트 마련 libav
, 여기에서 OSX 10.8.5에 libav를 설치하기위한 내 노트입니다 소스 (libav 버전 12_dev0
GitHub의에서이).
내가 직면 한 주요 문제는 libav가 사용한다는 것입니다. sem_timedwait()
에서 정의되지 않은 (linux의 semaphore.h)를 입니다.
이 게시물 https://stackoverflow.com/a/15163760 에 따르면 호주 천문대 소프트웨어 그룹의 Keith Shortridge (감사)는 https://github.com/attie 에서 찾을 수있는 macos에 대한 해당 기능의 구현을 작성했다고 언급합니다. / libxbee3 / tree / master / 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 명령을 사용했습니다.
./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
또는 현재 sem_timedwait()
구현 이있는 libav 라이브러리에 연결된 시스템의 다른 부분의 작동에 실제로 영향을 미치지 않을지 말하거나 보장 할 수 없습니다 !!!! 후자의 경우 sem_timedwait()
사본 libav
및 Keith 구현 의 모든 곳에서 이름을 바꾸는 것이 좋습니다 . 또한 sem_timedwait.o에서 다른 심볼이 내보내 졌는지 확인하고 이름도 바꿉니다.
Keith Shortridge의 다음에서 구현 된 새로운 이름의 심볼은 다음과 같습니다 sem_timedwait()
.
sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith
_keith
원래 이름을 얻으려면 제거하십시오 . sem_timedwait()
에서 libav
(상기 버전에 대한) 유일한 참조 는입니다 jack.c
.
brew install libav
.