Per catturare il desktop uso il comando
ffmpeg -r 15 -s 1680x1050 -f x11grab -i :0.0 -vcodec libx264 -vpre lossless_fast -crf 30 -threads 2 /home/mc/rec/temp/output.mkv
che si può adattare anche per catturare una singola finestra (vedi appendice).
Per catturare anche l’audio che viene riprodotto dal pc uso:
ffmpeg -f alsa -ac 2 -i pulse -r 15 -s 1680x1050 -f x11grab -i :0.0 -acodec libmp3lame -ab 96k -ar 48000 -ac 2 -vcodec libx264 -vpre lossless_fast -crf 30 -threads 2 /home/mc/rec/temp/output.mkv
per selezionare la corretta fonte di registrazione con pulseaudio, occorre lanciare il comando di cattura e poi con pavucontrol selezionare la fonte da registrare:

Uploaded with ImageShack.us
Come vedete nella scheda registrazione, è apparso ffmpeg come client di cattura, ora selezioniamo
“Monitor audio interno”
e ffmpeg catturerà l’audio di tutto quello che il pc riproduce, si vedrà anche la barra del livello prendere vita.
Ora potete fermare la cattura con “q” nel terminale, preparavi ed iniziare la cattura vera e propria dello screencast, esempio:
Ricordatevi al termine del lavoro, di lanciare una nuova cattura (rinominate il vostro file) e con pavucontrol riportate su
“Audio interno Analogico”
la fonte di cattura, onde evitare di interferire con altre applicazioni di cattura audio.
Nota: se volete registrare solo l’audio che viene riprodotto dal pc, ad esempio con audacity,
il procedimento è lo stesso, come vi avevo spiegato anni fa.
I parametri dovete adattarli al vostro monitor.
Per i codec potete aiutarvi con tragtor di cui vi ho parlato.
ffmpeg version 0.8, Copyright (c) 2000-2011 the FFmpeg developers
built on Jun 23 2011 08:05:02 with gcc 4.6.1 20110616 (prerelese)
per altre versioni dovete adattare -vpre che prima era fast.
Volendo potete scegliere framerate, codec video, audio e container che più vi garba.
Quelli che uso io sono un ottimo compromesso qualità/spazio disco.
Per varie ed eventuali: RTFM!
Appendice.
Catturare solo la finestra di un’applicazione.
Posizionate la finestra e poi, ovviamente, non muovetela o ridimensionatela più.
Aprite un terminale e digitate
xwininfo -frame
vi uscirà
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
cliccate col cursore la finestra che volete registrare, e avrete:
xwininfo: Window id: 0x560009d "testo - gedit" Absolute upper-left X: 322 Absolute upper-left Y: 148 Relative upper-left X: 322 Relative upper-left Y: 148 Width: 1002 Height: 819 ....
I valori che ci interessano sono:
offset x (322), offset y (148), W (1002) e H (819).
inseriteli nel comando:
ffmpeg -f x11grab -s 1002x820 -r 15 -i :0.0+322,148 -vcodec libx264 -vpre lossless_fast -crf 30 -an -threads 2 /home/mc/rec/temp/output.mkv
ricordandovi di arrotondare H e W a numeri divisibili per 2
(nell’esempio H 819 diventa 820) e il gioco è fatto.
L’audio, almeno sul mio pc, non si riesce a registrare catturando una parte dello schermo.
Esempio di registrazione del terminale che sta eseguendo la cattura:
uno scriptino come questo rende tutto più facile
http://www.edmondweblog.com/index.php/2011/02/02/screencast-perfetto-di-una-singola-finestra-con-ffmpeg/
Commento di edmond — luglio 3, 2011 @ 3:25 pm
si ma tanto io non catturo mai singole finestre,
l’appendice era tanto per promemoria.
Piuttosto riesci a catturare l’audio con la finestra?
Commento di telperion — luglio 3, 2011 @ 3:45 pm
assolutamente NO, con la singola finestra non ti prende l’audio nemmeno se nel comando inserisci
il percorso di un file.mp3, è una stranezza ma al momento non ho idea del perchè.
Commento di edmond — luglio 3, 2011 @ 5:04 pm
ok grazie
Commento di telperion — luglio 3, 2011 @ 5:06 pm
[...] Screencast con ffmpeg e audio « Tecnologia e non solo [...]
Pingback di Segnalibri al 5 settembre 2011 | Ubuntu block notes — settembre 6, 2011 @ 8:52 am
[...] Screencast con ffmpeg e audio Filed under: Gnome,gnome3,Varie,Video — telperion @ 12:20 am [...]
Pingback di Screencast con ffmpeg e audio « Tecnologia e non solo — ottobre 8, 2011 @ 9:37 am