Convert a ttyrec record into a gif animation directly (almost vt102 compatible terminal emulation).
Clone or download
Pull request Compare This branch is 199 commits ahead, 39 commits behind uobikiemukot:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
glyph
images
tests/data
tools
.coveralls.yml
.travis.yml
COPYING
ChangeLog
INSTALL
LICENSE.mplus
LICENSE.yaft
Makefile.am
Makefile.in
README.md
README.milkjf
README.mplus
aclocal.m4
color.h
compile
config.h.in
configure
configure.ac
dcs.c
dcs.h
depcomp
function.c
function.h
gifsave89.c
gifsave89.h
install-sh
main.c
malloc_stub.c
malloc_stub.h
missing
package.json
package.json.in
parse.c
parse.h
pseudo.c
pseudo.h
terminal.c
terminal.h
util.c
util.h
wcwidth.c
wcwidth.h
yaft.h

README.md

seq2gif

Build Status Coverage Status

Description

This software converts a sequences record file generated by ttyrec into a gif animation directly(without taking screenshots), by using portable built-in terminal emulation engine originated from yaft. yaft provides rare terminal emulation features such as SIXEL/DRCS.

Demo

Play sl.

img2sixel

Show SIXEL animation with img2sixel.

img2sixel

The following demo plays sl and records it with ttyrec, and converts that record into a GIF animation using seq2gif, and converts that GIF into a SIXEL animation and plays it with img2sixel. Furthermore, generates the log record of above experience using ttyrec, and converts that log into the following GIF animation.

ttyrec

Download

Source package and Windows binary is available.

Build and Install

This software works in Windows, Linux, BSDs and OSX. If you want to build windows native build, MinGW is required.

  $ ./configure
  $ make
  # make install

Packages

Usage

Usage: seq2gif [Options] < ttyrecord > record.gif
       seq2gif [Options] -i ttyrecord -o record.gif

Options:
-w WIDTH, --width=WIDTH                specify terminal width in cell size.
                                       (default: 80)
-h HEIGHT, --height=HEIGHT             specify terminal height in cell size.
                                       (default: 24)
-l DELAY, --last-frame-delay=DELAY     specify delay in msec which is added
                                       to the last frame. (default: 300)
-f COLORNO, --foreground-color=COLORNO specify foreground color palette.
                                       number.
-b COLORNO, --background-color=COLORNO specify background color palette
                                       number.
-c COLORNO, --cursor-color=COLORNO     specify cursor color palette
                                       number.
-t TABSTOP, --tabstop=TABSTOP          specify hardware tabstop(default: 8)
-j, --cjkwidth                         treat East Asian Ambiguous width
                                       characters (UAX#11) as wide.
-r COUNT, --repeat=COUNT               specify animation repeat count. loop
                                       infinitely if 0 is given. (default: 0)
-i FILE, --input=FILE                  specify input file name. use STDIN
                                       if '-' is given. (default: '-')
-o FILE, --output=FILE                 specify output file name. use STDOUT
                                       if '-' is given. (default: '-')
-V, --version                          show version and license information.
-H, --help                             show this help.
-I DELAY, --render-interval=DELAY      skip frames with smaller delays than
                                       DELAY specified in milliseconds.
                                       (default: 20)
-s NUM, --play-speed=NUM               specify the factor of the play speed.
                                       A larger value means faster play.
                                       (default: 1.0)

Acknowledgements

recterm

This program is derived from recterm written by haru (@uobikiemukot)

yaft

Some part of glyph data generator(glyph/*) is imported from yaft written by haru (@uobikiemukot)

gifsave89

GIF encoder (gifsave89.c) is imported from gifsave89 distributed under GPLv3+ by John Forkosh Associates, Inc.(john@forkosh.com)

milkjf

This package includes a milkjf font and its derivative(gryph/milkjf.h). Original milkjf font was designed by japanfarm (Nihon-Nouen) and used on Sharp X68000 series. Chisato Yamauchi converted milkjf font to bdf for X Window System. haru(@uobikiemukot) converted it to a C-styled header file.

M+ BITMAP FONTS

This package includes M+ Bitmap Font and its derivative(gryph/mplus.h).

License:

M+ BITMAP FONTS            Copyright 2002-2005  COZ <coz@users.sourceforge.jp>

LICENSE

These fonts are free softwares.
Unlimited permission is granted to use, copy, and distribute it, with
or without modification, either commercially and noncommercially.
THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.

GNU Unifont

This package includes GNU Unifont Glyphs and its derivative(gryph/unifont.h).

License: GPLv2+ http://unifoundry.com/LICENSE.txt

M+ BITMAP FONTS            Copyright 2002-2005  COZ <coz@users.sourceforge.jp>

LICENSE

These fonts are free softwares.
Unlimited permission is granted to use, copy, and distribute it, with
or without modification, either commercially and noncommercially.
THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.

M+ BITMAP FONTS

This package includes a C header file derived from M+ font(gryph/mplus.h).

Markus Kuhn's wcwidth

This package includes Markus Kuhn's wcwidth(mk_wcwidth)

Markus Kuhn -- 2007-05-26 (Unicode 5.0)

Permission to use, copy, modify, and distribute this software
for any purpose and without fee is hereby granted. The author
disclaims all warranties with regard to this software.

Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c

Contributors

Similar Software

sugyan/ttyrec2gif

This also generates GIF animation without taking screenshots, written in Go. Using j4k.co/terminal as terminal emulation engine(). It is derived from sugyan/ttygif.

uobikiemukot/recterm/tools/rec2gif.c

Additional tools which uses yaft terminal emulation engine, distributed with uobikiemukot/recterm.

References

ttyrec

A tty recorder.

ttyrec4windows

A Windows port for ttyrec written in Go.

License

GPLv3