Screencast audio-video ad alta qualità con FFmpeg

 

Ed eccomi ancora quà con l'ennesima guida su FFmpeg, sì lo sò, sono fissato, ma come sapete è uno dei tools che amo di più, per questo ho deciso di scrivere il più possibile su ogni esperimento che faccio, sia per quanto riguarda l'utilizzo dello screencast, sia per quanto riguarda le opzioni di conversione in generale. Ho già dedicato diversi post allo screencast con FFmpeg, ma adesso ho voluto farne uno cercando la migliore qualità audio/video possibile. La base di partenza è sempre lo script record.sh del post precedente, ma modificato per migliorare sensibilmente la qualità dello screencast:

 

#!/bin/sh

INFO=$(xwininfo -frame)

WIN_GEO=$(echo $INFO | grep -oEe 'geometry [0-9]+x[0-9]+' | grep -oEe '[0-9]+x[0-9]+')
WIN_XY=$(echo $INFO | grep -oEe 'Corners:\s+\+[0-9]+\+[0-9]+' | grep -oEe '[0-9]+\+[0-9]+' | sed -e 's/\+/,/' )

ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 30 -s $WIN_GEO -i :0.0+$WIN_XY -acodec pcm_s16le -vcodec libx264 \
-vpre lossless_ultrafast -threads 0 -y screencast.mkv

 

per chi usa PulseAudio, sostituire:

 

-f alsa -ac 2 -i hw:0,0

con:

-f alsa -ac 2 -i pulse

 

c'è da dire che questa soluzione ha il "difetto" di creare screencast di grosse dimensioni, quindi nel caso di upload su youtube bisogna prepararsi all'ottimizzazione, cercando sempre di mantenere lo standard alto. Quindi il comando seguente oltre ad ottimizzare il file per youtube, ne riduce sensibilmente le dimensioni:

 

 

quello sopra anche se lunghino è un solo comando. Credo che il tutto sia ancora migliorabile, dato che ho notato delle piccole imperfezioni.

 

ps: il video sopra è volutamente muto.

 

enjoy 😉

Autore: Franco Conidi aka edmond

Senior System Integrator, Network Administrator, Sys Admin Linux, Linux User, Consulente Informatico.

3 pensieri riguardo “Screencast audio-video ad alta qualità con FFmpeg”

  1. Allora siamo in due ad essere fissati.
    Migliora migliora, poi provo 😉
    PS:come mai se sto su Debian lo spy dice Linux generico? a te mette Debian.

  2. perchè ho modificato l'user-agent -:) sta storia del Linux generico

    non mi è affatto simpatica 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *