venerdì 28 dicembre 2007

glc - fraps per linux - come installarlo su Ubuntu

You can find the english version of this How-To here.

Cari videogiocatori linuxari... quante volte avreste voluto una versione per Linux di Fraps? Per registrare le vostre minchiate (o frag) combinate in gioco o che so io...
Io per esempio gioco a Wolfenstein Enemy Territory, quindi qualcosa da registrare ce l'avrei.
Siccome Fraps per Linux non esiste, un abile programmatore finlandese mi ha salvato per la seconda volta.
Perché per la seconda? Perché è lo stesso autore dell'hack et-sdl-sound per ET, Q3, RTCW, e quali altri giochi non ricordo... grazie nullkey!

Questa volta, dopo il famoso hack per il supporto ALSA, se n'è uscito con un bel tool di cattura!

glc, cos'è?

glc is an ALSA & OpenGL capture tool for Linux. It consists of a wrapper library which captures stream and a tool for playing or processing captured streams. glc should be able to capture any application that uses ALSA for sound and OpenGL for drawing. It is still a relatively new project but already has a long list of features. Take a look at some example videos and find out how to install it!

glc è un tool di cattura per Linux, che supporta ALSA e OpenGL. Consiste in una libreria per catturare stream e un tool per riprodurre o processare stream catturati.
glc può catturare qualsiasi applicazione che usa ALSA per l'audio e OpenGL per il video. E' un progetto relativamente nuovo ma ha già una lunga lista di caratteristiche.

Spero di aver tradotto bene XD Accetto consigli a riguardo!


Installare glc su Ubuntu:
nullkey qui spiega come installare glc su Gentoo, e tutto fila liscio. Quindi se usate Gentoo, non seguite questa guida, ma quella ufficiale!
Per Ubuntu ci sono stati vari problemi... che nullkey ha avuto la pazienza di spiegarmi su msn.

Attenzione, i passi in rosso sono solo per sistemi 64-bit.
sudo ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so
sudo ln -s /usr/lib32/libasound.so.2 /usr/lib32/libasound.so
sudo ln -s /usr/lib32/libXxf86vm.so.1 /usr/lib32/libXxf86vm.so
sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so

Gli utenti 32-bit non dovrebbero necessitare di questi accorgimenti.

I seguenti passi valgono per entrambe le architetture:
wget http://nullkey.ath.cx/glc/scripts/glc-build.sh
chmod +x glc-build.sh
./glc-build.sh

Così avete scaricato l'installer, gli avete dato i permessi di esecuzione e l'avete avviato. Ora vi farà un paio di domande:
Enter path where glc will be installed.

Lasciate tranquillamente bianco se non avete esigenze particolari;
Enter compiler optimizations.

Anche qui si potrebbe lasciare bianco, ma per chi ha un Core2Duo può inserire:
-march=nocona -O2 -msse3

e dare Invio;
Enter linker optimizations.

Lasciate bianco;
Use git?

git contiene l'ultima versione di sviluppo, quindi si potrebbe incorrere a problemi di stabilità dell'applicazione. Sinceramente io ho dato y e non ho ancora riscontrato fastidi. Il sistema è vostro, decidete voi :) e date Invio.

Ora l'installer scaricherà tutto il necessario e creerà 4 cartelle nella postazione da cui lo avete lanciato (glc, glc-support, elfhacks, packetstream).

A un certo punto vi chiederà anche la password se non è in memoria.

Alla fine vi darà un bel Done :).

Ora avete glc pronto per l'uso.

Come usare glc?
A questo punto vi rimando alla pagina ufficiale sull'uso di questo programma. Magari più avanti scriverò a riguardo, per uso e conversione del file stream in un file riproducibile dai player più conosciuti tipo mplayer, vlc, ecc.

Piccolo esempio come lo uso io:
glc-capture -r 0.7 -o /home/pasquale/out.glc /usr/local/games/enemy-territory/et-sdl-sound

In questo modo glc catturerà a un ratio video pari a 0.7 e il file finale si trovera nella mia home col nome out.glc; la parte finale del comando indica il file di avvio di ET (se voi dovete registrare quake3, cambiate appunto questo pezzetto di comando)


ATTENZIONE:
Quando ho provato a catturare qualcosa su ET... uscendo dal gioco notavo che non mi aveva catturato un bel niente. Questo problema si presenta su Ubuntu e non su Gentoo (come sempre, come per i link simbolici per gli utenti 64 bit, ma questo problema si dovrebbe presentare su tutte le architetture di Ubuntu).
Per risolvere, bisogna modificare lo script et-sdl-sound installato in passato. Aprite lo script e modificate la seguente linea da così:
LD_PRELOAD="$TMP_DIR/et-sdl-sound.so" ./$GAME_BIN $*

a così:
LD_PRELOAD="${LD_PRELOAD}:$TMP_DIR/et-sdl-sound.so" ./$GAME_BIN $*

Fatta questa modifica (sta tutto in una riga, non dovete andare a capo, è solo il blog che è troppo stretto :P ), glc-capture s'è convinto a funzionare :P

Spero questo how-to vi sia d'aiuto :)

Più avanti magari scriverò su come convertire il file di output! Anche se tutte queste informazioni le trovate già sul sito ufficiale.

Link vari (in inglese):
home del progetto
come installare
come catturare
come riprodurre uno stream catturato
come convertire uno stream in un file video riproducibile dai player multimediali

6 commenti:

imar ha detto...

voglio vedere un tuo video!!! :D

Pasquale ha detto...

uahauhaua imarinooooo penso che scriverò un post su come usare meglio sto programmino... e metterò un esempio :< tu però metti i tuoi su ngi! :D

Spa ha detto...

voglio il rosik spa e il mio multi teamkill :D

Supergiu ha detto...

Ho notato che non funziona con tutti i programmi. Per esempio, riesco a registrare le partite di ET, UT2004 o Alien Arena, ma fallisco con Return To Castle Wolfenstein. Stesso problema riscontrato con Yukon.

pasqoo ha detto...

io gioco a et ... non l'ho mai provato su rtcw anche se ce l'ho!
cmq recentemente hanno fatto un articolo anche su linux.com: http://www.linux.com/feature/143775
potresti farlo presente al programmatore... magari provvede..

Supergiu ha detto...

Scusate, funziona. Ho constatato che la registrazione avviene se l'user possiede la directory del gioco RTCW. E' una cosa molto strana, perché in ET invece l'owner è root e gioco con un utente non privilegiato. Non so se considerarla un bug a questo punto.