• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Sprichwörter und Redewendungen sind das Thema unseres Monatswettbewerbes. Nähere Informationen dazu gibt es natürlich auch, und zwar auf dieser Seite ---> Klick

MPlayer/MEncoder mit Xcode 3.0 kompilieren

dandjo

Starking
Registriert
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
 

dandjo

Starking
Registriert
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
 

dandjo

Starking
Registriert
28.03.07
Beiträge
216
Hat es schon jemand mit Fink erfolgreich versucht?
 

dandjo

Starking
Registriert
28.03.07
Beiträge
216
Das dürfte hier wohl ein einsamer Ritt werden. :-c
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
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)
So, dass heisst, das er diese Funktionen nicht findnen kann.

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

"_NSAppKitVersionNumber", referenced from:
_NSAppKitVersionNumber$non_lazy_ptr in libinput.a(ar.o)
Das ist etwas doof, da würde ich mir auch mal libinput.c oder so ansehen. Wahrscheinlich musst Du das Foundation Framework reinlinken.

Alex
 

dandjo

Starking
Registriert
28.03.07
Beiträge
216
So, dass heisst, das er diese Funktionen nicht findnen kann.

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

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?

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

Bahnhof. :(
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Geht es denn mit Tiger? Das Binary kannst Du problemlos verwenden

Alex
 

dandjo

Starking
Registriert
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.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
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
 

monstar-x

Jamba
Registriert
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
 

dandjo

Starking
Registriert
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.
 

dandjo

Starking
Registriert
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.
 

dandjo

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

dandjo

Starking
Registriert
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
 

dandjo

Starking
Registriert
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 ..
 

dandjo

Starking
Registriert
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
 

monstar-x

Jamba
Registriert
13.09.07
Beiträge
58
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

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.