Non c'è un modo "facile" per farlo.
Ecco una domanda simile ... Grabbing each frame of an HTML5 canvas
Si potrebbe seguire questo approccio e afferrare le cornici e inviare questi a uno script lato server per compilarli in una GIF animata.
Un'altra opzione, sebbene non trival, sarebbe implementare un codificatore GIF JavaScript puro. La specifica GIF può essere trovata qui, http://graphcomp.com/info/specs/gif89a.txt
Se la tabella dei colori rimane la stessa in ciascun fotogramma, probabilmente si possono unire i fotogrammi dagli URL GIF già codificati senza dover comprimere i dati a livello di pixel. Dovresti comunque decodificare il flusso base64 da Canvas.toDataURL.
Oggi mi è stato richiesto in quella biblioteca e per questo posso risolvere il problema per i browser moderni: https://github.com/theshock/VideoBuilder – Shock