Можно получать сырые фреймы с превью. И кодировать их при помощи MediaCodec.
Начиная с версии 4.1 включена такая поддержка, но она работает очень не стабильно.
А с версии 4.3 возможно исходником кадров назначить Surface, и с ним уже существенно меньше проблем.
Изучение темы можно начать отсюда.
bigflake.com/mediacodec
habrahabr.ru/post/233005