Hopefully the new Camera API in Android L makes this app possible -- you have much better control of the incoming frames with accurate timestamps, so matching them up to recorded gyroscope information and cropping/offsetting them before writing them out to the encoder would be much easier.