2011-11-17 23 views
12

Tôi đang cố gắng quay video bằng camera mặt trước, sau đây là đoạn mã, tôi đang đặt setVideoFrameRate thành 29 , nhưng video đã ghi có fps từ 7,5 đến 8. Tôi cần fps video của vidio được ghi lại 29.Máy ảnh mặt trước Android quay video từ 7,5 đến 8,0 - setVideoFrameRate không hoạt động - 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

theo nhà phát triển hướng dẫn, nó được viết rằng tỷ lệ khung hình thực tế sẽ thay đổi tùy theo điều kiện ánh sáng. Ngoài ra, phương pháp này sẽ đặt tốc độ khung hình tối đa nếu thiết bị của bạn có tốc độ khung hình tự động. Vui lòng kiểm tra – Naved

+0

hi Naded, cảm ơn câu trả lời. Bạn đã đúng .. Fps là tốt hơn khi có ánh sáng tốt, nó được ghi ở 14-15 khung hình/giây. Khi tôi so sánh nó với applcation máy ảnh bản địa, trong điều kiện ánh sáng tương tự, máy ảnh bản địa được ghi ở 29 khung hình/giây nhưng chương trình của tôi đang ghi ở tốc độ 14 khung hình/giây. Chỉ cần tự hỏi làm thế nào các máy ảnh bản địa được ghi ở fps tốt hơn và cho dù chúng tôi đạt được cùng một lập trình. Cảm ơn một lần nữa. – user566502

+0

Bạn đo điểm chuẩn cho tốc độ khung hình của video như thế nào? Nếu bạn đang cố gắng làm điều đó trong mã java của mình bằng cách theo dõi bản xem trước, hãy xem phần sau: http://stackoverflow.com/questions/8676046/why-fps-is-not-same-as-original-camera-app/8685028 # 8685028 –

Trả lời

0

Đoạn mã này không hợp lệ.

recorder.SetOutputFormat() 

Đoạn mã này là:

recorder.SetOutFormat() 

Từ Android Developers Website: "Thiết lập tỷ lệ khung hình của video để được chụp Phải được gọi sau khi setVideoSource() Gọi này sau khi setOutFormat..() nhưng trước khi chuẩn bị(). "

Các vấn đề liên quan