Olá
Este é um post simples, mas com uma dica bem útil para quem gosta de fazer tutoriais ou que, por qualquer outro motivo, deseje gravar a área de trabalho enquanto utiliza o seu sistema FreeBSD (deve funcionar com outros unix-like também). Para capturar a área de trabalho não é necessário nenhum aplicativo com interface gráfica complexa, basta utilizar o ffmpeg para isso.
Da página de manual do ffmpeg tem-se que:
"ffmpeg is a very fast video and audio converter that can also grab from a live audio/video source. "
É exatamente esta característica de capturar o vídeo de uma outra fonte “ao vivo” que pode-se utilizar para capturar a tela.
Antes de começar, obviamente é necessário instalar o ffmpeg. Na árvore do ports ele encontra-se em
multimedia/ffmpeg
A instalação deve ser feita com suporte a X11GRAB
. Utilize um make config
dentro da pasta do ffmpeg para realizar a configuração da instalação. Para referência, esta é a configuração de uma instalação em que este recurso está funcionando.
===> The following configuration options are available for ffmpeg-0.7.13_6,1:
AACPLUS=off: AAC support via libaacplus
ALSA=off: ALSA audio architecture support
AMR_NB=off: AMR Narrow Band audio support (opencore)
AMR_WB=off: AMR Wide Band audio support (opencore)
CELT=off: CELT audio codec support
DEBUG=off: Install debug symbols
DIRAC=on: Dirac support via libdirac
FAAC=on: FAAC AAC encoder support
FFSERVER=on: Build and install ffserver
FREETYPE=on: TrueType font rendering support
FREI0R=on: Frei0r video plugins support
GSM=on: GSM codec support
LAME=on: LAME MP3 encoder support
OPENCV=on: OpenCV support
OPENJPEG=on: Enhanced JPEG graphics support
OPTIMIZED_CFLAGS=off: Use extra compiler optimizations
RTMP=off: RTMP protocol support via librtmp
SCHROEDINGER=off: Dirac support via libschroedinger
SDL=on: Simple Direct Media Layer support
SPEEX=on: Speex audio format support
THEORA=on: Ogg Theora support
VAAPI=on: VAAPI (GPU video acceleration) support
VDPAU=off: VDPAU (GPU video acceleration) support
VORBIS=on: Ogg Vorbis audio codec support
VO_AACENC=off: AAC audio encoding via vo-aacenc
VO_AMRWBENC=off: AMR Wide Band encoding via vo-amrwbenc
VPX=on: VP8 video codec support
X11GRAB=on: Enable x11 grabbing
X264=on: H.264 video codec support via x264
XVID=on: Xvid MPEG-4 video codec support
===> Use 'make config' to modify these settings
O comando make install
realiza a instalação do pacote.
Sempre antes de realizar a captura da tela deve-se checar as configurações do mixer caso deseje-se também o audio na gravação. Pode-se utilizar o comando mixer para isso. Como exemplo, esses são os parâmetros de um sistema onde a gravação com áudio está funcionando:
[ota@squitch ~]$ mixer
Mixer vol is currently set to 100:100
Mixer pcm is currently set to 100:100
Mixer speaker is currently set to 100:100
Mixer mic is currently set to 90:90
Mixer cd is currently set to 75:75
Mixer mix is currently set to 90:90
Mixer rec is currently set to 90:90
Mixer igain is currently set to 75:75
Recording source: mic
Um outro pacote que deve ser instalado é o x11/xdpyinfo
, pois ele é que será utilizado para retornar o tamanho da área de trabalho.
Por fim, aqui está o script que deve ser salvo em um arquivo e depois adicionado a permissão de execução para o mesmo (chmod ugo+x nome_do_arquivo
).
#!/bin/sh
if [ -f /var/tmp/$USER.gravatela.pid ]; then
kill -TERM `cat /var/tmp/$USER.gravatela.pid`;
rm -rf cat /var/tmp/$USER.gravatela.pid
else
/usr/local/bin/ffmpeg -y -f oss -async 441 -ar 44100 -i /dev/dsp -f x11grab -s `/usr/local/bin/xdpyinfo | /usr/bin/grep 'dimensions:'| /usr/bin/awk '{print $2}'` -r 40 -i :0.0 -qscale 0 /home/$USER/Desktop/Video.avi &
echo $! > /var/tmp/$USER.gravatela.pid
fi
O funcionamento do script é simples. Ele, a primeira vez que é executado, inicia a captura da área de trabalho e salva em um arquivo na pasta Desktop do usuário. Se executado novamente ele termina o processo de captura. Este script pode ser acionado por um atalho de teclas do Gnome, basta para isso que, no Gnome 2, o usuário vá em Sistema->Preferência->Atalhos de Teclado e adicione um atalho personalizado para o script.
Ps.: Obrigado ao usuário Carlos Eduardo G. Carvalho (Cartola) da lista FUG-BR por ter adicionado ao comando para capturar a tela os parâmetros para capturar o áudio também.