OSX ist mit einer Video - Konvertierungsprogramm Befehlszeile avconvert aber dieses Tool bietet eingeschränkte Funktionalität im Vergleich zu dem avconv bereitgestellt durch 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
Richten Sie die Abhängigkeiten mit MacPorts (oder anderen Paketmanagern wie Homebrew ) ein:
x264 +asmEs scheint erforderlich zu sein, damit es funktioniert cpu-capabilities. Wenn Sie sie also nicht zum [libx264 @ 0x7fe66101a800] using cpu capabilities: none!Laufen bringen (z. B. ):
sudo port upgrade --enforce-variant x264 + asm
Sie sollten etw wie folgt bekommen: [libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
Unter Mac export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig'. Also, for the fun of it, you may add, to OS , options: X werden Abhängigkeiten, die über MacPorts installiert wurden und pkg-config verwenden, erst gefunden, wenn Sie die Umgebungsvariable ./configure --extra-cflags = -I / opt / local / include --extra-ldflags = -L / opt / local festlegen / lib . Then the whole . / configure` oben passiert auf wundersame Weise!
Alexy
5
Brew Install Libav
Steven Soroka
1
Erstellen Sie im vorletzten Schritt lib-av. FEHLER: gnutls nicht gefunden
Chase Roberts
@ChaseRoberts Hallo Chase, ich habe auch das gleiche Problem mit gnutls nicht gefunden. Ich habe versucht, einer Anleitung gist.github.com/morgant/1753095 zu folgen, bin jedoch auf weitere Fehler gestoßen. Konnten Sie jemals etwas zum Laufen bringen?
John
ok ich musste nur homebrew neu installieren, um an die arbeit brew install libavzu gehen.
John
1
Für diejenigen ohne brew- und bis macports einen Port für vorschlägt libav, hier sind meine Hinweise zur Installation von libav unter OSX 10.8.5 aus dem Quellcode (libav-Version 12_dev0, von github).
Das Hauptproblem, mit dem ich konfrontiert war, war die Verwendung von libav sem_timedwait()(semaphore.h unter Linux), die in macos nicht definiert ist.
WARNUNG: Ich kann nicht sagen oder garantieren, ob die besagte Implementierung sem_timedwait()der richtigen ist und / oder keine Nebenwirkungen auf die Funktionsweise libavoder in der Tat auf einen anderen Teil des Systems hat, der auf libav-Bibliotheken verweist, in denen jetzt eine sem_timedwait()Implementierung vorhanden ist !!!! Für letztere kann ich vorschlagen, sem_timedwait()überall in Ihrer Kopie libavund in Keiths Implementierung umzubenennen. Überprüfen Sie auch, ob andere Symbole aus sem_timedwait.o exportiert werden, und benennen Sie sie ebenfalls um.
Hier sind die neuen, umbenannten Symbole aus Keith Shortridges Implementierung von sem_timedwait():
brew install libav
.Antworten:
Einfach mit brew installieren:
quelle
Besorgen Sie sich zuerst die Bibliothek:
Richten Sie die Abhängigkeiten mit MacPorts (oder anderen Paketmanagern wie Homebrew ) ein:
Erstelle libav:
Dann kannst du laufen
avconv
:x264 +asm
Es scheint erforderlich zu sein, damit es funktioniertcpu-capabilities
. Wenn Sie sie also nicht zum[libx264 @ 0x7fe66101a800] using cpu capabilities: none!
Laufen bringen (z. B. ):Sie sollten etw wie folgt bekommen:
[libx264 @ 0x7fc62401b600] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
quelle
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig'. Also, for the fun of it, you may add, to
OS, options:
X werden Abhängigkeiten, die über MacPorts installiert wurden und pkg-config verwenden, erst gefunden, wenn Sie die Umgebungsvariable ./configure --extra-cflags = -I / opt / local / include --extra-ldflags = -L / opt / local festlegen / lib. Then the whole
. / configure` oben passiert auf wundersame Weise!brew install libav
zu gehen.Für diejenigen ohne
brew
- und bis macports einen Port für vorschlägtlibav
, hier sind meine Hinweise zur Installation von libav unter OSX 10.8.5 aus dem Quellcode (libav-Version12_dev0
, von github).Das Hauptproblem, mit dem ich konfrontiert war, war die Verwendung von libav
sem_timedwait()
(semaphore.h unter Linux), die in macos nicht definiert ist.In diesem Beitrag wird unter https://stackoverflow.com/a/15163760 darauf hingewiesen, dass Keith Shortridge von der Softwaregruppe des Australian Astronomical Observatory (danke) eine Implementierung dieser Funktion für MacOS geschrieben hat. Sie finden sie hier https://github.com/attie / libxbee3 / tree / master / xsys_darwin
Laden Sie die beiden Dateien herunter
${LIBAVDIR}/libavdevice
und fügen Sie dann die folgende Zeile in die Header-Datei einsem_timedwait.h
:int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);
Bearbeiten Sie dann das Makefile
${LIBAVDIR}/libavdevice
und fügen Sie essem_timedwait.o
am Ende derOBJS
Variablen hinzukonfigurieren und alles machen
Du bist startklar.
Für die Aufzeichnung habe ich den folgenden Befehl configure verwendet:
./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
WARNUNG: Ich kann nicht sagen oder garantieren, ob die besagte Implementierung
sem_timedwait()
der richtigen ist und / oder keine Nebenwirkungen auf die Funktionsweiselibav
oder in der Tat auf einen anderen Teil des Systems hat, der auf libav-Bibliotheken verweist, in denen jetzt einesem_timedwait()
Implementierung vorhanden ist !!!! Für letztere kann ich vorschlagen,sem_timedwait()
überall in Ihrer Kopielibav
und in Keiths Implementierung umzubenennen. Überprüfen Sie auch, ob andere Symbole aus sem_timedwait.o exportiert werden, und benennen Sie sie ebenfalls um.Hier sind die neuen, umbenannten Symbole aus Keith Shortridges Implementierung von
sem_timedwait()
:sem_timedwait_keith, timeoutThreadMain_keith, triggerSignal_keith, ignoreSignal_keith, timeoutThreadCleanup_keith
(entfernen
_keith
, um die ursprünglichen Namen zu erhalten). Der einzige Verweis aufsem_timedwait()
inlibav
(für diese Version) ist injack.c
.quelle
Stellen Sie für Videos, die auf https gehostet werden (viele heutzutage), sicher, dass Sie avconv mit OpenSSL-Unterstützung erstellen:
quelle