OSX'e libav / avconv nasıl kurulur?


32

OS X, bir komut çizgi video dönüştürme programı ile birlikte avconvert ancak bu araç ile karşılaştırıldığında sınırlı bir işlevsellik sağlar avconv sağladığı libav .

Avconv'ı OS X'e nasıl kurabilirim?


3
Homebrew ile: brew install libav.
Mathias Bynens

Yanıtlar:



17

İlk önce kütüphaneyi alın:

 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

Bağımlılıkları MacPorts'la (veya Homebrew gibi diğer paket yöneticileriyle ) ayarlayın:

sudo port install yasm zlib bzip2 faac lame speex libogg libvorbis libtheora libvpx x264 XviD openjpeg15 opencore-amr freetype

Libav oluşturun:

./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

Sonra koşabilirsiniz avconv:

avconv -i input.avi -c:v libx264 -preset slow -crf 18 output.mp4

  • x264 +asmÇalışmak için gerekli gibi görünüyor cpu-capabilities, bu yüzden onları [libx264 @ 0x7fe66101a800] using cpu capabilities: none!çalıştırmazsanız (örn. ) koşun:

sudo port yükseltme - enforce değişkenleri x264 + asm

Sth gibi olmalı: [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX


3
Mac OSX günü, MacPorts ve pkg-config kullanılarak üzerinden yüklenen bağımlılıkları bulunmayan kadar set ortam değişkeni export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig'. Also, for the fun of it, you may add, to ./configure , options: --extra-derleme-= -I / opt / yerel / --extra-LDFLAGS dahil = L / opt / yerel / lib . Then the whole . / configure` yukarıda mucizevi bir şekilde geçer!
Alexy

5
demlemek libav yüklemek
Steven Soroka

1
İkinci ve son adımda lib-av oluşturun. HATA: gnutls bulunamadı
Chase Roberts

@ChaseRoberts Merhaba Chase, ben de bulunmayan ceviz ile aynı sorunu var. Bir kılavuz gist.github.com/morgant/1753095 izlemeye çalıştım, ancak daha fazla hatayla karşılaştı. İşlerin işe yarayabilmesi hiç oldu mu?
John

Tamam, çalışmak için sadece homebrew'i yeniden kurmak zorunda kaldım brew install libav.
John,

1

Olmayanlar için brew- ve MacPorts kadar bir port ile gelip libav, buradan OSX 10.8.5 üzerinde libav yüklemek için benim notlar kaynak (libav sürümü 12_dev0github gelen).

Karşılaştığım asıl sorun, libav'un ​​macos'ta sem_timedwait()tanımlanmayan ( linux'taki semafor.h) kullanmasıydı .

Bu yazı https://stackoverflow.com/a/15163760 , Avustralya Astronomik Gözlemevi yazılım grubundan Keith Shortridge'in (teşekkürler) burada bulunan macoslar için söz konusu fonksiyonun bir uygulamasını yazdığını söyler: https://github.com/attie / libxbee3 / ağaç / ana / xsys_darwin

İki dosyayı indirin ve ${LIBAVDIR}/libavdevicebaşlık dosyasına aşağıdaki satırı ekleyin sem_timedwait.h:

int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);

Ardından Makefile dosyasını düzenleyin ve değişkenin sonuna ${LIBAVDIR}/libavdeviceekleyin sem_timedwait.o.OBJS

yapılandır ve hepsini yap

senin gitmen iyidir.

kayıt için aşağıdaki configure komutunu kullandım:

./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

UYARI: Söz konusu uygulamanın sem_timedwait()doğru bir uygulama olup olmadığını ve / veya libavşu anda sem_timedwait()orada bir uygulaması olan libav kitaplıklarına bağlanan sistemin herhangi bir bölümünün çalışmasına ya da gerçekten herhangi bir yan etkisi olmayacağını söyleyemem ya da garanti edemem . !!!! İkincisi, sem_timedwait()kopyanızdaki her yeri libavve Keith'in uygulanmasını değiştirmeyi önerebilir miyim ? Ayrıca sem_timedwait.o dosyasından başka sembollerin verilmiş olup olmadığını kontrol edin ve bunları yeniden adlandırın.

İşte Keith Shortridge'in uygulamasından yeni, yeniden adlandırılmış semboller sem_timedwait():

sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith

( _keithorijinal isimleri almak için kaldırın ). Sadece referans sem_timedwait()olarak libav(söz konusu versiyonu için) yer alır jack.c.


0

Https'de (çoğu günlerde) barındırılan videolar için, OpenSSL desteğiyle avconv oluşturduğunuzdan emin olun:

brew install libav --with-openssl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.