我正在捕獲Android攝像頭的視頻。但是,我想將幀速率設置爲每秒1幀。在Android上將視頻錄製幀速率設置爲1
如果我添加了setVideoFrameRate(1)
,則無法正確記錄視頻。如果我沒有設置這個值,錄製就能正常工作。
這是我的代碼...
mediaRecorder = new MediaRecorder();
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setOutputFile(GetOutputMediaFileDir(VIDEO_TYPE,intVideoIndex));
mediaRecorder.setVideoSize(640,480);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
// mediaRecorder.setCaptureRate(1);
mediaRecorder.setVideoFrameRate(1);
mediaRecorder.setMaxDuration(10000);
mediaRecorder.setOnInfoListener(this);
mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
mediaRecorder.prepare();
mediaRecorder.start();
基本上我需要降低視頻的大小,因爲我要送它可以使用3G網絡在手機上。最長的視頻將是1分鐘,因此發送視頻需要很長時間。
有人可以幫我解決這個問題。
這將是非常波濤洶涌的視頻。那些看起來「波濤洶涌」的早期無聲電影有14-24 fps。我認爲人類大腦會看到任何小於10 fps的單個圖像實例。 –
僅僅因爲用戶只能使用3G而將視頻設置爲最低可能的質量是一種可怕的方法。那麼Wifi上的人呢?那些想要高清視頻而不關心等待的人呢?如果你真的關心上傳時間,你應該問你的用戶他們想要什麼質量,並警告他們,如果有可能令人難以置信的等待(即使在1分鐘視頻的3G上也不算太差),而不是強迫他們做一些事情,因爲連接可能會很慢。 – Guardanis
實際上,要發送的視頻是幾個圖像的組合,在服務器端真正需要這些圖像。因此,我想將幀速率設置爲低至1 fps並縮小尺寸。然而這是不可行的嗎? – Iam619