Screencast

De Pontão Nós Digitais

We have our own screencasting software called Screencast, which has some unique advantages (jack support, etc). However, we also use recordmydesktop. We describe 2 approaches for screencasting, and our best practice screencasting workflow.

Índice

Screencast: para screencasts de alta qualidade no linux

Screencast makes it easy to produce high-quality screencasts on Linux with support for JACK Audio and updates in full detail. It is useful for recording video tutorials, video logs, and other computer activity, and works especially well with audio applications such as Pd, Ardour, and chuck. It is multi-threaded and produces smooth results with no jittery sound or loss of fine detail in screen updates.

Start at the README.

Resources


Explicação e utilização em dois comandos

O uso é imediato e de excelênte qualidade. Para modificações de parâmetros, o código de menos de 30 linhas é a documentação. A proposta eh deixar tudo no dedo para a pessoa poder controlar o screencast.

A implementação atual consiste em 2 screenshots (fotos da tela do computador) por segundo, com uma gravacao de audio em qualidade de CD. Isso faz com que tenha refresh total de toda a pagina, sem ignorar pequenas mudancas de texto, mouse ou highlighting. O áudio capturado é um PCM caso esteja gravando instrumentos ou locução com microfone e placa de som. Basta rodar:

   $ python screencast.py

Você interrompe o screencast com dois <ctrl>+c mesmo. Faça-os o mais rápido possível para terminar +- junto as fotos com o áudio.

Nesta etapa temos vários PNGs e um arquivo WAV. O mencoder então entra em ação para resultar em um arquivo de video. Basta rodar:

   $ ./makeVideo.sh

E conferir o arquivo de video AVI: output.avi

Possibilidades e uso corrente

Depois de resultado o arquivo AVI, pode-se eliminar os arquivos criados:

   $ rm *.png *.txt *.wav

Para acrescentar letreiro de entrada ou finalização, basta acrescentar duas copias por segundo de exposicao do letreiro e acrescentrar silencio no começo ou final do arquivo teste.wav. O makeVideo.sh nada mais faz do que colocar dois pngs por segundo, em ordem alfabética, junto com o teste.wav, no arquivo output.avi

Uma nota importante é dar permissao para rodar o makeVideo.sh

   $ chmod +x makeVideo.sh

E nos avisar sobre as facilidades e dificuldades de uso, dado que ateh este momento somente eu rodei.

Codigo

   $ git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/screencast

Ou caso seja commiter do labmacambira ou tenha usuario no sourceforge:

   $ git clone ssh://USERNAME@git.code.sf.net/p/labmacambira/screencast

Miscellaneous Screencasting Techniques

RecordmyDesktop vs. Screencast

Recordmydesktop is the de-facto standard tool in linux for screencasting. The big advantage of our Screencast software is the ability to record multiple sounds of other applications, because Recordmydesktop currently blocks the sound of all other apps. The disadvantage of Screencast is that it currently doesn't show the mouse cursor. Recordmydesktop works fairly well if you follow strict guidelines for recording and manipulating the resulting video. The following are some tried-and-true practical guidelines.

Currently Best Screencasting Workflow from LabMacambiras.sf.net

If you don't need to record simultaneous (jack) audio sources, recordmydesktop is currently used in our workflow instead of Screencast. (todo: translate the following to English)

Recording

Para gravar os videos,

recordmydesktop --full-shots

talvez aumentar o frame rate dele com uma das flags


Transcoding for Vimeo etc

Depois, passe sempre pra Mpeg4. Eh o padrao de fato hoje (o .ogv/Ogg/Theora virou WebM mas por algum motivo WebM nao eh tao difundido, talvez eu esteja errado).

Pra converter daria pra usar FFMPEG ou o seu novo nome/fork avconv da libav. No Ubuntu 11.10 o decodificador de OGV esta meio esquisito no FFMPEG, portanto tive que clonar o libav do Git e compilar do zero. Foi bem facil. A linha de comando pra converter fica:

avconv -i out.ogv -strict experimental -threads 2 -qcomp 1 -qmax 10 out.mp4

Nesse caso o qmax eh o parametro mais importante, dando a qualidade do screencast. Tem que setar pra um valor bem baixo (o maximo acho q eh 63) pois nos nossos screencasts temos que conseguir ler o texto.

Editing

Depois edito no Kdenlive. Eh bem facil e basta assistir o tuto/screencast bem curto do ricolandia em Kdenlive vs Blender.

Rendering the Edited Video and Final Transcoding for Vimeo etc

Na hora de renderizar pro vimeo eu uso o setting de Mp4 e reduzo o bitrate do video para 500. Fica meio grande o video porem fica legivel.

Eh isso, agora eh so' ajustar os transcodings pra gerar arquivos menores sem perder a legibilidade do texto.

Vale ressaltar que o .ogv gerado pelo recordmydesktop quase sempre esta bom. O problema sao os tocadores e codecs que muitas vezes estao ruins. Consigo tocar esse video com o vlc mas nao com o mplayer. E as vezes so' o gxine toca direito. E' incrivel a inconsistencia. Porem, acredite, o .ogv geralmente esta bom e o que esta ruim eh o seu programa usado para le-lo ou transcodifica-lo.

Ferramentas pessoais