Compile ffmpeg, mplayer, mencoder, mpv (with x265, libass, libbluray - Xcode 5.1+)

Okay, ich habe den Unterschied gesehen "--enable-bluray". Da währe ich selbst nicht drauf gekommen. Vielen Dank. Habe das ganze nun noch einmal durchgespielt, der Aufruf funktioniert nun auch bei mir.
Keine Ahnung weswegen die Option nicht automatisch erkannt wurde, kann es mir nur mit dem statischen Build erklären. Aber schön dass es jetzt funktioniert.

Code:
configure: WARNING: unrecognized options: --enable-static, --disable-shared
Ist das Richtig so? Da kommt bei mehreren teilen vor.
Danke für den Hinweis. Nein es ist nicht richtig, aber es ist eher ein kosmetisches Problem, da die überflüssigen Optionen ja beim Kompilierungsprozess ignoriert werden. ffmpeg dagegen bricht ab wenn eine nicht bekannte Option aufgeführt wird.

@ Kaito

Schon interessant dass es da Unterschiede zwischen statischem und dynamischem Build bezüglich der Notwendigkeit von Optionen bzw. Autoerkennung gibt.
 
EDIT: Das es hier um DRM umgehen geht war mir nicht klar daher habe ich das einmal raus genommen...
 
Zuletzt bearbeitet:
Kannst mir hier helfen und sagen wo mein Fehler liegt?
Keine Ahnung ob dir klar ist was du machst und ich denke jetzt verstehe ich was du mit "interessanten Sachen" meinst. Hier ging es um ffmpeg, mplayer, mpv und nicht um die Anleitung zur widerrechtlichen Umgehung von DRM.

Ich empfinde es inakzeptabel wenn du meinen gut gemeinten Thread zum Thema selber compilieren von ffmpeg, mplayer, mpv für deine "interessanten Sachen" missbrauchst. Dementsprechend ist das auch mein letzter Beitrag hier.
 
Ähm, Nein mir war dass nicht klar das es hier um DRM Umgehen geht oder diese teile das machen... Habe das daher raus genommen...
 
Hö, das sind doch die gängigen freien Bibs für DVD Support in Mplayer/VLC/<alles andere>? Hab ich was verpasst?
 
Habe in der Anleitung noch ein kleinen Punkt gefunden... In den Benötigten Dateien wird "xz-5.0.5.tar.gz" aufgeführt, später wird es aber weder entpackt noch gebaut... Das ganze wird für die paar Dateien benötigt die mit XZ gepackt wurden.

Code:
# libiconv
cd ${CMPL} 
tar xzpf ../source/xz-5.0.5.tar.gz
cd xz-5.0.5
/configure --prefix=${TARGET} 
make -j 4 && make install
 
gnu tar kann xz auch mit der option -j …
 
Also wir haben uns einmal dran gemacht ein Script daraus zu bauen... Leider macht es noch ein paar Probleme...

Script: (Viel zu lang um es zu posten) http://l.bitcasa.com/zYV1JEkc

1. Problem: Bei einem User bleibt es immer bei "libass" stehen:

Code:
Building libass
-n -e 
Running autoreconf...
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /Volumes/Ramdisk/bin/autoconf --force
configure.ac:7: error: possibly undefined macro: AC_PROG_LIBTOOL
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /Volumes/Ramdisk/bin/autoconf failed with exit status: 1
configure: WARNING: unrecognized options: --enable-static, --disable-shared
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
Fatal error occurred, aborting build.
AKFs-MacPro:~ Massaguana$

Bei einem anderen user passiert das nicht, keine Ahnung weshalb.

2. Problem: Bei "ffmpeg" werden die Header nicht gefunden weshlab gsm & co. nicht reinkompiliert werden können...

Habt Ihr da eine Idee?

Grüße
Massaguana
 
zu 2.) du musst bei den compilier/linker optionen die zusätzlich header/libs mit angeben, wenn die nicht in den standardpfaden liegen.
 
Die Header liegen in "${TARGET}include" aber ffmpeg sieht die nicht...

So sieht der Aufruf aus:
Code:
./configure pkg_config="pkg-config --static" --prefix=${TARGET}
--cc=clang --cxx='clang++' --extra-cflags="-I${TARGET}include/
-DLIBTWOLAME_STATIC -DAL_LIBTYPE_STATIC"
--extra-ldflags="-L${TARGET}lib"  --as=yasm --disable-shared
--enable-ffplay --enable-static --disable-ffserver --enable-gpl
--enable-pthreads --enable-postproc --enable-gray --enable-libmp3lame
--enable-libtheora --enable-libvorbis --enable-libx264
--enable-libx265 --enable-libxvid --enable-libspeex --enable-bzlib
--enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libxavs --enable-nonfree --enable-version3
--enable-libvo-amrwbenc --enable-libvpx --enable-libgsm
--enable-libopus --enable-libtwolame --enable-openal --enable-libsoxr
--enable-libfribidi --enable-libwavpack --enable-libvidstab
--enable-libilbc --enable-libass --enable-fontconfig
--enable-libbluray --enable-runtime-cpudetect

Diese Exports sind eingestellt:
Code:
export TARGET="/Volumes/${VOLNAME}/"
	export CMPL="${TARGET}compile"
	export SOURCES="${HOME}/sources"
	export PATH=${TARGET}bin:$PATH
	export CC="clang"
	export CPP="clang -E"
	export CXX="clang++"
	export CXXCPP="clang++ -E"
	export LDFLAGS="-stdlib=libc++"
	export CXXFLAGS="-stdlib=libc++"
	export PKG_CONFIG="pkg-config --static"
	export libdir="${TARGET}lib"
	export PKG_CONFIG_PATH="${TARGET}lib/pkgconfig"
	export LDFLAGS="-L${TARGET}lib $LDFLGS"
	export CFLAGS="-I${TARGET}include $CFLAGS"

dazu noch:
Code:
--extra-cflags="-I${TARGET}include/ -DLIBTWOLAME_STATIC
-DAL_LIBTYPE_STATIC" --extra-ldflags="-L${TARGET}lib"
 
1. Problem: Bei einem User bleibt es immer bei "libass" stehen
Versucht der auch auf ML/Mavericks mit 5.1.1 zu kompilieren? Wenn nicht, ist es logisch.
2. Problem: Bei "ffmpeg" werden die Header nicht gefunden weshalb gsm & co. nicht reinkompiliert werden können...
Was genau wollt ihr machen? Wieso habt ihr bei den ffmpeg-Optionen andere Sachen hinzugefügt? Unter Xcode 5.1.1 wurde doch alles gefunden/kompiliert. Ihr werdet mit ganz großer Wahrscheinlichkeit kein allgemein funktionierendes Skript erstellen können das mit verschiedensten Xcode-Versionen funktioniert. Fürchte schon dass mit Xcode 6 etliche Änderungen vorgenommen werden müssen.
 
Zu 1. Das bin ich selbst. Ich nutze Mavericks 10.9.4 und Xcode 5.1.1

Zu 2: Xcode 5.1.1 installiert und clang --version sagt: Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) Target: x86_64-apple-darwin13.3.0 Thread model: posix

Ne Frage zu Xcode. Kenne das Tool nicht wirklich, also nicht gleich hauen wenn ich dumme Fragen stelle. Aber kann man da mit das Script schritt für schritt laufen lassen um zu sehen welche Zeile code das Problem verursacht? Weil derzeit muss ich es immer komplett laufen lassen was durchaus mal 15min dauert...
 
Zuletzt bearbeitet:
Ne Frage zu Xcode. Kenne das Tool nicht wirklich, also nicht gleich hauen wenn ich dumme Fragen stelle.
Aber auch nicht wundern, dass nicht jede Frage beantwortet wird, denn du scheinst wenig zu wissen, aber alles machen zu wollen. Von Xcode brauchst du letztendlich nur die Command-Line-Tools um den aktuellen Compiler und die nötigen Libraries zu haben.

Aber kann man da mit das Script schritt für schritt laufen lassen um zu sehen welche Zeile code das Problem verursacht? Weil derzeit muss ich es immer komplett laufen lassen was durchaus mal 15min dauert...
Du könntest auch dein Skript komplett abspecken und nur die für libass nötigen Dinge kompilieren lassen. Oder eben ganze Blöcke kopieren und ins Terminal pasten. Sind die ausgeführt den nächsten Block (können auch mehrere Befehle sein) kopieren und reinpasten.

Du hast wenig Erfahrung und wirst höchstwahrscheinlich viele Stunden benötigen um die Fehler zu finden - da spreche ich aus eigener und leidvoller Erfahrung. Die einfachste Lösung wäre eine VM mit Mavericks aufzusetzen und dort auf einem absolut sauberen System (eine mögliche Fehlerursache für libass-Probleme ist z.B. ein installiertes X11-System bzw. X11-Header) das Skript laufen lassen, denn die Anleitung funktioniert. Immer noch mehr Optionen einfügen wird dagegen dein Problem vermutlich nicht lösen.
 
Massaguana, das Problem ist nicht, dass in irgendeiner Zeile des Skriptes eine Art Programmier-/Syntaxfehler ist, das Problem liegt in deiner Umgebung, die mit den Annahmen des Skriptes nicht übereinstimmt und dadurch Probleme verursacht. Du musst entweder deine Umgebung auf das Skript, oder das Skript deiner Umgebung anpassen. Natürlich gilt es erst rauszufinden was das genaue Problem ist.
Da libass aus-errort sehe ich auch keinen Grund weshalb du ständig alles laufen lassen willst, wenn es doch genügt nur libass zu testen.
 
Ich hatte das script auch einmal in einer VM laufen lassen. Neu und soweit nackt... Da bleibt das script schon viel früher hängen...

habe das mit dem script erstmal aufgegeben... Manuell funktioniert es prima... auch meine Veränderungen/ Erweiterungen funktionieren wie es scheint...
 
Ich hatte das script auch einmal in einer VM laufen lassen. Neu und soweit nackt... Da bleibt das script schon viel früher hängen...
Dann hast du irgendwo Fehler im Skript und müsstest dir einfach die komplette Ausgabe beim jeweiligen Kompilierungsprozess der einzelnen Libs anschauen. Im Prinzip hatte ich ein nahezu vollständiges Skript gepostet - bis auf eben den Schritt bei dem die benötigten Dateien in den Ordner /Volumes/Ramdisk/source gepostet werden und danach die erzeugten Ordner (bin/...) von der Ramdisk runterkopiert werden.
habe das mit dem script erstmal aufgegeben... Manuell funktioniert es prima... auch meine Veränderungen/ Erweiterungen funktionieren wie es scheint...
Wirklich? ;)
 
News: Mit dem XCode Update auf 6.1.1 klappt es aktuell nicht mehr den "mpv" zu bauen. Es kommt zu einer Fehlermeldung:

Das ist mein code, ab .waf macht der Probleme
Code:
# mpv
cd ${CMPL} 
curl -L -O -s https://github.com/mpv-player/mpv/archive/master.zip
unzip -q master.zip
cd mpv-master
./bootstrap.py
export PKG_CONFIG=pkg-config
./waf configure  --prefix=${TARGET} --enable-static
./waf build
./waf install

Meldung:
Code:
MacPro:mpv-master Massaguana$ ./waf configure  --prefix=${TARGET} --enable-static
Setting top to                           : /Volumes/Ramdisk/compile/mpv-master 
Setting out to                           : /Volumes/Ramdisk/compile/mpv-master/build 
Checking for waf version in 1.8.1-1.9.0  : ok 
Checking for program '/Volumes/Ramdisk/-gcc' : clang 
Checking for program '/Volumes/Ramdisk/-pkg-config' : pkg-config 
Checking for program '/Volumes/Ramdisk/-ar'         : not found 
Could not find the program ['/Volumes/Ramdisk/-ar']
(complete log in /Volumes/Ramdisk/compile/mpv-master/build/config.log)
MacPro:mpv-master Massaguana$

Das steht in dem logfile dazu:
Code:
# project  configured on Thu Dec  4 16:46:06 2014 by
# waf 1.8.1 (abi 98, python 20705f0 on darwin)
# using ./waf configure --prefix=/Volumes/Ramdisk/ --enable-static
#
----------------------------------------
Setting top to
/Volumes/Ramdisk/compile/mpv-master
----------------------------------------
Setting out to
/Volumes/Ramdisk/compile/mpv-master/build
----------------------------------------
Checking for waf version in 1.8.1-1.9.0
ok
--------------------------------------------
Checking for program '/Volumes/Ramdisk/-gcc'
clang
find program='clang' paths=['/Volumes/Ramdisk//bin', '/opt/local/bin', '/opt/local/sbin', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin', '/opt/X11/bin', '/usr/local/git/bin', '/usr/local/MacGPG2/bin'] var='CC' -> ['clang']
---------------------------------------------------
Checking for program '/Volumes/Ramdisk/-pkg-config'
pkg-config
find program='pkg-config' paths=['/Volumes/Ramdisk//bin', '/opt/local/bin', '/opt/local/sbin', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin', '/opt/X11/bin', '/usr/local/git/bin', '/usr/local/MacGPG2/bin'] var='PKG_CONFIG' -> ['pkg-config']
---------------------------------------------------
Checking for program '/Volumes/Ramdisk/-ar'
not found
find program=['/Volumes/Ramdisk/-ar'] paths=['/Volumes/Ramdisk//bin', '/opt/local/bin', '/opt/local/sbin', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin', '/opt/X11/bin', '/usr/local/git/bin', '/usr/local/MacGPG2/bin'] var='AR' -> None
from /Volumes/Ramdisk/compile/mpv-master: Could not find the program ['/Volumes/Ramdisk/-ar']

-ar ist soweit mir bekannt Xcode oder? Hat da wer eine Idee zu?

Grüße
Massaguana
 
also das sollte in /usr/bin liegen, wenn du die command line tools installiert hast…
solltest du ja auch haben, sonst hättest ja auch kein clang…
falls es nicht /usr/bin ist, dann
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

das command line tools updates hast auch beim Xcode 6.1.1 update gemacht?
 
Ich habe alle Updates die mir angeboten wurden gemacht. Wobei XCode nur 1 Update war...

EDIT: Ich habe nun mal XCode Deinstalliert und Neu Installiert, danach habe ich die Command line tools manuell neu Installiert...

Leider keine Verbesserung.
 
Blöde Frage, aber hast du einen halbwegs sinnvollen Grund dafür diesen Weg zum kompilieren von mpv zu nutzen?
Es wäre vermutlich deutlich einfacher mit https://github.com/mpv-player/homebrew-mpv, zumal dort noch eine Reihe anderer, mpv zuträglicher, Formulas sind, wie f3kdb/vapoursynth, die in der Anleitung hier nicht enthalten sind.
 
Zurück
Oben Unten