Ich habe mir ein paar ebuilds gebaut, somit kann man glc jetzt wieder in Gentoo installieren....
Link: http://forums.gentoo.org/viewtopic-p-6871052.html#6871052
GLC ist ein Tool, um Mitschnitte von OpenGL-Anwendungen unter Linux zu erzeugen. Im Gegensatz zu traditionellen Werkzeugen (wie recordmydesktop), die sich die Bilder vom XServer holen und damit stark auf die Performance schlagen, hängt sich GLC in die OpenGL-Bibliothek ein und holt sich die Bilder direkt aus dem Render-Buffer. Auch die Aufnahme von Sound ist möglich. GLC funktioniert ebenfalls mit Aufnahmen von Anwendungen über wine.
Für Gentoo gibt es ein Portage-Overlay, dies installiert man am einfachsten mit:
layman -f -a glc -o 'http://nullkey.ath.cx/glc/overlays.xml'
Falls layman noch nicht installiert ist, kann man das nachholen mit:
emerge layman echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf
Wer stable verwendet, muss vor der Installation noch glc, packetstream und elfhacks freistellen:
echo "media-video/glc ~x86 ~amd64 dev-libs/packetstream ~x86 ~amd64 dev-libs/elfhacks ~x86 ~amd64" >> /etc/portage/package.keywords
Danach reicht ein einfaches:
emerge glc
Es gibt reguläre stabile und Entwicklerpakete.
Das Installationsscript vereinfacht die Einrichtung auf anderen Systemen.
HINWEIS: Als Installationspfad am besten /usr/local/ angeben! Dann funktioniert hinterher alles und euer System bleibt "sauber" ;)
Debian/Ubuntu
Die folgenden Pakete werden zum Compilieren benötigt:
apt-get/aptitude/synaptic install build-essential cmake libx11-dev libxxf86vm-dev libgl1-mesa-dev libasound2-dev libpng12-dev
64-bit Systeme
Es wird zusätzlich gcc-multilib benötigt. Weiterhin sollte sicher gestellt sein, dass die folgenden Links/Dateien existieren:
ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so ln -s /usr/lib32/libasound.so.2 /usr/lib32/libasound.so ln -s /usr/lib32/libXxf86vm.so.1 /usr/lib32/libXxf86vm.so ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so ln -s /usr/lib32/libpng12.so.0 /usr/lib32/libpng.so
Zum Aufzeichnen von Videos dient das Programm glc-capture. Im einfachsten Fall wird es dem Aufruf der OpenGL-Anwendung vorausgestellt und die Aufnahme dann mit shift+F8 gestartet bzw mit shift+F9 gestoppt.
Aber ACHTUNG! Hier werden nur minimal komprimierte Rohdaten gespeichert! Das hat zwar den Vorteil, dass man kaum Performance-Einbußen hat, jedoch wird die Festplatte sehr schnell sehr voll. Um das zu verhindern, kümmern wir uns später um Komprimierung.
Steam Games
Um Steam Spiele auf zu nehmen:
glc-capture wine C:/Program\ Files/Steam/Steam.exe -console -applaunch 240
List of Steam Application IDs
List of Command Line Options
Eine Datei kann mit glc-play wiedergegeben werden, mit verschiedenen Parametern lassen sich auch die Informationen über den Stream ausgeben.
Wie schon erwähnt sind die Daten auf der Festplatte nur minimal und verlustfrei komprimiert - da kommen schnell einige Gigabyte zusammen. Für kurze Videos mag das OK sein, aber wer zB ein komplettes Clanmatch aufzeichnen will, kommt da bald an die Grenze jeder Platte.
Unser Ziel ist es, den Datenstrom zu reduzieren und um dabei noch Rechenpower zu sparen, sollte das so früh wie möglich geschehen.
Zunächst sind 30 FPS zwar schön für flüssige Videos, doch 15 reichen im Internet (bei youtube und co) vollkommen aus. Weiterhin muss nicht unbedingt in 1900x1200 aufgenommen werden, reduziert also am besten die Auflösung im Spiel auf 1280x720 oder 1024x768. Ein Youtube-HD-Video fordert eine Breite von 720 Pixeln, bei 1024x768 müssen wir also noch skalieren.
Apropos youtube: wenn ihr da Videos schaut, interessiert euch der Ingame-Sound? Nein, schmissige Hintergrundmusik ist viel kurzweiliger! Also weg mit dem Krach bei der Aufnahme.
Die vollständige Zeile für glc-capture lautet nun:
glc-capture -f 15 -r 0.9375 --disable-audio --pbo -b back -o - <anwendung>
"-r 0.9375" korrigiert von 1024x768 auf x720, ist also bei nativen 1280x720 nicht nötig. "--pbo" nutzt PixelBufferObjects für schnelleren Datentransfer und "-b back" holt sich den Back- anstelle des Front-Buffers (nicht unbedingt nötig, kann aber nützlich sein). Mit "-o -" schließlich packen wir die Daten auf die Standardausgabe, um sie weiter zu verarbeiten.
Je nach Spiel/Anwendung kann das Video nun aber an unterschiedlichen Stellen landen. Um rauszufinden, wo genau, macht man am besten eine "normale" Aufnahme (also ohne "-o -") und schaut sich die Datei danach mit "glc-play -i 2 <dateiname" an und sucht den passenden Video-Stream (bei Savage 2 ist es zB #2). Diesen Index brauchen wir nun, um die Daten für den Encoder zu sortieren:
glc-play -y <stream-nummer> -o - -
Dieser Befehl wird mit einer Pipe an den ersten gehängt und verarbeitet somit dessen Standardausgabe zu einer neuen, die YUV-Videodaten enthält.
Nun können wir die Daten mit einem weiteren Programm codieren. Ich verwende beispielhaft mencoder und den MPEG4-Codec, jedoch können auch ffmpeg, vlc oder sonstige verwendet werden und natürlich auch ein anderer Codec.
mencoder -demuxer y4m -ovc lavc -vf expand=:::::16/9 -nosound -o gl-capture.mpeg -
"-vf expand=:::::16/9" fügt schwarze Balken links und rechts hinzu, falls die Original-Aufnahme nicht 16:9 war, wird also nur benötigt, wenn oben "-r" benutzt wurde. Ebenfalls mit Pipe hinter das letzte Kommando gehängt, liefert das uns nun eine komprimierte Datei, die nur noch ca 1MB pro 10 Sekunden Aufnahme braucht und bei Youtube als HD-Video hochgeladen werden kann (10-Minuten-Limit beachten!).
Damit das nicht jeder alles von Hand ein-/abtippen muss und sich dabei verschreibt, habe ich ein kleines Script gebastelt (was zur Sicherheit und Übersichtlichkeit noch eine Named-Pipe verwendet): GLC-encode. Dieses editiert man einfach nach seinen Wünschen (-r und -vf), macht es ausführbar und legt es im Pfad ab. Dann kann man seine Sitzung aufzeichnen mit:
glc-encode <anwendung>
Natürlich wird nun deutlich mehr Rechenpower benötigt, eine Multicore-CPU ist zu empfehlen, ebenso sollten mencoder und das Spiel an separate Cores gebunden werden.
Ich habe mir ein paar ebuilds gebaut, somit kann man glc jetzt wieder in Gentoo installieren....
Link: http://forums.gentoo.org/viewtopic-p-6871052.html#6871052
GLC ist umgezogen auf Github:
In diesem Wiki kann jeder registrierte Benutzer alle Artikel bearbeiten und/oder neue Artikel anlegen. So könnt ihr über euer Lieblings-Linuxspiel berichten, oder anderen eure Tricks zukommen lassen, wie ihr ein Spiel unter Wine zum Laufen bekommen habt.
Einfach anmelden und mitschreiben!
Beachtet dazu vorher unseren Musterartikel und lest euch die Wiki-Befehle durch.
Bei Fragen stehen wir natürlich gerne im Forum oder im IRC zur Verfügung.
Erstellt
von booiiing am 31.07.2009 - 10:55
Zuletzt geändert
von comrad am 02.11.2021 - 07:54
Seitenansichten
8,604
Revision
38258
© 2000 - 2024 Bernd Ritter - Impressum - Datenschutz - Über uns
Alle hier verwendeten Marken- oder Firmennamen unterliegen ausschliesslich den Rechten der jeweiligen Inhaber.
Die erstellten Artikel sind zumeist von unterschiedlichen Autoren und unterliegen der CC BY-NC 2.0.
Die Homepage ist down, somit funktiniert auch das overlay nicht mehr und auch kein installationsscript.....