He visto imágenes GIF animadas de transmisiones de pantalla (como la siguiente) promovidas varias veces en este sitio como una forma de mejorar las respuestas.
¿Qué cadena de herramientas se está utilizando para crear estos? ¿Existe algún programa que lo haga de forma automática, o las personas toman screencasts, los convierten en una serie de cuadros estáticos y luego crean las imágenes GIF?
screencast
andrewsomething
fuente
fuente
Respuestas:
Ojeada
Es una nueva aplicación que te permite grabar fácilmente GIF desde tu pantalla.
De todos modos, tenga en cuenta que los GIF tienen una paleta de colores muy limitada, por lo que no es una buena idea usarlos.
Desde Ubuntu 18.10 puedes instalar Peek directamente.
Para versiones anteriores de Ubuntu, puede instalar las últimas versiones de Peek desde su PPA .
Encuentra más información en el repositorio de GitHub .
fuente
Byzanz
Byzanz es el mejor software que he encontrado para grabar screencasts GIF.
Byzanz es excelente porque graba directamente en GIF, la calidad y el FPS es impresionante, manteniendo el tamaño de los archivos al mínimo.
Instalación
Byzanz ahora está disponible desde el repositorio del universo:
Uso
Cuando está instalado, puede ejecutarlo en una terminal.
Este es un pequeño ejemplo que acabo de hacer con
fuente
xwininfo
para obtener las propiedades de la ventana.Primero instale esto:
esas son las cosas requeridas, ImageMagick, MPlayer y Desktop Recorder. Luego use Desktop Recorder para capturar una parte de la pantalla / aplicación para usar como screencast. Después de que Desktop Recorder haya guardado la grabación en un video OGV , MPlayer se usará para capturar capturas de pantalla JPEG, guardándolas en el directorio 'salida'.
En una terminal:
Usa ImageMagick para convertir las capturas de pantalla en gifs animados.
puedes optimizar las capturas de pantalla de esta manera:
fuente
gifsicle -O in.gif -o out.gif
acabo de probar y obtuve una reducción de 100x en el tamaño del archivo.convert
pasos en uno:convert output/* -layers Optimize output.gif
. Para mí, esto aceleró el tiempo de procesamiento y redujo el tamaño del archivo de salida. No veo ninguna razón para hacer esos pasos por separado. (No probé el-fuzz 10%
argumento.)convert
declaración lo hizo más que horrible. Según los documentos ( imagemagick.org/script/command-line-options.php#layers ), laoptimize
implementación puede cambiar con el tiempo. Pero unaconvert
declaración ligeramente modificada con la-coalesce
bandera mejoró las cosas, pero aún no a donde era aceptable. Terminé teniendo que usar la-layers optimize-transparency
configuración para obtener mejores resultados:convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif
Visión de conjunto
Esta respuesta contiene tres scripts de shell:
byzanz-record-window
- Para seleccionar una ventana para la grabación.byzanz-record-region
- Para seleccionar una parte de la pantalla para grabar.Introducción
¡Gracias Bruno Pereira por presentarme
byzanz
! Es bastante útil para crear animaciones GIF. Los colores pueden estar apagados en algunos casos, pero el tamaño del archivo lo compensa. Ejemplo: 40 segundos, 3.7Mb .Uso
Guarde uno / todos los siguientes dos scripts en una carpeta dentro de su
$PATH
. Aquí hay un ejemplo sobre el uso del primer script para hacer una transmisión de pantalla de una ventana específica.byzanz-record-window 30 -c output.gif
$DELAY
), en el que se prepara para la grabación.beep
función),byzanz
comenzará.30
paso 1),byzanz
finaliza. Se emitirá un pitido nuevamente.Incluí la
-c
banderabyzanz-record-window
para ilustrar que cualquier argumento de mi script de shell se agrega abyzanz-record
sí mismo. La-c
bandera le dicebyzanz
que también incluya el cursor en el screencast.Ver
man byzanz-record
obyzanz-record --help
para más detalles.byzanz-record-window
byzanz-record-region
Dependencia:
xrectsel
de xrectsel . Clone el repositorio y ejecútelomake
para obtener el ejecutable. (Si protesta no hay un archivo MAKE, ejecute./bootstrap
y./configure
antes de ejecutar `make).Versión gui de
byzanz-record-window
(comentario de MHC ): me he tomado la libertad de modificar el script con un simple diálogo GUI
fuente
notify-send
también en caso de que mi sonido esté apagado.ffmpeg
Una de las mejores herramientas que uso es
ffmpeg
. Puede tomar la mayoría de los videos de una herramienta de screencast comokazam
convertirlos a otro formato.Instale esto desde el centro de software : se instala automáticamente si instala el excelente
ubuntu-restricted-extras
paquete.Kazam puede emitir en formatos de video
mp4
owebm
. En general, obtiene mejores resultados enmp4
formato.ejemplo de sintaxis de creación de GIF
La sintaxis básica para convertir video a gif es:
GIF convertidos: especialmente aquellos con un estándar de 25/29 fotogramas por segundo pueden ser muy grandes. Por ejemplo, ¡un video web de 15 segundos de 800 Kb a 25 fps puede generar 435 Mb!
Puede reducir esto mediante varios métodos:
cuadros por segundo
Usa la opción
-r [frame-per-second]
por ejemplo
ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Tamaño reducido de 435Mb a 19Mb
límite de tamaño de archivo
Usa la opción
-fs [filesize]
por ejemplo
ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
Nota: este es un tamaño de archivo de salida aproximado, por lo que el tamaño puede ser ligeramente mayor que el especificado.
tamaño del video de salida
Usa la opción
-s [widthxheight]
por ejemplo
ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
Esto redujo el tamaño del video de ejemplo 1366x768 a 26Mb
bucle para siempre
A veces es posible que desee que el GIF se repita para siempre.
Usa la opción
-loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
optimizar y reducir aún más
Si usa
imagemagick
convert
un factor de fuzz entre 3% y 10%, puede reducir drásticamente el tamaño de la imagenfinalmente
combine algunas de estas opciones para reducir a algo manejable para Ask Ubuntu.
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
seguido por
fuente
demo.mkv
puede ejecutar estos 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
es excelente?-loop
. Así sería-loop 0
. Aquí hay un comando de trabajo en Ubuntu 16.04.01ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif
.+500,500
es la posición X, Y para comenzar el rectángulo de 100x100.xgrab
toma la pantalla como entrada.Silentcast
Silentcast es otra gran herramienta basada en GUI para crear imágenes animadas .gif. Sus características incluyen:
4 modos de grabación:
Pantalla completa
Ventana interior
Ventana con decoracion
La selección personalizada
3 formatos de salida:
.gif
.mp4
.webm
.png
(marcos).mkv
No es necesaria la instalación (portátil)
Directorio de trabajo personalizado
Fps personalizados
Instalación
Si desea una instalación regular y está ejecutando una versión compatible de Ubuntu, puede instalar Silentcast by PPA:
Si no está ejecutando una versión compatible de Ubuntu (¡realmente debería actualizar!), Deberá descargar la última versión de la página de GitHub y satisfacer manualmente las dependencias (puede adquirir yad y ffmpeg desde aquí y aquí, respectivamente) o, si está ejecutando una versión un poco más reciente, como la 13.10, puede intentar descargar el .deb directamente .
Si está utilizando Gnome, es posible que desee instalar la extensión Topicons para facilitar la detención de Silentcast.
Uso
Inicie Silentcast desde la interfaz gráfica de usuario de su entorno de escritorio o ejecute el
silentcast
comando en una terminal. Elija su configuración y siga las instrucciones en pantalla. Cuando termine de grabar, se le presentará un cuadro de diálogo para optimizar la salida final eliminando un cierto número de fotogramas.Para obtener pautas de uso más detalladas, consulte README, ya sea la versión en línea de GitHub o la versión local almacenada
/usr/share/doc/silentcast
con zless o su editor favorito.Notas:
Silentcast todavía está en la etapa de desarrollo y, aunque es bastante estable, puede encontrar algunos errores. Si lo hace, infórmelos en el rastreador de problemas de GitHub del proyecto . Si tiene problemas para instalar desde el PPA y está ejecutando una versión compatible de Ubuntu, deje un comentario a continuación o comuníquese con el mantenedor (yo) en Launchpad.
fuente
Hay todo tipo de formas complicadas y que funcionan bien (presumiblemente) para hacer esto enumeradas aquí. Sin embargo, nunca he querido pasar por ese proceso antes ni después. Entonces, simplemente uso un convertidor en línea que se adapta a mis necesidades las pocas veces que necesito hacerlo. He usado este sitio:
http://ezgif.com/video-to-gif
No es mi sitio y no estoy afiliado a ellos de ninguna manera. Son solo uno de mis marcadores y hay muchos más.
fuente
Creé
record-gif.sh
una versión mejorada de Rob Wbyzanz-record-region
:duration
;save_as
destino;$HOME/record.again
).Instalar en pc
También creé un script de instalación
fuente
sudo apt install autoconf byzanz
Debe hacerlo antes de ejecutar este script. no está instalado por defecto en ubuntuautoconf
ybyzanz
. ¿Podrías probarlo?imagemagick
mplayer
gtk-recordmydesktop
ogv2gif.sh
desde https://github.com/nicolas-raoul/ogv2gif./ogv2gif.sh yourscreencast.ogv
100% inspirado en la respuesta de maniat1k .
fuente
Si quieres ser aún más elegante, puedes usar un método más sofisticado que los gifs animados usando el screencast de lienzo HTMl5. El proyecto x11-canvas-screencast creará una captura de pantalla animada de lienzo html5.
Es posible que haya visto algunos ejemplos famosos de esta tecnología en el sitio web de Sublime Text.
x11-canvas-screencast
lleva este método un paso más allá al incorporar el seguimiento del cursor del mouse. Aquí hay una demostración de lo que produce x11-canvas-screencastEl resultado es mejor que un gif animado, ya que no se limita a la cantidad de colores que tiene y requiere menos ancho de banda.
fuente
De acuerdo, para capturar también los clics del mouse, lo único que encontré fue
key-mon
(a través del archivo README descreenkey
):https://code.google.com/archive/p/key-monhttps://github.com/critiqjo/key-monsudo apt-get install key-mon
Entonces yo:
key-mon
xrectsel
para poner las coordenadas de la pantalla en unbyzanz
comandobyzanz
comando... y se ve más o menos así:
Tenga en cuenta que
key-mon --visible_click
dibujaría un círculo alrededor del puntero del mouse al hacer clic con el mouse, lo que preferiría, pero en Ubuntu 14.04.5 LTS esto está algo roto, ya que este círculo no aparece y desaparece lo suficientemente rápido para ilustrar correctamente los clics (es decir, prensas y lanzamientos de mouse).fuente
Recientemente creé una versión combinada de los scripts ya publicados aquí.
Básicamente, le permite grabar la región de la pantalla, pero con una GUI simple.
Gracias por Rob W por proporcionar esos scripts geniales
Aquí está el código (o lo esencial si lo desea):
fuente
Si también desea grabaciones visibles de clics del mouse o pulsaciones de teclas, entonces screenkey es su mejor opción: https://github.com/wavexx/screenkey
fuente
screenkey
manejaría los clics del mouse (parece ser solo para indicación del teclado), sin embargo, su README se refiere akey-mon
qué puede hacer eso, vea mi respuesta a continuación.Uso
gtk-recordmydesktop
yffmpeg
:apt-get install gtk-recordmydesktop ffmpeg
Ejecute RecordMyDesktop para capturar una parte de la pantalla / aplicación para usar como screencast:
Crea
ogv2gif.sh
con el siguiente contenido:Úselo:
Referencias
fuente
Pruebo todo el método anterior, encontré que el más simple es:
el fps es original y el tamaño de gif es menor que el archivo ogv.
fuente