Android: graba video en alta calidad

Intento el código siguiente pero consigo solamente la calidad muy pobre comparada a otras aplicaciones en almacén del juego de google. ¿Alguna sugerencia?

private void initRecorder(final String path) { videoFile = path; try { // Solves a -9 return bug in some Android versions camera.lock(); camera.unlock(); recorder.setCamera(camera); recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setProfile(CamcorderProfile.get(0, CamcorderProfile.QUALITY_1080P)); recorder.setPreviewDisplay(holder.getSurface()); recorder.setOutputFile(videoFile); recorder.setMaxDuration((int) TimeUnit.HOURS.toMillis(2)); recorder.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); showDialog(NO_VIDEO); } catch (IOException e) { e.printStackTrace(); showDialog(NO_VIDEO); } catch (Exception e){ e.printStackTrace(); showDialog(NO_VIDEO); } } 

Otro intento

  recorder.reset(); recorder.setCamera(camera); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // recorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); recorder.setPreviewDisplay(holder.getSurface()); recorder.setOutputFile(videoFile); 

Pero estoy recibiendo IlegalStateException cuando uso graber.start recorder.start()

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.