Ricerca tra la vecchia roba

Screencast

Posted: Febbraio 11th, 2007 | Author: | Filed under: Screencast | Commenti disabilitati su Screencast

Questo week end sono partito per quel di Ventimiglia a trovare un mio ex coinquilino – compagno di università che in altri lidi ha cercato fortuna; il tutto è stato organizzato in seguito ad una serata a base di assenzio e succhi gastrici, unito a forti mal di testa. Siccome conoscevo le capacità di Google earth di localizzare geograficamente i paesi, ero curioso di vedere a cosa servivano le voci "Arriva qui" e "parti qui" ed ho scoperto che lui in automatico

genera un percorso lungo le statali/autostrade per collegare i due estremi scelti dall’utente: nel mio caso ero interessato al tragitto Torino – Bordighera, non fosse che cercando possibili opzioni presenti nel programma mi imbatto in un blog in cui spiegano come creare degli screencast con ubuntu da una versione leggermente modificata di ffmpeg.

WARNING: Non serve più patchare ffmpeg in quanto  esiste la modalità x11grab; in pratica funziona più o meno così

 ffmpeg -f x11grab -s svga -r 12 -i :0.0+480,200 -vcodec ffv1 -sameq ./out.avi

Gli screencast non sono altro che quei graziosi video in cui viene ripresa l’attività in un normale Desktop di un computer e che spesse volte servono per far conoscere certe funzionalità di un programma tramite visione diretta; giusto qualche giorno fa mi chiedevo come fosse possibile fare ciò ed il destino per caso mi ha risposto…

Create una directory chiamata per esempio ‘Screencast’  posizionatevi all’interno di essa ed eseguite

 $wget http://un.sh.nu/screencasts/ffmpeg-0.4.9-p20051216.tar.bz2

in maniera tale da scaricare i sorgenti di ffmpeg in codesta directory; decompattare e detarrate

$ tar jxvf  ffmpeg-0.4.9-p20051216.tar.bz2

e scaricatevi la patch applicandola dalla nuova cartella:

$ cd  ffmpeg-0.4.9-p20051216

$ wget http://un.sh.nu/screencasts/ffmpeg-0.4.9-p20051216.diff

$ patch -Np1 -i ffmpeg-0.4.9-p20051216.diff

N.B: La patch funziona solo su quella versione, al massimo quando ho tempo cerco di capire come funge… almeno lo spero… 

Adesso nella migliore tradizione open source ci tocca compilare il programma: innanzitutto servono le librerie di X11, quindi

$ sudo apt-get install xlibs-dev

(nel caso vi manchino gli strumenti per compilare installate il pacchetto build-essential) e quindi un bel ‘configure’ con l’abilitazione delle librerie necessarie ai nostri scopi:

 $ ./configure --extra-ldflags=-L/usr/X11R6/lib --enable-x11grab --enable-gpl

Nel caso vi si presenti questo errore 

 Creating config.mak and config.h…
./configure: 1471: Syntax error: Bad substitution

non preoccupatevi, semplicemente in Ubuntu è stato modificato il link simbolico di sh: prima puntava a ‘bash’, mentre adesso punta a ‘dash’ (sono tutte e due shell ma con caratteristiche diverse), quindi cambiate la prima riga da

#!/bin/sh

in

#!/bin/bash

e tutto filerà liscio come l’olio (per inciso questo problema mi si è presentato svariate volte, quindi se uno scritp .sh vi da problemi provate questo trucco..); per finire 

$ make

e dopo qualche minuto vi troverete un bel eseguibile ‘ffmpeg’ con il quale iniziare a fare i vostri screencast! Il comando generico è

$ ./ffmpeg -vcodec  mpeg4 -b BITRATE -r REFRESH -vd x11:XOFFSET,YOFFSET -s XSIZExYSIZE NOME_FILE_OUTPUT.avi

che permette di catturare in formato avi, il rettangolo identificato dai punti (XOFFSET,YOFFSET) e (XOFFSET+XSIZE,YOFFSET+YSIZE): per conoscere questi valori per una finestra particolare basta usare il comando ‘xwininfo -frame‘ su questa e per magia usciranno i valori nella console.

Per capirci se volete catturare a 30 frame per secondo  tutto il desktop, il quale si trova ad una risoluzione di 1024×768, con un bitrate di 1000b/s, il comando da dare è

 $./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024x768 ~/test.avi

Notare che cattura anche l’audio!!! (-g è l’opzione per ‘the group of pictures size’ che non so cosa vuol dire!!!)

Tuttavia il file risulta di dimensioni notevoli in questo caso ed inoltre di risoluzione abbastanza "grossa", quindi si può sfruttare un altro programma per applicare  un resize (dovrebbe farlo anche ffmpeg ma non ci sono riuscito..); il programma che userò è ‘mencoder’: facciamo finta di voler ridimensionare quanto fatto prima ad una risoluzione di 640×480, date da linea di comando:

 $ mencoder <file input> -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=640:480 -oac copy -o <file output>

(attenzione: nel caso vogliate editare con Cinelerra il filmato, sappiate che non apre questo formato quindi, usate -ovc xvid -xvidencopts bitrate=1000 -oac mp3lame che vi crea un bel file Xvid da usare con comodity)

Ma cosa centra direte voi con il viaggio? ho creato uno screencast con il percorso da Torino a Bordighera con google earth e lo messo su youtube: è un pò una merda ma può darvi l’idea (la qualità del video era buona prima di uploadarlo, ma trasformato in flash fa schifo!!!)

P.S: Lo so che è noioso ma alla fine c’è lo sgamo ๐Ÿ˜‰

P.P.S: Il fine settimana si è risolto con 20 bottiglie di birra bevute in 4 persone e con un attacco di diarrea alla partenza per il ritorno!  


Comments are closed.