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

Nein, hat kein besonderen Grund... bin nur der Anleitung von Harry3 gefolgt... Ich schaue mal ob ich die Version aus dem Link auch nutzen kann...

Aber aktuell will das ganze Prozedere nicht so klappen wie sonst... überall hagelt es Fehler das er was nicht findet oder sonst was... /configure not found usw. Ich werde das Morgen Ausgeschlafen noch mal von vorne Probieren...
 
Darum hat der Mensch sich Packagemanager gebaut, die sich darum kümmern sollen, dass so was nicht passiert. Für OSX sind das hauptsächlich homebrew/macports/fink/...
Für mpv kannst du fertige Builds hier laden: http://sva.wakku.to/~chris/mpv_builds/
Wenn du mehr Features in mpv willst, empfehle ich das Kompilieren via Homebrew über die Formulas des eben schon verlinkten Repos: https://github.com/mpv-player/homebrew-mpv (da kannst du dann alle Features nach belieben aktivieren/deaktivieren)

Das selbst statisch zu kompilieren macht eigentlich nur Sinn, wenn du die Binaries auf dem einen Rechner bauen und auf dem anderen benutzen willst, wobei beide unterschiedliche Konfigurationen haben. Aber auch da kann man brew benutzen, das extra mit Optionen kommt, die einem dies ermöglichen.
Natürlich kann man das auch per Hand (wie hier) machen, das sei jedem frei. Aber in deinem Fall sehe ich nur wenig Gründe es sich selbst schwerer zu machen, als nötig.
 
Und genau das passiert mit den Binaries. Diese werden auf Diversen fremden Systemen genutzt. Daher muss ich diese Statisch selbst bauen. Für mpv habe ich immerhin eine neue quelle aufgetan, die kann ich nutzen.
 
Nein, das stimmt bei mpv nicht, da die (dynamischen) Libs im Bundle sind, wie du es von vorher gepostetem Link laden kannst.
Alles was wichtig ist, ist die Kompatibilität. Bei brew musst du Dependencies mit --build-bottle kompilieren, um die maximale Kompatibilität mit älteren OSX Versionen zu erreichen.
Das Skript in mpv, das das Bundle erzeugt, kopiert dort dann alle dyn. Dependencies rein und modifiziert deren Pfad entsprechend. Solche Bundles können dann problemlos kopiert werden. So funktionieren .app Bundles auf OSX allgemein, deswegen gibt es praktisch keine Installer mehr, alles ist im Bundle.

Wenn es statisch sein soll, gibt es https://github.com/mpv-player/mpv-build.
Das ist eine Sammlung an Helferskripten. Das baut mpv und Dependencies wie ffmpeg automatisch statisch. Ursprünglich für Linux gebaut, funktioniert es auch auf OSX. Sonderlich viel Support gibt es hier aber nicht für OSX, da dafür bereits die brew Formulas angeboten werden.
 
Irgendwie hat sich noch viel mehr Verändert... Und wie gesagt ich benötige nur noch ffmpeg und mplayer... ffmpeg hat nun funktioniert, nur bei mplayer sind funktionen rausgefolgen die ich benötige um es in Deutschland Legal zu halten. Noch keine Lösung in sicht...
 
Diesen Post verstehe ich nicht/kann ich nicht einordnen. War das eine Frage?
 
Das war eine Feststellung. Wenn ich eine Lösung dafür habe werde ich diese hier posten...
 
Darf man fragen was das Problem an mplayer bezüglich Legalität ist? Und wieso mplayer, ich dachte du wolltest mpv kompilieren?
 
Sorry wenn ich für durcheinander sorge... :rolleyes:

mpv muss ich nicht mehr bauen, habe ne quelle gefunden die das schon so Anbietet wie ich es benötige. Daher ist der Focus nur noch auf ffmpeg & mplayer.

Das Problem mit der Legalität sind die Bibliotheken rund um "libdvdcss" und co. Diese können es ermöglichen den CSS Kopierschutz von DVD´s zu entfernen, was man für Privat kompilieren darf. Wenn man das aber Veröffentlicht ist das Illegal. Daher nutze ich zum bauen den Parameter "-ldvdcss", damit wird das abgeschaltet ich kann aber weiter andere "Fähigkeiten" davon nutzen. Wir nutzen es um images öffnen zu können, die haben kein Kopierschutz. Denn ohne bekommt man read-only Medien nicht auf...

Da nun "-disable-dvdread-internal" entfernt wurde schaffe ich es aktuell nicht das Teil "Legal" zu bauen... das ist das ganze Problem betreffend mplayer.

Da ich es selbst noch nicht ganz Verstanden habe schließe ich nicht aus hier Teilweise das Thema Falsch wiedergegeben zu haben.
 
Hm.
Ich bin mir das jetzt nicht ganz sicher was da bei dir passiert, aber das weiß ich:
-ldvdcss deaktiviert gar nichts, im Gegenteil, das ist die explizite Aufforderung die Binary mit der libdvdcss zu linken.

Mplayer kann für DVDs mehrere Bibliotheken nutzen: libdvdread (lesen), libdvdnav (lesen) und libdvdcss (entschlüsseln). Wenn du keine libdvdcss auf dem Rechner hast, dann kann configure auch keine finden. Das Problem ist, dass Mplayer selbst aber eine Version von libdvdread und libdvdcss mitbringt, deswegen hast du --disable-dvdread-internal benötigt (die mitgebrachte Version deaktivieren). Diese Option wurde jetzt zwar entfernt, aber nur weil die internen libdvdread/libdvdcss ebenfalls entfernt wurden: http://bazaar.launchpad.net/~vcs-imports/mplayer/trunk/revision/37224

D.h.: Mplayer bringt keinen DVD Support "von sich aus" mehr mit, du musst dir die nötigen Bibliotheken selbst besorgen. Das heißt aber auch, dass du dir nun einfach die libdvdread holen kannst, damit Mplayer konfigurieren & bauen und die rechtlich problematische libdvdcss außen vor lassen.
 
Okay. Danke für deine Info/ Korrektur.

Konnte den mplayer nun Erfolgreich bauen. So sieht das ganze aus:

Code:
# Mplayer/Mencoder
cd ${CMPL}
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
cd mplayer
./configure --prefix=${TARGET} --extra-cflags="-I${TARGET}include/ -DLIBTWOLAME_STATIC -DAL_LIBTYPE_STATIC" --extra-ldflags="-L${TARGET}lib" --extra-libs='-lxml2 -llzma -lfreetype -lz -liconv -lpthread' --enable-menu --enable-bluray --enable-gl --enable-runtime-cpudetection
make -j 4 && make install
 
Absichtlich ohne dvdread?
 
Ja, denn mir wurde gesagt das die neuen mplayer Versionen dvdread von selbst finden und man das nicht konfigurieren muss. Und da soweit alles funktioniert scheint das wohl zu stimmen.
 
Das ist richtig, aber da in der Ursprungsanleitung kein dvdread enthalten ist, ging auch jetzt nicht davon aus, dass du dir das vorher noch geholt hast. ;)
 
Ja, ich habe die Anleitung von Harry3 erweitert und für meine Verwendung angepasst... dachte das ich meine Settings irgendwo in dem Tread gepostet habe...

Ich Versuche noch immer das ganze in ein Automatisch laufendes Script zu bekommen, schaffe es aber nicht da immer sonderbare Fehler kommen. Je nach Verwendetem Computer unterschiedliche... Bin da allerdings auch total unerfahren...
 
Hier einmal eine kleine Erweiterung zum bauen von x265. Es geht darum auch andere Versionen bauen zu können...

Code:
[COLOR=#333333]cd ${CMPL} [/COLOR]hg clone [URL]https://bitbucket.org/multicoreware/x265[/URL]
[COLOR=#FF0000]cd x265
hg update 1.4
cd source
[/COLOR]cmake -DCMAKE_INSTALL_PREFIX:PATH=${TARGET} -DENABLE_SHARED=NO . [COLOR=#333333]make -j 4 && make install[/COLOR]
 
Hat das schon mal wer gemacht ffmpeg mit nvenc support zu bauen?
 
Hauptproblem ist aktuell das er die Datei nvEncodeAPI.h nicht gefunden wurde. Leider keine Ahnung wo der die denn suchst... haben tue ich diese Datei...
so sieht es im Terminal aus:

Code:
MacPro:ffmpeg Massaguana$ ./configure pkg_config="pkg-config --static" --prefix=${TARGET} --cc=clang --cxx='clang++' --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-version3 --enable-libvo-aacenc --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 --enable-nonfree --enable-nvenc
ERROR: nvEncodeAPI.h not found.

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solve the problem.
MacPro:ffmpeg Massaguana$
 
Also ffmeg mit nvenc Support zu bauen klappt nun auch:

Code:
# FFMPEG mit NVenc
cd ${CMPL}
sed -i.bak 's/-L${libdir} -lfontconfig/-L${libdir} -lfontconfig -lfreetype -liconv -lxml2/' $PKG_CONFIG_PATH/fontconfig.pc
curl -O http://www.ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjpf ffmpeg-snapshot.tar.bz2
cd ffmpeg
export LDFLAGS="-L${TARGET}/lib $LDFLGS"
export CFLAGS="-I${TARGET}/include $CFLAGS"
export CFLAGS="-I/Volumes/Ramdisk/source"
./configure pkg_config="pkg-config --static" --prefix=${TARGET} --cc=clang --cxx='clang++' --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-version3 --enable-libvo-aacenc --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 --enable-nonfree --enable-nvenc
make -j 4 && make install
 
Mit xcode 8.1 gibt es mit der bisherigen Methode Probleme wenn man fonconfig bauen möchte...

Damit das läuft muss es nun so aussehen:

Code:
# fontconfig
cd ${CMPL} 
tar xjpf ../source/fontconfig-2.12.1.tar.bz2
cd fontconfig-2.12.1
ac_cv_func_basename_r=no ac_cv_func_clock_getres=no ac_cv_func_clock_gettime=no ac_cv_func_clock_settime=no ac_cv_func_dirname_r=no ac_cv_func_getentropy=no ac_cv_func_mkostemp=no ac_cv_func_mkostemps=no ./configure --prefix=${TARGET} --with-add-fonts=/Library/Fonts,~/Library/Fonts --enable-iconv --with-libiconv-lib=${TARGET}/lib --with-libiconv-includes=${TARGET}/include --with-libiconv=${TARGET}/bin --enable-static --enable-shared=no --enable-libxml2 --disable-docs
#./configure --prefix=${TARGET} --with-add-fonts=/Library/Fonts,~/Library/Fonts --enable-iconv --with-libiconv-lib=${TARGET}/lib --with-libiconv-includes=${TARGET}/include --with-libiconv=${TARGET}/bin --enable-static --enable-shared=no --enable-libxml2 --disable-docs
make clean
make -j 4 && make install

Siehe dazu: https://www.macuser.de/threads/probleme-beim-bauen-von-fontconfig.762983/

Danke an Kaito der das problem gelöst hat...
 
Zurück
Oben Unten