No hay una manera "fácil" de hacerlo.
Aquí es una pregunta similar ... Grabbing each frame of an HTML5 canvas
Usted puede seguir este enfoque y apoderarse de los marcos, y remitirlos a un script del lado del servidor para compilarlos en un GIF animado.
Otra opción, aunque no trivial, sería implementar un codificador GIF de JavaScript puro. La especificación GIF se puede encontrar aquí, http://graphcomp.com/info/specs/gif89a.txt
Si la tabla de colores se mantiene igual en cada fotograma, probablemente podría empalmar los fotogramas de las URL GIF ya codificadas sin tener que comprimir los datos de nivel de píxeles. Aún necesitaría decodificar la transmisión base64 desde Canvas.toDataURL.
Hoy se requiere en esa biblioteca y por eso lo arreglo para navegadores modernos: https://github.com/theshock/VideoBuilder – Shock