Comments (16)
I've encountered the same error result. To workaround the issue, I was able to convert a 4 min recording (into a 3.5Mb Gif) on a 16gb RAM box by providing the following Imagemagick, NodeOpts and GIFSICLE options. Not sure if the NODE_OPTS is absolutely required, but the trick for me was to add the MAGICK_* env vars to avoid having the convert
command being killed by my linux kernel prematurely - thus resulting in an empty file failure.
docker run --rm -e "GIFSICLE_OPTS=--lossy=80" -e "NODE_OPTS=--max-old-space-size=12288" -e "MAGICK_MEMORY_LIMIT=6gb" -e "MAGICK_MAP_LIMIT=12gb" -v /home/ubuntu:/data asciinema/asciicast2gif -s 2 -t solarized-dark demo.json demo.gif
from asciicast2gif.
The approach I took with asciicast2gif didn't really scale well... as we see above. It's hard to optimize it, especially when multiple independent tools are used together. That memory and disk usage we observed is crazy.
So I played with a different approach, and the result is https://github.com/asciinema/agg . It's written in Rust, does all the rendering and gif writing without using external tools, and it does it super fast, using very little memory. Please try it out 🤞 I tested it on many recordings and I'm yet to find one where agg fails.
Having said that, I don't plan to work on asciicast2gif anymore, so I'm going to close this.
from asciicast2gif.
I have the same problem. convert
seems to use all the available memory (10GB) and then it's killed by the kernel. The recording is only about one minute.
from asciicast2gif.
@dustinblack that's interesting thought. I never thought of that but that's possible. And specifically this may about the number of args passed to convert
(which combines the images), not to gifsicle
.
from asciicast2gif.
My problem was actually the line:
convert -loop 0
-> convert -limit memory 2GiB -loop 0
If convert goes unbounded with enough gifs it will claim all the computer's memory.
from asciicast2gif.
Does this happen with all longer recordings or only one specific?
from asciicast2gif.
It's happening on my 2 minute recording
from asciicast2gif.
I've implemented some optimizations:
- the biggest impact on resource usage was too high frame-rate - it's capped at 15fps now
- added support for giflossy (if giflossy is installed instead of gifsicle the options passed to gifsicle command are extended with
-lossy=80
)
I've pushed new version to npm, and there's new image on Docker hub (docker pull asciinema/asciicast2gif
if you previously pulled it).
You can set GIFSICLE_OPTS
env var to override the options passed to gifsicle, which is great for experimenting with different color/optimization/lossyiness combinations.
Let me know if that helped!
from asciicast2gif.
With the latest docker image I was able to convert my recordings, thanks a lot 👍
from asciicast2gif.
I've run into this, too. I think it is a problem with the length of the command line passed to gifsicle rather than directly related to the length of the recording.
from asciicast2gif.
The failure output I get seems to show a truncated command line to gifsicle. I think convert completes successfully.
from asciicast2gif.
Similar issue here with the latest docker image. It was approximately a 5 minute asciinema cast around 51kb. I replicated the command from @joshisa and was able to get it to complete.
REPOSITORY TAG IMAGE ID CREATED SIZE
asciinema/asciicast2gif latest 54698cc15d97 2 months ago 398MB
$ docker run --rm -v $PWD:/data asciinema/asciicast2gif roosevelt.json roosevelt.gif
==> Loading roosevelt.json...
==> Spawning PhantomJS renderer...
==> Generating frame screenshots...
==> Combining 298 screenshots into GIF file...
Killed
gifsicle:<stdin>: empty file
/app/main.js:697
Qe)}function ep(a){try{var b=a[0];return b.h?b.h(a):b.call(null,a)}catch(c){if(c instanceof Object)throw b=c,Yo(a[6]),b;throw c;}}function fp(a,b,c){c=Zo(c,dp(function(c){a[2]=c;a[1]=b;return ep(a)}));return r(c)?(a[2]=Nb(c),a[1]=b,dj):null}function gp(a,b){a=a[6];null!=b&&a.Dc(null,b,dp(function(){return function(){return null}}(a)));Yo(a);return a}
Error: Command failed: convert -loop 0 -delay 53 /tmp/tmp.WTCofe7xS6/0.png -delay 53 /tmp/tmp.WTCofe7xS6/1.png -delay 6 /tmp/tmp.WTCofe7xS6/2.png -delay 6 /tmp/tmp.WTCofe7xS6/3.png -delay 13 /tmp/tmp.WTCofe7xS6/4.png -delay 13 /tmp/tmp.WTCofe7xS6/5.png -delay 6 /tmp/tmp.WTCofe7xS6/6.png -delay 6 /tmp/tmp.WTCofe7xS6/7.png -delay 26 /tmp/tmp.WTCofe7xS6/8.png -delay 6 /tmp/tmp.WTCofe7xS6/9.png -delay 53 /tmp/tmp.WTCofe7xS6/10.png -delay 13 /tmp/tmp.WTCofe7xS6/11.png -delay 6 /tmp/tmp.WTCofe7xS6/12.png -delay 13 /tmp/tmp.WTCofe7xS6/13.png -delay 13 /tmp/tmp.WTCofe7xS6/14.png -delay 46 /tmp/tmp.WTCofe7xS6/15.png -delay 13 /tmp/tmp.WTCofe7xS6/16.png -delay 6 /tmp/tmp.WTCofe7xS6/17.png -delay 6 /tmp/tmp.WTCofe7xS6/18.png -delay 6 /tmp/tmp.WTCofe7xS6/19.png -delay 13 /tmp/tmp.WTCofe7xS6/20.png -delay 6 /tmp/tmp.WTCofe7xS6/21.png -delay 13 /tmp/tmp.WTCofe7xS6/22.png -delay 20 /tmp/tmp.WTCofe7xS6/23.png -delay 46 /tmp/tmp.WTCofe7xS6/24.png -delay 20 /tmp/tmp.WTCofe7xS6/25.png -delay 13 /tmp/tmp.WTCofe7xS6/26.png -delay 26 /tmp/tmp.WTCofe7xS6/27.png -delay 6 /tmp/tmp.WTCofe7xS6/28.png -delay 13 /tmp/tmp.WTCofe7xS6/29.png -delay 6 /tmp/tmp.WTCofe7xS6/30.png -delay 13 /tmp/tmp.WTCofe7xS6/31.png -delay 6 /tmp/tmp.WTCofe7xS6/32.png -delay 20 /tmp/tmp.WTCofe7xS6/33.png -delay 13 /tmp/tmp.WTCofe7xS6/34.png -delay 6 /tmp/tmp.WTCofe7xS6/35.png -delay 26 /tmp/tmp.WTCofe7xS6/36.png -delay 13 /tmp/tmp.WTCofe7xS6/37.png -delay 13 /tmp/tmp.WTCofe7xS6/38.png -delay 6 /tmp/tmp.WTCofe7xS6/39.png -delay 6 /tmp/tmp.WTCofe7xS6/40.png -delay 6 /tmp/tmp.WTCofe7xS6/41.png -delay 6 /tmp/tmp.WTCofe7xS6/42.png -delay 6 /tmp/tmp.WTCofe7xS6/43.png -delay 20 /tmp/tmp.WTCofe7xS6/44.png -delay 26 /tmp/tmp.WTCofe7xS6/45.png -delay 13 /tmp/tmp.WTCofe7xS6/46.png -delay 19 /tmp/tmp.WTCofe7xS6/47.png -delay 13 /tmp/tmp.WTCofe7xS6/48.png -delay 13 /tmp/tmp.WTCofe7xS6/49.png -delay 6 /tmp/tmp.WTCofe7xS6/50.png -delay 20 /tmp/tmp.WTCofe7xS6/51.png -delay 19 /tmp/tmp.WTCofe7xS6/52.png -delay 6 /tmp/tmp.WTCofe7xS6/53.png -delay 6 /tmp/tmp.WTCofe7xS6/54.png -delay 6 /tmp/tmp.WTCofe7xS6/55.png -delay 19 /tmp/tmp.WTCofe7xS6/56.png -delay 6 /tmp/tmp.WTCofe7xS6/57.png -delay 6 /tmp/tmp.WTCofe7xS6/58.png -delay 6 /tmp/tmp.WTCofe7xS6/59.png -delay 13 /tmp/tmp.WTCofe7xS6/60.png -delay 6 /tmp/tmp.WTCofe7xS6/61.png -delay 13 /tmp/tmp.WTCofe7xS6/62.png -delay 6 /tmp/tmp.WTCofe7xS6/63.png -delay 6 /tmp/tmp.WTCofe7xS6/64.png -delay 26 /tmp/tmp.WTCofe7xS6/65.png -delay 13 /tmp/tmp.WTCofe7xS6/66.png -delay 13 /tmp/tmp.WTCofe7xS6/67.png -delay 13 /tmp/tmp.WTCofe7xS6/68.png -delay 19 /tmp/tmp.WTCofe7xS6/69.png -delay 13 /tmp/tmp.WTCofe7xS6/70.png -delay 6 /tmp/tmp.WTCofe7xS6/71.png -delay 6 /tmp/tmp.WTCofe7xS6/72.png -delay 6 /tmp/tmp.WTCofe7xS6/73.png -delay 79 /tmp/tmp.WTCofe7xS6/74.png -delay 6 /tmp/tmp.WTCofe7xS6/75.png -delay 13 /tmp/tmp.WTCofe7xS6/76.png -delay 13 /tmp/tmp.WTCofe7xS6/77.png -delay 33 /tmp/tmp.WTCofe7xS6/78.png -delay 13 /tmp/tmp.WTCofe7xS6/79.png -delay 13 /tmp/tmp.WTCofe7xS6/80.png -delay 6 /tmp/tmp.WTCofe7xS6/81.png -delay 13 /tmp/tmp.WTCofe7xS6/82.png -delay 19 /tmp/tmp.WTCofe7xS6/83.png -delay 6 /tmp/tmp.WTCofe7xS6/84.png -delay 6 /tmp/tmp.WTCofe7xS6/85.png -delay 20 /tmp/tmp.WTCofe7xS6/86.png -delay 6 /tmp/tmp.WTCofe7xS6/87.png -delay 186 /tmp/tmp.WTCofe7xS6/88.png -delay 6 /tmp/tmp.WTCofe7xS6/89.png -delay 6 /tmp/tmp.WTCofe7xS6/90.png -delay 59 /tmp/tmp.WTCofe7xS6/91.png -delay 6 /tmp/tmp.WTCofe7xS6/92.png -delay 13 /tmp/tmp.WTCofe7xS6/93.png -delay 40 /tmp/tmp.WTCofe7xS6/94.png -delay 13 /tmp/tmp.WTCofe7xS6/95.png -delay 13 /tmp/tmp.WTCofe7xS6/96.png -delay 6 /tmp/tmp.WTCofe7xS6/97.png -delay 6 /tmp/tmp.WTCofe7xS6/98.png -delay 19 /tmp/tmp.WTCofe7xS6/99.png -delay 13 /tmp/tmp.WTCofe7xS6/100.png -delay 13 /tmp/tmp.WTCofe7xS6/101.png -delay 6 /tmp/tmp.WTCofe7xS6/102.png -delay 13 /tmp/tmp.WTCofe7xS6/103.png -delay 86 /tmp/tmp.WTCofe7xS6/104.png -delay 20 /tmp/tmp.WTCofe7xS6/105.png -delay 13 /tmp/tmp.WTCofe7xS6/106.png -delay 53 /tmp/tmp.WTCofe7xS6/107.png -delay 6 /tmp/tmp.WTCofe7xS6/108.png -delay 13 /tmp/tmp.WTCofe7xS6/109.png -delay 13 /tmp/tmp.WTCofe7xS6/110.png -delay 13 /tmp/tmp.WTCofe7xS6/111.png -delay 13 /tmp/tmp.WTCofe7xS6/112.png -delay 19 /tmp/tmp.WTCofe7xS6/113.png -delay 19 /tmp/tmp.WTCofe7xS6/114.png -delay 13 /tmp/tmp.WTCofe7xS6/115.png -delay 6 /tmp/tmp.WTCofe7xS6/116.png -delay 6 /tmp/tmp.WTCofe7xS6/117.png -delay 19 /tmp/tmp.WTCofe7xS6/118.png -delay 59 /tmp/tmp.WTCofe7xS6/119.png -delay 86 /tmp/tmp.WTCofe7xS6/120.png -delay 6 /tmp/tmp.WTCofe7xS6/121.png -delay 53 /tmp/tmp.WTCofe7xS6/122.png -delay 73 /tmp/tmp.WTCofe7xS6/123.png -delay 6 /tmp/tmp.WTCofe7xS6/124.png -delay 6 /tmp/tmp.WTCofe7xS6/125.png -delay 6 /tmp/tmp.WTCofe7xS6/126.png -delay 6 /tmp/tmp.WTCofe7xS6/127.png -delay 133 /tmp/tmp.WTCofe7xS6/128.png -delay 6 /tmp/tmp.WTCofe7xS6/129.png -delay 93 /tmp/tmp.WTCofe7xS6/130.png -delay 6 /tmp/tmp.WTCofe7xS6/131.png -delay 6 /tmp/tmp.WTCofe7xS6/132.png -delay 6 /tmp/tmp.WTCofe7xS6/133.png -delay 160 /tmp/tmp.WTCofe7xS6/134.png -delay 39 /tmp/tmp.WTCofe7xS6/135.png -delay 40 /tmp/tmp.WTCofe7xS6/136.png -delay 146 /tmp/tmp.WTCofe7xS6/137.png -delay 6 /tmp/tmp.WTCofe7xS6/138.png -delay 6 /tmp/tmp.WTCofe7xS6/139.png -delay 6 /tmp/tmp.WTCofe7xS6/140.png -delay 6 /tmp/tmp.WTCofe7xS6/141.png -delay 6 /tmp/tmp.WTCofe7xS6/142.png -delay 2346 /tmp/tmp.WTCofe7xS6/143.png -delay 6 /tmp/tmp.WTCofe7xS6/144.png -delay 6 /tmp/tmp.WTCofe7xS6/145.png -delay 6 /tmp/tmp.WTCofe7xS6/146.png -delay 6099 /tmp/tmp.WTCofe7xS6/147.png -delay 6 /tmp/tmp.WTCofe7xS6/148.png -delay 6 /tmp/tmp.WTCofe7xS6/149.png -delay 6 /tmp/tmp.WTCofe7xS6/150.png -delay 113 /tmp/tmp.WTCofe7xS6/151.png -delay 6 /tmp/tmp.WTCofe7xS6/152.png -delay 6 /tmp/tmp.WTCofe7xS6/153.png -delay 6 /tmp/tmp.WTCofe7xS6/154.png -delay 6 /tmp/tmp.WTCofe7xS6/155.png -delay 13 /tmp/tmp.WTCofe7xS6/156.png -delay 6 /tmp/tmp.WTCofe7xS6/157.png -delay 6 /tmp/tmp.WTCofe7xS6/158.png -delay 26 /tmp/tmp.WTCofe7xS6/159.png -delay 46 /tmp/tmp.WTCofe7xS6/160.png -delay 193 /tmp/tmp.WTCofe7xS6/161.png -delay 6 /tmp/tmp.WTCofe7xS6/162.png -delay 6 /tmp/tmp.WTCofe7xS6/163.png -delay 13 /tmp/tmp.WTCofe7xS6/164.png -delay 706 /tmp/tmp.WTCofe7xS6/165.png -delay 93 /tmp/tmp.WTCofe7xS6/166.png -delay 133 /tmp/tmp.WTCofe7xS6/167.png -delay 6 /tmp/tmp.WTCofe7xS6/168.png -delay 133 /tmp/tmp.WTCofe7xS6/169.png -delay 13 /tmp/tmp.WTCofe7xS6/170.png -delay 246 /tmp/tmp.WTCofe7xS6/171.png -delay 6 /tmp/tmp.WTCofe7xS6/172.png -delay 113 /tmp/tmp.WTCofe7xS6/173.png -delay 13 /tmp/tmp.WTCofe7xS6/174.png -delay 6 /tmp/tmp.WTCofe7xS6/175.png -delay 6 /tmp/tmp.WTCofe7xS6/176.png -delay 6 /tmp/tmp.WTCofe7xS6/177.png -delay 6 /tmp/tmp.WTCofe7xS6/178.png -delay 6 /tmp/tmp.WTCofe7xS6/179.png -delay 120 /tmp/tmp.WTCofe7xS6/180.png -delay 106 /tmp/tmp.WTCofe7xS6/181.png -delay 106 /tmp/tmp.WTCofe7xS6/182.png -delay 133 /tmp/tmp.WTCofe7xS6/183.png -delay 6 /tmp/tmp.WTCofe7xS6/184.png -delay 106 /tmp/tmp.WTCofe7xS6/185.png -delay 113 /tmp/tmp.WTCofe7xS6/186.png -delay 6 /tmp/tmp.WTCofe7xS6/187.png -delay 106 /tmp/tmp.WTCofe7xS6/188.png -delay 120 /tmp/tmp.WTCofe7xS6/189.png -delay 106 /tmp/tmp.WTCofe7xS6/190.png -delay 6 /tmp/tmp.WTCofe7xS6/191.png -delay 106 /tmp/tmp.WTCofe7xS6/192.png -delay 106 /tmp/tmp.WTCofe7xS6/193.png -delay 6 /tmp/tmp.WTCofe7xS6/194.png -delay 120 /tmp/tmp.WTCofe7xS6/195.png -delay 200 /tmp/tmp.WTCofe7xS6/196.png -delay 6 /tmp/tmp.WTCofe7xS6/197.png -delay 6 /tmp/tmp.WTCofe7xS6/198.png -delay 19 /tmp/tmp.WTCofe7xS6/199.png -delay 20 /tmp/tmp.WTCofe7xS6/200.png -delay 6 /tmp/tmp.WTCofe7xS6/201.png -delay 400 /tmp/tmp.WTCofe7xS6/202.png -delay 1293 /tmp/tmp.WTCofe7xS6/203.png -delay 106 /tmp/tmp.WTCofe7xS6/204.png -delay 13 /tmp/tmp.WTCofe7xS6/205.png -delay 100 /tmp/tmp.WTCofe7xS6/206.png -delay 6 /tmp/tmp.WTCofe7xS6/207.png -delay 6 /tmp/tmp.WTCofe7xS6/208.png -delay 273 /tmp/tmp.WTCofe7xS6/209.png -delay 319 /tmp/tmp.WTCofe7xS6/210.png -delay 1473 /tmp/tmp.WTCofe7xS6/211.png -delay 1226 /tmp/tmp.WTCofe7xS6/212.png -delay 1120 /tmp/tmp.WTCofe7xS6/213.png -delay 1066 /tmp/tmp.WTCofe7xS6/214.png -delay 119 /tmp/tmp.WTCofe7xS6/215.png -delay 6 /tmp/tmp.WTCofe7xS6/216.png -delay 219 /tmp/tmp.WTCofe7xS6/217.png -delay 6 /tmp/tmp.WTCofe7xS6/218.png -delay 106 /tmp/tmp.WTCofe7xS6/219.png -delay 113 /tmp/tmp.WTCofe7xS6/220.png -delay 346 /tmp/tmp.WTCofe7xS6/221.png -delay 113 /tmp/tmp.WTCofe7xS6/222.png -delay 106 /tmp/tmp.WTCofe7xS6/223.png -delay 126 /tmp/tmp.WTCofe7xS6/224.png -delay 126 /tmp/tmp.WTCofe7xS6/225.png -delay 446 /tmp/tmp.WTCofe7xS6/226.png -delay 113 /tmp/tmp.WTCofe7xS6/227.png -delay 106 /tmp/tmp.WTCofe7xS6/228.png -delay 6 /tmp/tmp.WTCofe7xS6/229.png -delay 120 /tmp/tmp.WTCofe7xS6/230.png -delay 6 /tmp/tmp.WTCofe7xS6/231.png -delay 6 /tmp/tmp.WTCofe7xS6/232.png -delay 113 /tmp/tmp.WTCofe7xS6/233.png -delay 100 /tmp/tmp.WTCofe7xS6/234.png -delay 6 /tmp/tmp.WTCofe7xS6/235.png -delay 100 /tmp/tmp.WTCofe7xS6/236.png -delay 106 /tmp/tmp.WTCofe7xS6/237.png -delay 100 /tmp/tmp.WTCofe7xS6/238.png -delay 6 /tmp/tmp.WTCofe7xS6/239.png -delay 100 /tmp/tmp.WTCofe7xS6/240.png -delay 106 /tmp/tmp.WTCofe7xS6/241.png -delay 100 /tmp/tmp.WTCofe7xS6/242.png -delay 6 /tmp/tmp.WTCofe7xS6/243.png -delay 100 /tmp/tmp.WTCofe7xS6/244.png -delay 6 /tmp/tmp.WTCofe7xS6/245.png -delay 106 /tmp/tmp.WTCofe7xS6/246.png -delay 106 /tmp/tmp.WTCofe7xS6/247.png -delay 100 /tmp/tmp.WTCofe7xS6/248.png -delay 100 /tmp/tmp.WTCofe7xS6/249.png -delay 106 /tmp/tmp.WTCofe7xS6/250.png -delay 106 /tmp/tmp.WTCofe7xS6/251.png -delay 120 /tmp/tmp.WTCofe7xS6/252.png -delay 13 /tmp/tmp.WTCofe7xS6/253.png -delay 1793 /tmp/tmp.WTCofe7xS6/254.png -delay 106 /tmp/tmp.WTCofe7xS6/255.png -delay 206 /tmp/tmp.WTCofe7xS6/256.png -delay 213 /tmp/tmp.WTCofe7xS6/257.png -delay 106 /tmp/tmp.WTCofe7xS6/258.png -delay 6 /tmp/tmp.WTCofe7xS6/259.png -delay 6 /tmp/tmp.WTCofe7xS6/260.png -delay 113 /tmp/tmp.WTCofe7xS6/261.png -delay 106 /tmp/tmp.WTCofe7xS6/262.png -delay 106 /tmp/tmp.WTCofe7xS6/263.png -delay 6 /tmp/tmp.WTCofe7xS6/264.png -delay 206 /tmp/tmp.WTCofe7xS6/265.png -delay 6 /tmp/tmp.WTCofe7xS6/266.png -delay 146 /tmp/tmp.WTCofe7xS6/267.png -delay 700 /tmp/tmp.WTCofe7xS6/268.png -delay 266 /tmp/tmp.WTCofe7xS6/269.png -delay 113 /tmp/tmp.WTCofe7xS6/270.png -delay 239 /tmp/tmp.WTCofe7xS6/271.png -delay 119 /tmp/tmp.WTCofe7xS6/272.png -delay 13 /tmp/tmp.WTCofe7xS6/273.png -delay 133 /tmp/tmp.WTCofe7xS6/274.png -delay 106 /tmp/tmp.WTCofe7xS6/275.png -delay 6 /tmp/tmp.WTCofe7xS6/276.png -delay 206 /tmp/tmp.WTCofe7xS6/277.png -delay 206 /tmp/tmp.WTCofe7xS6/278.png -delay 106 /tmp/tmp.WTCofe7xS6/279.png -delay 6 /tmp/tmp.WTCofe7xS6/280.png -delay 6 /tmp/tmp.WTCofe7xS6/281.png -delay 100 /tmp/tmp.WTCofe7xS6/282.png -delay 6 /tmp/tmp.WTCofe7xS6/283.png -delay 100 /tmp/tmp.WTCofe7xS6/284.png -delay 106 /tmp/tmp.WTCofe7xS6/285.png -delay 206 /tmp/tmp.WTCofe7xS6/286.png -delay 126 /tmp/tmp.WTCofe7xS6/287.png -delay 159 /tmp/tmp.WTCofe7xS6/288.png -delay 260 /tmp/tmp.WTCofe7xS6/289.png -delay 6 /tmp/tmp.WTCofe7xS6/290.png -delay 100 /tmp/tmp.WTCofe7xS6/291.png -delay 239 /tmp/tmp.WTCofe7xS6/292.png -delay 113 /tmp/tmp.WTCofe7xS6/293.png -delay 6 /tmp/tmp.WTCofe7xS6/294.png -delay 19 /tmp/tmp.WTCofe7xS6/295.png -delay 573 /tmp/tmp.WTCofe7xS6/296.png -delay 100 /tmp/tmp.WTCofe7xS6/297.png -layers Optimize gif:- | gifsicle -k 64 -O2 -Okeep-empty --lossy=80 -o roosevelt.gif -
Killed
gifsicle:<stdin>: empty file
at checkExecSyncError (child_process.js:473:13)
at Object.execSync (child_process.js:513:13)
at Dp (/app/main.js:708:246)
at /app/main.js:713:178
at Function.b (/app/main.js:709:287)
at ep (/app/main.js:697:48)
at /app/main.js:697:193
at /app/main.js:689:264
at Immediate.Po (/app/main.js:685:331)
at runCallback (timers.js:672:20)
from asciicast2gif.
Yeah, that convert call eats up all the memory and then some. It ate all 32GiB memory and then another 16GiB of swap...
from asciicast2gif.
https://media.giphy.com/media/jQDdWWeZHA9NkrDQxh/giphy.gif
from asciicast2gif.
docker run --rm -v $PWD:/data asciinema/asciicast2gif -s 5 -t monokai $1 $2.gif
Above is part of a shell script that takes in the ascii.cast and the output file
I just increased the skip count from -s 2 to -s 5 and i received no errors while generating the gif file
from asciicast2gif.
Thank you @sickill ! I'll give your new tool a try.
from asciicast2gif.
Related Issues (20)
- Produced GIF freezes when played HOT 1
- Object has no method 'execSync' HOT 2
- [FR] Add option to specify working/tmp directory HOT 2
- Docker executable cannot read a file (ENOENT) HOT 4
- [FR] change temp dir (improve documentation) HOT 2
- Cache resources exhausted when converting to gif HOT 3
- Fails with ERR_STREAM_DESTROYED HOT 1
- Option to add a delay to the last frame HOT 1
- TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string HOT 6
- Certian grey text won't show HOT 1
- Fails with error write EPIPE on local file HOT 17
- [why?] HOT 7
- wsl install erro HOT 1
- Add margins to generated GIFs HOT 1
- [bug] Error: certificate has expired HOT 4
- FontFaceOnload error HOT 1
- <input-json-path-or-url> HOT 1
- cnpm install asciicast2gif error HOT 2
- cant display chinese HOT 1
- asciinema2gif: convert-im6.q16: cache resources exhausted HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asciicast2gif.