Vi imagens GIF animadas de transmissões de tela (como a abaixo) promovidas algumas vezes neste site como uma maneira de melhorar as respostas.
Que cadeia de ferramentas está sendo usada para criá-las? Existe um programa que faça isso automaticamente, ou as pessoas fazem screencasts, os convertem em uma série de quadros estáticos e criam as imagens GIF?
screencast
andrewsomething
fonte
fonte
Respostas:
Olhadinha
É um novo aplicativo que permite gravar facilmente GIFs na tela.
De qualquer forma, lembre-se de que os GIFs têm uma paleta de cores muito limitada, portanto, não é uma boa ideia usá-los.
Desde o Ubuntu 18.10, você pode instalar o Peek diretamente.
Para versões mais antigas do Ubuntu, você pode instalar as versões mais recentes do Peek a partir do seu PPA .
Encontre mais informações no repositório do GitHub .
fonte
Byzanz
O melhor software que já encontrei para gravar screencasts de GIF é o Byzanz.
O Byzanz é ótimo porque grava diretamente no GIF, a qualidade e o FPS são impressionantes, mantendo o tamanho dos arquivos no mínimo.
Instalação
O Byzanz agora está disponível no repositório do universo:
Uso
Quando está instalado, você pode executá-lo em um terminal.
Este é um pequeno exemplo que fiz agora com
fonte
xwininfo
para obter as propriedades da janela.Primeiro instale isto:
esses são os materiais necessários, ImageMagick, MPlayer e Desktop Recorder. Em seguida, use o Desktop Recorder para capturar uma parte da tela / aplicativo a ser usada como screencast. Depois que o Desktop Recorder salvou a gravação em um vídeo OGV , o MPlayer será usado para capturar capturas de tela JPEG, salvando-as no diretório 'output'.
Em um terminal:
Use o ImageMagick para converter as capturas de tela em gifs animados.
você pode otimizar as capturas de tela da seguinte maneira:
fonte
gifsicle -O in.gif -o out.gif
tentei e obtive uma redução de 100x no tamanho do arquivo.convert
etapas em um:convert output/* -layers Optimize output.gif
. Para mim, isso acelerou o tempo de processamento e diminuiu o arquivo de saída. Não vejo motivo para executar essas etapas separadamente. (Eu não tentei o-fuzz 10%
argumento.) #convert
declaração deixou tudo horrível. De acordo com os documentos ( imagemagick.org/script/command-line-options.php#layers ), aoptimize
implementação pode mudar com o tempo. Mas umaconvert
declaração levemente modificada com a-coalesce
bandeira melhorou as coisas, mas ainda não foi para onde era aceitável. Acabei tendo que usar a-layers optimize-transparency
configuração para obter melhores resultados:convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif
visão global
Esta resposta contém três scripts de shell:
byzanz-record-window
- Para selecionar uma janela para gravação.byzanz-record-region
- Para selecionar uma parte da tela para gravação.Introdução
Obrigado Bruno Pereira por me apresentar
byzanz
! É bastante útil para criar animações GIF. As cores podem estar desativadas em alguns casos, mas o tamanho do arquivo compensa isso. Exemplo: 40 segundos, 3.7Mb .Uso
Salve um / todos os dois scripts a seguir em uma pasta dentro do seu
$PATH
. Aqui está um exemplo de como usar o primeiro script para criar um screencast de uma janela específica.byzanz-record-window 30 -c output.gif
$DELAY
), nos quais você se prepara para gravar.beep
função),byzanz
será iniciado.30
etapa 1),byzanz
termina. Um sinal sonoro será transmitido novamente.Eu incluí o
-c
sinalizadorbyzanz-record-window
para ilustrar que quaisquer argumentos ao meu script shell são anexados abyzanz-record
ele mesmo. A-c
bandeira dizbyzanz
para incluir também o cursor no screencast.Veja
man byzanz-record
oubyzanz-record --help
para mais detalhes.byzanz-record-window
byzanz-record-region
Dependência:
xrectsel
de xrectsel . Clone o repositório e executemake
para obter o executável. (Se protestar, não há makefile, execute./bootstrap
e./configure
antes de executar o `make).Versão Gui de
byzanz-record-window
(comentário do MHC ): tomei a liberdade de modificar o script com um simples diálogo GUI
fonte
notify-send
o som estiver desligado.ffmpeg
Uma das melhores ferramentas que eu uso é
ffmpeg
. Ele pode pegar a maioria dos vídeos de uma ferramenta de screencast, comokazam
convertê-los em outro formato.Instale isso no centro de software - ele será instalado automaticamente se você instalar o excelente
ubuntu-restricted-extras
pacote.O Kazam pode produzir nos formatos de vídeo
mp4
ouwebm
. Geralmente, você obtém melhores resultados emmp4
formato.exemplo de sintaxe de criação de GIF
A sintaxe básica para converter vídeo em gif é:
GIFs convertidos - especialmente aqueles com 25/29 quadros por segundo padrão podem ser muito grandes. Por exemplo - um vídeo de 800Kb webm de 15 segundos e 25fps pode gerar 435Mb!
Você pode reduzir isso por vários métodos:
taxa de quadros
Use a opção
-r [frame-per-second]
por exemplo
ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Tamanho reduzido de 435Mb para 19Mb
limite de tamanho de arquivo
Use a opção
-fs [filesize]
por exemplo
ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
Nota - este é um tamanho aproximado do arquivo de saída, portanto o tamanho pode ser um pouco maior que o especificado.
tamanho do vídeo de saída
Use a opção
-s [widthxheight]
por exemplo
ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
Isso reduziu o tamanho do vídeo de 1366x768 de exemplo para 26Mb
loop para sempre
Às vezes, você pode querer que o GIF faça um loop para sempre.
Use a opção
-loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
otimizar e encolher ainda mais
se você usar
imagemagick
convert
com um fator de distorção entre 3% e 10%, poderá reduzir drasticamente o tamanho da imagemfinalmente
combine algumas dessas opções para reduzir a algo gerenciável para o Ask Ubuntu.
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
Seguido por
fonte
demo.mkv
que você pode executar este comandos:docker run --rm -v $(pwd):/tmp/video/ jrottenberg/ffmpeg -i /tmp/video/demo.mkv -framerate 1/2 -pix_fmt rgb24 -loop 0 /tmp/video/demo.gif
,sudo chown $USER:$USER demo.gif
-loop_output
...ubuntu-restricted-extras
excelente ??-loop
. Assim seria-loop 0
. Aqui está um comando que funciona no Ubuntu 16.04.01ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif
.+500,500
é a posição X, Y para iniciar o retângulo 100x100.xgrab
toma a tela como entrada.Silentcast
O Silentcast é outra ótima ferramenta baseada em GUI para criar imagens .gif animadas. Suas características incluem:
4 modos de gravação:
Tela inteira
Janela interior
Janela com decoração
Seleção personalizada
3 formatos de saída:
.gif
.mp4
.webm
.png
(quadros).mkv
Não é necessária instalação (portátil)
Diretório de trabalho personalizado
Fps personalizados
Instalação
Se você deseja uma instalação regular e está executando uma versão suportada do Ubuntu, pode instalar o Silentcast by PPA:
Se você não está executando uma versão suportada do Ubuntu (você realmente deve atualizar!), Precisará baixar a versão mais recente da página do GitHub e satisfazer manualmente as dependências (você pode adquirir o yad e o ffmpeg daqui e aqui, respectivamente) ou, se você estiver executando uma versão um pouco mais recente, como a 13.10, tente fazer o download do .deb diretamente .
Se você estiver usando o Gnome, poderá instalar a extensão Topicons para facilitar a interrupção do Silentcast.
Uso
Inicie o Silentcast a partir da interface gráfica do seu ambiente de área de trabalho ou execute o
silentcast
comando em um terminal. Escolha suas configurações e siga as instruções na tela. Quando terminar de gravar, você verá uma caixa de diálogo para otimizar a saída final removendo um certo número de quadros.Para diretrizes de uso mais detalhadas, consulte o README, a versão on - line do GitHub ou a versão local armazenada no
/usr/share/doc/silentcast
zless ou no seu editor favorito.Notas:
O Silentcast ainda está em fase de desenvolvimento e, embora seja bastante estável, você pode encontrar alguns bugs. Se sim, informe-os no rastreador de problemas do GitHub do projeto . Se você tiver problemas para instalar a partir do PPA e estiver executando uma versão suportada do Ubuntu, deixe um comentário abaixo ou entre em contato com o mantenedor (me) no Launchpad.
fonte
Existem todos os tipos de maneiras complicadas e bem-funcionais (presumivelmente) de fazer isso listadas aqui. No entanto, eu nunca quis passar por esse processo antes nem depois. Portanto, eu simplesmente uso um conversor on-line que atenda às minhas necessidades nas poucas vezes em que for necessário. Eu usei este site:
http://ezgif.com/video-to-gif
Não é o meu site e não sou afiliado a eles de forma alguma. Eles são os únicos nos meus favoritos e existem muitos mais.
fonte
Eu criei
record-gif.sh
uma versão melhorada do Rob W'sbyzanz-record-region
:duration
;save_as
destino;$HOME/record.again
).Instalar
Eu também criei um script de instalação
fonte
sudo apt install autoconf byzanz
antes de executar este script. não está instalado por padrão no ubuntuautoconf
ebyzanz
. Você poderia tentar?imagemagick
mplayer
gtk-recordmydesktop
ogv2gif.sh
em https://github.com/nicolas-raoul/ogv2gif./ogv2gif.sh yourscreencast.ogv
100% inspirado na resposta de maniat1k .
fonte
Se você quiser ficar ainda mais sofisticado, use um método mais sofisticado do que os gifs animados usando o screencasting de tela HTMl5. O projeto x11-canvas-screencast criará uma captura de tela animada em tela html5.
Você pode ter visto alguns exemplos famosos dessa tecnologia no site Sublime Text.
x11-canvas-screencast
leva esse método um passo adiante ao incorporar o rastreamento do cursor do mouse. Aqui está uma demonstração do que o x11-canvas-screencast produzO resultado é melhor do que um gif animado, pois não se limita ao número de cores que possui e ocupa menos largura de banda.
fonte
Ok, então para capturar também os cliques do mouse, a única coisa que encontrei foi
key-mon
(via README ofscreenkey
):https://code.google.com/archive/p/key-monhttps://github.com/critiqjo/key-monsudo apt-get install key-mon
Então eu:
key-mon
xrectsel
para colocar as coordenadas da tela em umbyzanz
comandobyzanz
comando... e fica mais ou menos assim:
Observe que
key-mon --visible_click
desenharia um círculo ao redor do ponteiro do mouse ao clicar com o mouse - o que eu preferiria, mas no Ubuntu 14.04.5 LTS isso está um pouco quebrado, pois esse círculo não aparece e desaparece rápido o suficiente para ilustrar corretamente os cliques (ou seja, pressionamentos e liberações do mouse).fonte
Eu criei recentemente uma versão combinada de scripts já postados aqui.
Basicamente, ele permite gravar a região da tela, mas com uma GUI simples.
Obrigado por Rob W por fornecer esses scripts legais
Aqui está o código (ou essência, se você quiser):
fonte
Se você também quiser gravações visíveis de cliques do mouse ou pressionamentos de tecla, a screenkey é sua melhor aposta: https://github.com/wavexx/screenkey
fonte
screenkey
lidar com os cliques do mouse (parece ser apenas para indicação do teclado); no entanto, seu README refere-se aokey-mon
que pode fazer isso, veja minha resposta abaixo.Use
gtk-recordmydesktop
effmpeg
:apt-get install gtk-recordmydesktop ffmpeg
Execute o RecordMyDesktop capture uma parte da tela / aplicativo para usar como screencast:
Crie
ogv2gif.sh
com o seguinte conteúdo:Use-o :
Referências :
fonte
Eu testei todo o método acima, achei o mais simples é:
o fps é original e o tamanho do gif é menor que o arquivo ogv.
fonte