OSX datang dengan baris perintah konversi video utilitas avconvert tapi alat ini menyediakan fungsionalitas terbatas dibandingkan dengan avconv disediakan oleh 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
Siapkan dependensi dengan MacPorts (atau manajer paket lain seperti Homebrew ):
x264 +asmtampaknya diperlukan untuk bekerja cpu-capabilities, jadi jika Anda tidak membuatnya (mis. [libx264 @ 0x7fe66101a800] using cpu capabilities: none!) jalankan:
peningkatan sudo port --enforce-varian x264 + asm
Anda harus mendapatkan sth seperti: [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
Pada Mac OSX, dependensi yang diinstal melalui MacPorts dan menggunakan pkg-config tidak ditemukan sampai Anda menetapkan variabel lingkungan 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` di atas secara ajaib berlalu!
Alexy
5
buatan install libav
Steven Soroka
1
Pada langkah kedua hingga terakhir, bangun lib-av. GALAT: gnutl tidak ditemukan
Chase Roberts
@ ChaseRoberts Hai Chase, saya juga punya masalah yang sama dengan gnutl tidak ditemukan. Saya mencoba mengikuti panduan gist.github.com/morgant/1753095 tetapi menemukan lebih banyak kesalahan. Apakah Anda pernah bisa menyelesaikan pekerjaan?
John
ok saya hanya perlu menginstal ulang homebrew untuk mulai brew install libavbekerja.
Yohanes
1
Bagi mereka yang tidak brew- dan sampai macports datang dengan port untuk libav, berikut adalah catatan saya untuk menginstal libav pada OSX 10.8.5 dari sumber (versi libav 12_dev0, dari github).
Masalah utama yang saya hadapi adalah penggunaan libav sem_timedwait()(semaphore.h di linux) yang tidak didefinisikan di macos.
PERINGATAN: Saya tidak bisa mengatakan atau menjamin apakah implementasi yang sem_timedwait()dimaksud adalah yang benar dan / atau tidak akan memiliki efek samping terhadap kerja libavatau memang bagian lain dari sistem yang terhubung ke perpustakaan libav yang sekarang memiliki sem_timedwait()implementasi di sana !!!! Untuk yang terakhir mungkin saya sarankan mengganti nama sem_timedwait()di mana saja dalam salinan Anda libavdan implementasi Keith. Periksa juga apakah ada simbol lain yang diekspor dari sem_timedwait.o dan ubah nama juga.
Berikut adalah simbol baru yang diganti nama dari implementasi Keith Shortridge tentang sem_timedwait():
brew install libav
.Jawaban:
Cukup instal dengan minuman:
sumber
Pertama ambil perpustakaan:
Siapkan dependensi dengan MacPorts (atau manajer paket lain seperti Homebrew ):
Bangun libav:
Maka Anda dapat menjalankan
avconv
:x264 +asm
tampaknya diperlukan untuk bekerjacpu-capabilities
, jadi jika Anda tidak membuatnya (mis.[libx264 @ 0x7fe66101a800] using cpu capabilities: none!
) jalankan:Anda harus mendapatkan sth seperti:
[libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
sumber
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` di atas secara ajaib berlalu!brew install libav
bekerja.Bagi mereka yang tidak
brew
- dan sampai macports datang dengan port untuklibav
, berikut adalah catatan saya untuk menginstal libav pada OSX 10.8.5 dari sumber (versi libav12_dev0
, dari github).Masalah utama yang saya hadapi adalah penggunaan libav
sem_timedwait()
(semaphore.h di linux) yang tidak didefinisikan di macos.Posting ini https://stackoverflow.com/a/15163760 menyebutkan bahwa Keith Shortridge dari kelompok perangkat lunak Australian Astronomical Observatory (terima kasih) telah menulis implementasi fungsi tersebut untuk makro yang dapat ditemukan di sini https://github.com/attie / libxbee3 / tree / master / xsys_darwin
Unduh dua file ke dalam
${LIBAVDIR}/libavdevice
dan kemudian tambahkan baris berikut di file headersem_timedwait.h
:int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);
Kemudian edit Makefile di
${LIBAVDIR}/libavdevice
dan tambahkansem_timedwait.o
di akhirOBJS
variabelkonfigurasikan dan buat semua
kamu baik untuk pergi.
sebagai catatan, saya menggunakan perintah configure berikut:
./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
PERINGATAN: Saya tidak bisa mengatakan atau menjamin apakah implementasi yang
sem_timedwait()
dimaksud adalah yang benar dan / atau tidak akan memiliki efek samping terhadap kerjalibav
atau memang bagian lain dari sistem yang terhubung ke perpustakaan libav yang sekarang memilikisem_timedwait()
implementasi di sana !!!! Untuk yang terakhir mungkin saya sarankan mengganti namasem_timedwait()
di mana saja dalam salinan Andalibav
dan implementasi Keith. Periksa juga apakah ada simbol lain yang diekspor dari sem_timedwait.o dan ubah nama juga.Berikut adalah simbol baru yang diganti nama dari implementasi Keith Shortridge tentang
sem_timedwait()
:sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith
(hapus
_keith
untuk mendapatkan nama asli). Satu-satunya referensi kesem_timedwait()
dalamlibav
(untuk versi tersebut) adalah dalamjack.c
.sumber
Untuk video yang dihosting di https (banyak, hari ini), pastikan Anda membangun avconv dengan dukungan OpenSSL:
sumber