Làm cách nào để cài đặt libav / avconv trên OSX?


32

OSX đi kèm với tiện ích chuyển đổi video dòng lệnh avconvert nhưng công cụ này cung cấp chức năng hạn chế so với avconv do libav cung cấp .

Làm cách nào để cài đặt avconv trên OS X?


3
Với Homebrew : brew install libav.
Mathias Bynens

Câu trả lời:



17

Đầu tiên lấy thư việ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

Thiết lập các phụ thuộc với MacPorts (hoặc các trình quản lý gói khác như Homebrew ):

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

Xây dựng 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

Sau đó, bạn có thể chạy avconv:

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

  • x264 +asmdường như được yêu cầu để làm việc cpu-capabilities, vì vậy nếu bạn không chạy chúng (tức là [libx264 @ 0x7fe66101a800] using cpu capabilities: none!) .

nâng cấp cổng sudo - biến thể lực x264 + asm

Bạn sẽ nhận được sth như: [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX


3
Trên Mac OSX, phụ thuộc cài đặt qua MacPorts và sử dụng pkg-config không được tìm thấy cho đến khi bạn biến môi trường thiết lập 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` ở trên vượt qua một cách kỳ diệu!
Alexy

5
bia cài đặt libav
Steven Soroka

1
Ở bước thứ hai đến bước cuối cùng, xây dựng lib-av. LRI: không tìm thấy hạt dẻ
Chase Roberts

@ChaseRoberts Hi Chase, tôi cũng gặp vấn đề tương tự với những hạt dẻ không tìm thấy. Tôi đã thử làm theo hướng dẫn gist.github.com/morgant/1753095 nhưng gặp nhiều lỗi hơn. Bạn đã bao giờ có thể làm cho mọi thứ để làm việc?
Giăng

ok tôi chỉ cần cài đặt lại homebrew để đi brew install libavlàm.
Giăng

1

Đối với những người không có brew- và cho đến khi macports đưa ra một cổng cho libav, đây là những lưu ý của tôi để cài đặt libav trên OSX 10.8.5 từ nguồn (phiên bản libav 12_dev0, từ github).

Vấn đề chính tôi gặp phải là libav sử dụng sem_timedwait()(semaphore.h trong linux) không được xác định trong macos.

Bài đăng này https://stackoverflow.com/a/15163760 đề cập rằng Keith Shortridge thuộc nhóm phần mềm của Đài quan sát thiên văn Úc (cảm ơn) đã viết một triển khai chức năng nói cho macos có thể tìm thấy ở đây https://github.com/attie / libxbee3 / cây / chủ / xsys_darwin

Tải xuống hai tệp vào ${LIBAVDIR}/libavdevicevà sau đó thêm dòng sau vào tệp tiêu đề sem_timedwait.h:

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

Sau đó chỉnh sửa Makefile trong ${LIBAVDIR}/libavdevicevà thêm sem_timedwait.ovào cuối OBJSbiến

cấu hình và làm cho tất cả

bạn tốt để đi

Đối với bản ghi, tôi đã sử dụng lệnh configure sau:

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

CẢNH BÁO: Tôi không thể nói hoặc đảm bảo việc triển khai nói trên sem_timedwait()có đúng hay không và sẽ không có tác dụng phụ đối với hoạt động của libavhoặc thực sự là bất kỳ phần nào khác của hệ thống liên kết đến các thư viện libav hiện đang sem_timedwait()triển khai trong đó !!!! Để sau này tôi có thể đề nghị đổi tên sem_timedwait()ở mọi nơi trong bản sao của bạn libavvà triển khai của Keith. Đồng thời kiểm tra xem có bất kỳ biểu tượng nào khác được xuất từ ​​sem_timedwait.o và đổi tên chúng không.

Dưới đây là các biểu tượng mới, được đổi tên từ triển khai của Keith Shortridge về sem_timedwait():

sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith

(loại bỏ _keithđể có được tên gốc). Tham chiếu duy nhất sem_timedwait()trong libav(cho phiên bản đã nói) là trong jack.c.


0

Đối với các video được lưu trữ trên https (nhiều, những ngày này), hãy đảm bảo bạn xây dựng avconv với hỗ trợ OpenSSL:

brew install libav --with-openssl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.