fluid display with requestAnimationFrame
only convert to base 64 only once per frame, not for every client