2011-11-17 86 views
12

我試圖記錄使用前置攝像頭前的視頻,下面是代碼片段,我的setVideoFrameRate設置爲29的,但所記錄的視頻中具有7.5和8之間的FPS我需要的VIDIO的視頻記錄,FPS 29.Android的前置攝像頭是7.5和8.0之間錄製視頻 - setVideoFrameRate不起作用 - 三星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

根據顯影劑指南,它被寫入實際的幀速率將根據照明條件而變化。如果您的設備具有自動幀速率,此方法也會設置最大幀速率。請檢查 – Naved

+0

嗨Naded,謝謝你的答案。你是對的..當有好的光線時,fps更好,它以14-15fps的速度錄製。當我將它與本機相機應用進行比較時,在相同的照明條件下,本機相機以29 fps記錄,但我的程序以14 fps記錄。只是想知道本機相機是如何以更好的fps進行錄製的,以及我們是否通過編程獲得了相同的效果。再次感謝。 – user566502

+0

你如何基準視頻的幀速率?如果您想通過監視預覽來執行java代碼,請參閱以下內容:http://stackoverflow.com/questions/8676046/why-fps-is-not-same-as-original-camera-app/8685028#8685028 –

回答

0

這段代碼是無效的。

recorder.SetOutputFormat() 

這段代碼是:

recorder.SetOutFormat() 

從Android開發者網站: 「設置要捕獲的視頻的幀速率setVideoSource()後必須調用setOutFormat後調用此。 ()但在準備()之前。「

相關問題