OSX पर libav / avconv कैसे इंस्टॉल करें?


32

OSX एक कमांड लाइन वीडियो रूपांतरण उपयोगिता avconvert के साथ आता है लेकिन यह उपकरण libav द्वारा प्रदान किए गए एवोकॉन की तुलना में सीमित कार्यक्षमता प्रदान करता है ।

मैं ओएस एक्स पर एवोकॉन कैसे स्थापित कर सकता हूं?


3
होमब्रे के साथ brew install libav:।
मथियास बिएनेंस

जवाबों:



17

पहले पुस्तकालय को पकड़ो:

 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

निर्माण लिबाव:

./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!) चलाते हैं:

सूडो पोर्ट अपग्रेड --enforce- वेरिएंट x264 + asm

आपको इस तरह से sth मिलना चाहिए: [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX


3
पर मैक OSX, MacPorts और pkg-config का उपयोग कर के माध्यम से स्थापित निर्भरता नहीं पाए जाते हैं जब तक आप सेट वातावरण चर export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig'. Also, for the fun of it, you may add, to कॉन्फ़िगर , options: --extra-CFLAGS = मैं / opt / स्थानीय / --extra-LDFLAGS शामिल = एल / opt / स्थानीय / lib . Then the whole । / चमत्कृत रूप से ऊपर से 'कॉन्फ़िगर करें'!
एलेक्सी जूल

5
काढ़ा लिबाव स्थापित करें
स्टीवन सोरोका

1
दूसरे से अंतिम चरण में, lib-av बनाएँ। त्रुटि: नहीं पाया जा रहा है
चेस रॉबर्ट्स

@ चेस रॉबर्ट्स हाय चेस, मुझे भी वही समस्याएँ हैं जो गुठलियों से नहीं मिलती हैं। मैंने एक गाइड gist.github.com/morgant/1753095 का अनुसरण करने की कोशिश की, लेकिन अधिक त्रुटियों का सामना करना पड़ा। क्या आप कभी काम करने के लिए चीजों को प्राप्त करने में सक्षम थे?
जॉन

ठीक है, मुझे brew install libavकाम करने के लिए होमब्रे को फिर से स्थापित करना पड़ा ।
जॉन

1

बिना उन लोगों के लिए brew- और जब तक macports के लिए एक बंदरगाह के साथ आने के लिए libav, यहाँ OSX 10.8.5 पर स्रोत (लिबाव संस्करण 12_dev0, github से) पर libav स्थापित करने के लिए मेरे नोट्स हैं ।

मैंने जो मुख्य समस्या पेश की, वह यह थी कि लिबाव का उपयोग होता है sem_timedwait()(लिनक्स में semaphore.h) जिसे मैकोस में परिभाषित नहीं किया गया है।

इस पोस्ट https://stackoverflow.com/a/15163760 में उल्लेख है कि कीथ शॉर्ट्रिज ऑफ़ द ऑस्ट्रेलियन एस्ट्रोनॉमिकल ऑब्जर्वेटरी के सॉफ्टवेयर ग्रुप (धन्यवाद) ने मैकोस के लिए उक्त फ़ंक्शन का कार्यान्वयन लिखा है जो यहाँ पाया जा सकता है https:// githubattattie / libxbee3 / पेड़ / मास्टर / xsys_darwin

दो फ़ाइलों को डाउनलोड करें ${LIBAVDIR}/libavdeviceऔर फिर हेडर फ़ाइल में निम्न पंक्ति जोड़ें sem_timedwait.h:

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

फिर मेकफिल को संपादित करें ${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या वास्तव में सिस्टम के किसी अन्य भाग का जो लिबाव पुस्तकालयों से जुड़ता है जो अब 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


0

Https (कई, इन दिनों) पर होस्ट किए गए वीडियो के लिए, सुनिश्चित करें कि आप ओपनएसएसएल समर्थन के साथ एवोक का निर्माण करते हैं:

brew install libav --with-openssl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.