1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

MPlayer/MEncoder mit Xcode 3.0 kompilieren

Dieses Thema im Forum "OS X-Developer" wurde erstellt von dandjo, 23.02.08.

  1. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Hallo Leute,

    ich quäle mich nun schon die ganze Woche herum, die Kommandozeilenversion von MPlayer und MEncoder (mit x264 enabled) mit Xcode 3.0 und OS X 10.5.2 zu kompilieren. Ich bekomme es einfach nicht gebacken, der Compiler steigt mir immer mit einem Error 1 aus (irgendetwas mit libx264.o files). Ohne x264 enabled compiliert er wunderbar. Was ich mache ist folgendes:

    svn co trunk mplayer (von mplayer.hu)
    svn co trunk x264 (von videolan.org)

    cd x264
    ./configure
    make
    sudo make install
    cd ..

    cd mplayer
    ./configure --enable-x264
    make
    sudo make install


    Hat es schon jemand geschafft, den MEncoder mit x264 unter OS X 10.5.2 zu kompilieren? Leider gibt es anscheinend keine aktuellen Binaries (die ffmpegX binaries sind gaga, unterstützen nichtmal interlaced encoding). Danke schon mal.

    LG.
    dandjo
     
  2. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Das ist die Fehlermeldung, mit der der Compiler aussteigt:

    cc -o mplayer mplayer.o m_property.o mp_fifo.o mp_msg.o mixer.o parser-mpcmd.o command.o asxparser.o codec-cfg.o cpudetect.o edl.o find_sub.o get_path.o m_config.o m_option.o m_struct.o mpcommon.o parser-cfg.o playtree.o playtreeparser.o spudec.o sub_cc.o subopt-helper.o subreader.o vobsub.o unrar_exec.o libvo/libvo.a libao2/libao2.a input/libinput.a libmpcodecs/libmpcodecs.a libaf/libaf.a libmpdemux/libmpdemux.a stream/stream.a libswscale/libswscale.a libvo/libosd.a libavformat/libavformat.a libavcodec/libavcodec.a libavutil/libavutil.a libpostproc/libpostproc.a loader/libloader.a mp3lib/libmp3.a liba52/liba52.a libmpeg2/libmpeg2.a libfaad2/libfaad2.a tremor/libvorbisidec.a dvdread/libdvdread.a libdvdcss/libdvdcss.a libass/libass.a osdep/libosdep.a -lXext -lX11 -lXss -lXv -lXinerama -lXxf86vm -framework OpenAL -L/usr/X11R6/lib/ -L/usr/local/lib -liconv -lncurses -framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework IOKit -lpng -lz -framework IOKit -L/usr/local/lib -lfreetype -lz -lfontconfig -lz -lm
    Undefined symbols:
    "_x264_nal_encode", referenced from:
    _X264_frame in libavcodec.a(libx264.o)
    _X264_init in libavcodec.a(libx264.o)
    "_x264_encoder_headers", referenced from:
    _X264_init in libavcodec.a(libx264.o)
    "_x264_encoder_encode", referenced from:
    _X264_frame in libavcodec.a(libx264.o)
    "_x264_encoder_close", referenced from:
    _X264_close in libavcodec.a(libx264.o)
    "_x264_param_default", referenced from:
    _X264_init in libavcodec.a(libx264.o)
    "_x264_encoder_open", referenced from:
    _X264_init in libavcodec.a(libx264.o)
    "_NSAppKitVersionNumber", referenced from:
    _NSAppKitVersionNumber$non_lazy_ptr in libinput.a(ar.o)
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    make: *** [mplayer] Error 1
     
  3. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Hat es schon jemand mit Fink erfolgreich versucht?
     
  4. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Das dürfte hier wohl ein einsamer Ritt werden. :-c
     
  5. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    So, dass heisst, das er diese Funktionen nicht findnen kann.

    Ich würde jetzt erstmal im Sourcecode nachsehen, wo sie denn definiert sind.

    Das ist etwas doof, da würde ich mir auch mal libinput.c oder so ansehen. Wahrscheinlich musst Du das Foundation Framework reinlinken.

    Alex
     
  6. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Puh, ich befürchte die Nerven und die Zeit habe ich nicht um mich in den Sourcecode einzulesen. :eek: Ich wollte eigentlich nur eine halbwegs aktuelle (von 2007) Version des mencoder (und mplayer) für OS X Leopard für die Kommandozeile um meine Encodings skripten zu können. Hat jemand eventuell eine Alternative parat?

    Bahnhof. :(
     
  7. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Geht es denn mit Tiger? Das Binary kannst Du problemlos verwenden

    Alex
     
  8. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Hm, vermutlich, habe es noch nicht getestet. Müsste dazu meinen Mac neu aufsetzen. :(

    Hat jemand die Binaries mit x264? Wenn ja, bitte bitte her damit.
     
  9. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Es sieht aber so aus, als hätte sich da schon mal jemand mit beschäftigt, dass es auf OS X übersetzbar sein sollte.

    Da fragst Du aber besser die, die den Code geschrieben haben

    Alex
     
  10. monstar-x

    monstar-x Jamba

    Dabei seit:
    13.09.07
    Beiträge:
    58
    Mit Macport geht es.

    Code:
    Player 1.0rc2-4.0.1 (C) 2000-2007 MPlayer Team
    CPU: Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz (Family: 6, Model: 15, Stepping: 10)
    CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
    Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2
    
     
  11. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Hm, bei mir lässt sich MacPorts nichtmal installieren. :(
    Er bleibt bei der Installation einfach hängen.

    Könntest du mir die Binaries zippen und hier raufstellen? Wäre super! Danke.
     
  12. monstar-x

    monstar-x Jamba

    Dabei seit:
    13.09.07
    Beiträge:
    58
    Ich habe dir mplayer Binary auf meinen Server hochgeladen
    http://www.probe3.de/downloads/mplayer.zip ( 2.6 MB )

    Sollte etwas fehlen lass es mich wissen. Ich werde den link in 72 Stunden löschen.
     
  13. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Dank' dir monstar-x, aber der mplayer alleine kompiliert bei mir ohnehin wunderbar mit der aktuellsten svn revision. Das Problem ist der mencoder mit x264. Wenn du den in einer aktuellen Version vorliegen hättest, wäre das toll.

    Hast du noch Tiger laufen? Wenn ja, gebe ich dir ein kurzes Tutorial zum kompilieren. Ist kinderleicht, wenn es auf Anhieb funktioniert.
     
  14. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    So, MacPorts kompiliert mir eine Version ohne x264. :mad:
    Ich versuch mal mit Xcode 2.5 zu kompilieren.
     
  15. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    So, mit Xcode 2.5 und --enable-x264 plus --enable-faac bekomme ich einen ähnlichen Error. Irgendetwas mache ich falsch.

    cc -o mplayer mplayer.o m_property.o mp_fifo.o mp_msg.o mixer.o parser-mpcmd.o command.o asxparser.o codec-cfg.o cpudetect.o edl.o find_sub.o get_path.o m_config.o m_option.o m_struct.o mpcommon.o parser-cfg.o playtree.o playtreeparser.o spudec.o sub_cc.o subopt-helper.o subreader.o vobsub.o unrar_exec.o libvo/libvo.a libao2/libao2.a input/libinput.a libmpcodecs/libmpcodecs.a libaf/libaf.a libmpdemux/libmpdemux.a stream/stream.a libswscale/libswscale.a libvo/libosd.a libavformat/libavformat.a libavcodec/libavcodec.a libavutil/libavutil.a libpostproc/libpostproc.a loader/libloader.a mp3lib/libmp3.a liba52/liba52.a libmpeg2/libmpeg2.a libfaad2/libfaad2.a tremor/libvorbisidec.a dvdread/libdvdread.a libdvdcss/libdvdcss.a osdep/libosdep.a -framework OpenAL -L/usr/local/lib -liconv -lncurses -framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework Cocoa -framework QuartzCore -framework OpenGL -framework IOKit -framework IOKit -lz -lm
    Undefined symbols:
    "_x264_nal_encode", referenced from:
    _X264_frame in libavcodec.a(libx264.o)
    _X264_init in libavcodec.a(libx264.o)
    "_x264_encoder_headers", referenced from:
    _X264_init in libavcodec.a(libx264.o)
    "_x264_encoder_encode", referenced from:
    _X264_frame in libavcodec.a(libx264.o)
    "_faacEncSetConfiguration", referenced from:
    _Faac_encode_init in libavcodec.a(libfaac.o)
    "_faacEncClose", referenced from:
    _Faac_encode_init in libavcodec.a(libfaac.o)
    _Faac_encode_init in libavcodec.a(libfaac.o)
    _Faac_encode_close in libavcodec.a(libfaac.o)
    "_x264_encoder_close", referenced from:
    _X264_close in libavcodec.a(libx264.o)
    "_x264_param_default", referenced from:
    _X264_init in libavcodec.a(libx264.o)
    "_faacEncOpen", referenced from:
    _Faac_encode_init in libavcodec.a(libfaac.o)
    "_faacEncGetDecoderSpecificInfo", referenced from:
    _Faac_encode_init in libavcodec.a(libfaac.o)
    "_x264_encoder_open", referenced from:
    _X264_init in libavcodec.a(libx264.o)
    "_faacEncEncode", referenced from:
    _Faac_encode_frame in libavcodec.a(libfaac.o)
    "_faacEncGetCurrentConfiguration", referenced from:
    _Faac_encode_init in libavcodec.a(libfaac.o)
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    make: *** [mplayer] Error 1
     
  16. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    So Leute,

    ich habe es nun endlich geschafft. Man darf den MPlayer nicht mit den --enable Flags kompilieren, da diese fordern, eigene Flags für den Rest des Quellcodes zu setzen. Diese --enable Flags sind nur für Entwickler gedacht. Wenn man die entsprechenden und gewollten Codecs vorher installiert hat, erkennt das ./configure Skript diese automatisch und bindet sie ein. Hier das gesamte Installationsskript:

    svn checkout svn://svn.videolan.org/x264/trunk x264
    cd x264
    ./configure
    make
    sudo make install
    cd ..

    wget http://ovh.dl.sourceforge.net/sourceforge/faac/faac-1.26.tar.gz
    tar xfvz faac-1.26.tar.gz
    cd faac-x.xx
    ./configure
    make
    sudo make install
    cd ..

    svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
    cd mplayer
    ./configure
    make
    sudo make install
    cd ..
     
  17. monstar-x

    monstar-x Jamba

    Dabei seit:
    13.09.07
    Beiträge:
    58
    Ich habe macport mit XCode Version 3.0 Compiled, wundert mich das es bei dir mit der Version 2 nicht geht.

    Mein Tipp Downloade XCode Version 3.0 und dann compile macports
    Download link: http://developer.apple.com/tools/download/

    Gib bescheid ob es daran lag. Danke
     
  18. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Wenn ich MacPorts kompiliere, funktioniert MacPorts einwandfrei (sowohl mit Xcode 2.5 als auch 3.0), das war auch nicht das Prolem. Ich wollte zuerste MacPorts mit dem pkg Installer installieren, was fehlschlug.

    Mein Problem war, dass mir MacPorts eine MEncoder Version ohne x264 und faac kompiliert. Ob man mit MacPorts eine x264/faac Version kompilieren kann, weiß ich nicht, ist mir mittlerweile auch wurst, da ich ohne MacPorts ohnehin eine viel viel aktuellere Version kompilieren kann. Mit obigen Skript funktioniert es nun wunderbar. Es lag nicht an Xcode 3.0, sondern einfach nur an meinem Verständnis der --enable Flags von ./configure.

    LG.
    dandjo
     
  19. monstar-x

    monstar-x Jamba

    Dabei seit:
    13.09.07
    Beiträge:
    58
    Verstehe. Du kannst die aktualität und die Flags bei macport (wie bei gentoo etc.) selbst bestimmen dazu must du nur die Datei /opt//local/var/macports/sources/rsync.macports.org/release/ports/multimedia/MPlayer/Portfile leicht anpassen.
     
  20. dandjo

    dandjo Starking

    Dabei seit:
    28.03.07
    Beiträge:
    216
    Danke für die Info.
     

Diese Seite empfehlen