Voodooalert+x264 Logo
US+UK Flagge DE+AT Flagge
Sprache wechseln:
 

x264 Benchmark Kompilier- & Installationsanleitung für MidnightBSD 0.4

MidnightBSD Logo

Systemvoraussetzungen

Um den x264 Benchmark auf MidnightBSD übersetzen und installieren zu können, muß zuerst einmal eine gewisse Basissoftware vorhanden sein. Um selbige zu installieren, werden wir uns des modifizierten FreeBSD Ports Systems bedienen, daß sich auf MidnightBSD nunmehr mports nennt. Im Zuge dessen werden die zu erfüllenden Abhängigkeiten durch Kompilieren des Quellcodes aller benötigten Pakete gelöst, hierzu muß man mit dem Superuser root arbeiten:


Nach der Installation sollte für eine einwandfreie Funktion der restlichen Anleitung die Login Shell des Benutzers und auch jene von root auf die Bash geändert werden. Das geschieht wie folgt:

Hiernach sollten sich der Benutzer sowie ggf. vorhandene eingeloggte Superuser aus dem System abmelden und neu einloggen, sodaß diese Änderung greift.

Die Benchmark-Software selbst

Um x264 benutzen zu können, brauchen wir die Decodingfilter von libavcodec (kurz libav) und den x264 Encoder selbst, der im Verlauf der Installation gegen libav linked wird. Weiters natürlich das Benchmarkvideo, das als Input verwendet wird, Downloadmirror zum Download des letzteren sind am Ende der [Benchmarkergebnisliste] verfügbar. Als Ersatz für libav kann man auch ffmpeg/ffms verwenden, wenn man dies möchte.

Der Einfachheit halber nehmen wir hier an, daß die Dateien nun in /home/user/x264src/ liegen. Auf der Konsole wechseln wir also in dieses Verzeichnis, und beginnen mit libav. Entpackt wird das Archiv mit tar -xzvf <filename.tgz>, wonach es einen libav Ordner gibt. In diesen Ordner wechsle man nun, und beginne mit den notwendigen Modifikationen und dem Ausführen der entsprechenden Scripts:

Da sich MidnightBSD nach dem Fork von FreeBSD 6 schon relativ weit von selbigem entfernt und auch Bestandteile von OpenBSD und NetBSD zusammengesammelt hat, ist das System schon als eigenständig anzusehen. Reflektiert wird dies auch durch die Strings mit denen der Systemkern bzw. die Plattform benannt ist. Anstatt eines FreeBSD-Strings wie bei PC-BSD zu finden heißt dieses Betriebssystem wirklich bis in den modifizierten Kern hinab MidnightBSD. Da das libav Buildsystem ein solches BSD Derivat aber nicht kennt, müssen wir uns selbst um die Anpassung der Buildumgebung kümmern. Zuerst ist das configure Skript zu editieren, und zwar wie folgt, zu suchen ist der hier grün markierte Text, der durch den roten zu ergänzen ist, dazu kann man einen beliebigen Texteditor wie vi oder nano heranziehen, der ebenfalls über mports zu beziehen ist:

freebsd)
    ;;

Hierunter fügen wir einen entsprechenden Eintrag für MidnightBSD hinzu:

midnightbsd)
    ;;

Nun ist es noch so, daß das System die Posix Threading Library nicht wird finden können, die für die Multicore/-thread Unterstützung benötigt wird. Dies ist einfach zu korrigieren, indem wir dem System erklären, wo die Threads zu finden sind, was durch das Setzen einer Umgebungsvariable geschieht (danach sollte man das Terminal nicht mehr schließen, ansonsten muß man die Variable neu setzen). Wenn das getan ist, kann der Quellcode auch gleich fertig konfiguriert, gebaut und als root installiert werden:

Damit ist libav installiert, und wir können mit x264 selbst fortfahren.

Zuerst entpacken wir - wieder im Verzeichnis /home/user/x264src den x264 Quellcode ca. wie folgt: tar -xjvf <x264 Archivdatei> und wechseln dann in das neu erzeugte x264 Unterverzeichnis.

Im Falle von x264 müssen gleich drei Skripte editiert werden, erneut das configure Skript selbst, das dicke config.guess und auch noch das Skript version.sh. Zuerst knöpfen wir uns letzteres vor, wo nur die erste Zeile - genannt Shebang - zu modifzieren ist, damit das System die bash Shell finden kann, mit der das Skript auszuführen ist:

#!/bin/bash

Diese erste Zeile ersetzen wir mit:

#!/usr/local/bin/bash

Selbiges ist auch noch im configure Skript vonnöten:

#!/bin/bash

Diese erste Zeile ersetzen wir auch hier wieder mit:

#!/usr/local/bin/bash

Hier brauchen wir aber zusätzlich dazu noch eine Ergänzung in folgender Passage:

freebsd*)
    SYS="FREEBSD"
    LDFLAGS="$LDFLAGS -lm"
    ;;

Unter diesem Teil fügen wir folgendes hinzu:

midnightbsd*)
    SYS="MIDNIGHTBSD"
    LDFLAGS="$LDFLAGS -lm -lpthread"
    ;;

Abschließend sehen wir uns config.guess an, wo wir wieder einen Teil für die korrekte Betriebssystemerkennung werden hinzufügen müssen:

*:FreeBSD:*:*)
  UNAME_PROCESSOR=`/usr/bin/uname -p`
  case ${UNAME_PROCESSOR} in
    amd64)
        echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
    *)
        echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
  esac
  exit ;;

Über dieser Passage fügen wir folgende neue hinzu:

*:MidnightBSD:*:*)
  UNAME_PROCESSOR=`/usr/bin/uname -p`
  case ${UNAME_PROCESSOR} in
    amd64)
        echo x86_64-unknown-midnightbsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
    *)
        echo ${UNAME_PROCESSOR}-unknown-midnightbsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
  esac
  exit ;;

Ist auch das erledigt, sind noch die Umgebungsvariablen zu erweitern, da das Buildsystem ansonsten u.a. libav nicht wird finden können, was aber unerläßlich ist. Danach kann das configure Skript auch gleich direkt ausgeführt werden:

Gegebenenfalls sollte man nach dem Konfigurationsschritt noch prüfen, ob die Ausgabe des Skripts die Zeile "lavf yes" aufweist. Nur wenn dies der Fall ist, wird x264 korrekt gegen libav gelinked werden. Sollte dem nicht so sein, wäre das Fehlverhalten anhand der Ausgabe in config.log zu analysieren. Wie auf einigen anderen Betriebssystemen schreibt configure des weiteren auch hier eine nicht ganz perfekte config.mak, die wir jetzt noch editieren müssen, bevor wir mit dem Bau beginnen können:

LDFLAGSCLI = -L. -lavformat -lavcodec -lswscale -lavutil -lm -lz -lbz2 -lpthread -lswscale -lavutil

Diese relativ weit gegen Ende der config.mak befindliche Zeile ersetzen wir mit:

LDFLAGSCLI = -L. -L/usr/local/lib -lavformat -lavcodec -lswscale -lavutil -lm -lz -lbz2 -lpthread -lswscale -lavutil

Nun kann auch mit dem Kompilieren und Installieren fortgefahren werden:

Damit ist auch x264 installiert und betriebsbereit! Die Funktion der Software läßt sich einfach über x264 --version prüfen. Funktioniert das, und zeigt das Binary an, daß es gegen libswscale und libavformat linked ist, dann hat alles sauber funktioniert. Nun kann man folgendes Benchmarkscript herunterladen:

Diese Datei launchbenchmark.sh kopieren wir nun in einen für den Benchmark gedachten Unterordner, den wir ggf. anlegen: mkdir -p /home/user/x264benchmark. In diesem Ordner sollte auch das Inputvideo elephantsdream_source.264 landen.

Nun kann man den Benchmark im Prinzip ausführen, hierzu gebe man einfach folgendes ein, während man im Ordner /home/user/x264benchmark sitzt und nachdem man geprüft hat, daß das Script auch ausführbar ist (chmod +x ./launchbenchmark.sh):

Das könnte dann zum Beispiel so aussehen (Klicken, um zu vergrößern), das Ergebnis ist danach einfach von der Konsole abzulesen, interessant ist der Wert nach der Zeile "Real", sobald der Test durchgelaufen ist:

MidnightBSD Screenshot

Je nach Maschine kann das jetzt durchwegs mehrere Stunden, in extremen Fällen auch Tage, Wochen oder Monate dauern. Bei Problemen mit dieser Anleitung oder weiteren Fragen zum x264 Benchmark auf DragonFly BSD/BSD bitte einfach im [entsprechenden Forumsthread] nachfragen.

[Zurück zur x264 Benchmark Ergebnisliste]

[Anleitung kommentieren]