2011-11-17 25 views
12

Sto provando a registrare video utilizzando la fotocamera frontale, seguendo lo snippet di codice, sto impostando setVideoFrameRate su 29 , ma il video registrato è avere la fps tra 7,5 e 8. ho bisogno il video fps del vidio registrati 29.La fotocamera frontale di Android registra video tra 7,5 e 8,0 - setVideoFrameRate non funziona - Samsung galaxy s2

 recorder.setPreviewDisplay(holder.getSurface()); 
     recorder.setOnInfoListener(this); 
     recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
     recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
     recorder.setVideoFrameRate(29); 
     recorder.setVideoSize(640,480); 
     recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
     recorder.setOutputFile("/sdcard/recordvideooutput.mp4"); 
     recorder.setMaxDuration(16*1000); 
+1

secondo guida sviluppatore, è scritto che il frame rate effettivo varia in base alle condizioni di illuminazione. Anche questo metodo imposterà il frame rate massimo se il tuo dispositivo ha una frequenza fotogrammi automatica. Si prega di controllare – Naved

+0

ciao Naded, grazie per la risposta. Hai ragione .. Il fps è migliore quando c'è una buona luce, sta registrando a 14-15 fps. Quando lo paragono con la fotocamera nativa, nelle stesse condizioni di illuminazione, la fotocamera nativa sta registrando a 29 fps, ma il mio programma sta registrando a 14 fps. Mi chiedo solo come la videocamera nativa sta registrando a fps migliori e se lo raggiungiamo a livello programmatico. Grazie ancora. – user566502

+0

Come stai confrontando il frame rate del video? Se stai provando a farlo nel tuo codice java monitorando l'anteprima, vedi quanto segue: http://stackoverflow.com/questions/8676046/why-fps-is-not-same-as-original-camera-app/8685028 # 8685028 –

risposta

0

Questo pezzo di codice non è valido.

recorder.SetOutputFormat() 

Questo pezzo di codice è:

recorder.SetOutFormat() 

da Android sviluppatori di siti web: "Imposta il frame rate del video da acquisire deve essere chiamato dopo setVideoSource() Chiamare questo dopo setOutFormat..() ma prima di preparare(). "

Problemi correlati