OSXにlibav / avconvをインストールする方法は?


32

OSXにはコマンドラインビデオ変換ユーティリティavconvertが付属していますが、このツールはlibavが提供するavconvと比較して機能が制限されています。

OS Xにavconvをインストールするにはどうすればよいですか?


3
Homebrewの場合: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

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

次のように取得する必要があります。 [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX


3
Mac OSXでは、MacPorts経由でインストールされ、pkg-configを使用する依存関係は、環境変数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 を設定するまで見つかりません. Then the whole 上記の/ lib。/ configure`は奇跡的にパスします!
アレクシー

5
libavの作成
スティーブン・ソロカ

1
最後から2番目の手順で、lib-avをビルドします。エラー:gnutlsが見つかりません
チェイスロバーツ14

@ChaseRobertsこんにちは、チェイス、私もgnutlsが見つからないという同じ問題を抱えています。gist.github.com/morgant/1753095のガイドに従ってみましたが、さらにエラーが発生しました。物事を機能させることができたことがありますか?
ジョン14

OK brew install libav仕事をするためにhomebrewを再インストールする必要がありました。
ジョン14

1

なしの場合brew、およびmacportsがのためのポートをlibav提供するまで、OSX 10.8.5にソース(libavバージョン12_dev0、githubから)にlibavをインストールするためのメモを以下に示します。

私が直面した主な問題は、libav sem_timedwait()がmacosで定義されていない(Linux ではsemaphore.h)を使用することでした。

この投稿https://stackoverflow.com/a/15163760は、オーストラリア天文台のソフトウェアグループのキース・ショートリッジ(ありがとう)が、ここにあるhttps://github.com/attieにあるmacos用の機能の実装を書いたことに言及しています/ libxbee3 / tree / master / xsys_darwin

2つのファイルをダウンロード${LIBAVDIR}/libavdeviceし、ヘッダーファイルに次の行を追加しますsem_timedwait.h

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

次に、Makefileを編集し、変数の最後に${LIBAVDIR}/libavdevice追加sem_timedwait.oOBJSます

構成してすべてを作る

準備できた。

レコードには、次の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、キースの実装のコピーのどこでも名前を変更することをお勧めします。また、他のシンボルがsem_timedwait.oからエクスポートされているかどうかを確認し、それらの名前も変更します。

以下は、キースショートリッジの実装の名前が変更された新しいシンボルですsem_timedwait()

sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith

_keith元の名前を取得するために削除)。(上記のバージョンの)sem_timedwait()in への唯一の参照libavはin jack.cです。


0

httpsでホストされているビデオ(最近では多くの場合)については、OpenSSLサポートを使用してavconvをビルドしてください。

brew install libav --with-openssl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.