2017-04-26 220 views
0

我想實現一個應用程序以固定曝光時間錄製60 fps。作爲設備,我有Google Pixel。由於它的原生相機應用程序可以達到60 fps,並且它具有硬件級別LEVEL_3,我認爲這不會是一個問題,但我無法得到它的工作。與getSupportedPreviewFpsRange()(從相機api)我得到範圍[15, 15], [24, 24], [7, 30], [30, 30]getHighSpeedVideoFpsRangesFor(來自camera2 api)我得到範圍[30, 120], [120, 120], [30, 240], [240, 240], [240, 240]。當我將[60, 60]設置爲CONTROL_AE_TARGET_FPS_RANGE時,出現錯誤「請求中的Fps範圍[60,60]不是支持的高速fps範圍」。如何使用android camera2 api錄製固定曝光時間的60 fps視頻

定製應用程序甚至可以記錄60 fps視頻嗎?

如果不是,它是如何120幀/秒? (我有120幀記錄的工作,但是,當我設置CONTROL_AE_MODE關閉,手動設置SENSOR_EXPOSURE_TIMESENSOR_SENSITIVITY,幀速率再次降低到每秒30幀)

回答

2

60fps的記錄上的像素可以在正常捕捉設置來完成 - 取看看CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,然後創建一個正常的捕獲會話。您必須小心謹慎,不要將分辨率設置得太高,因爲如果我沒有記錯,60fps無法在1080p以上完成。

您可以通過StreamConfigurationMap確認您打算使用的尺寸/格式。

+0

thx艾迪,我已經成功實現了60 fps的視頻錄製,甚至通過YUV捕捉(分辨率爲1920x1080)。這對YUV來說是一個驚喜,因爲我已經檢查了YUV_420_88最小尺寸(4048x3036)和最小尺寸(160x120)的最小幀持續時間,它們是33333333 ns。但對於尺寸(1920x1080),它確實是16666666納秒。 但是,當我使用CONTROL_AE_MODE和CONTROL_MODE設置手動設置曝光時間和ios值時,幀頻再次下降到30 fps: 我做錯了什麼?或僅適用於自動曝光60fps? – Jian

+0

您是否設置了幀持續時間(https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html#SENSOR_FRAME_DURATION)?這是第三次手動控制;你需要自己設置爲60fps。默認值可能是1/30秒,而不是1/60秒。 –

+0

是的我已經設置了'SENSOR_FRAME_DURATION'到16666666,這是我從'getOutputMinFrameDuration(ImageFormat.YUV_420_888,new Size(1920,1080))'得到的確切值。我做了你在這裏描述的步驟[stackoverflow.com/questions/28293078/how-to-control-iso-manually-in-camera2-android](http://stackoverflow.com/questions/28293078/how-在預覽會話和捕捉會話中,他們都下降到30幀/秒。 – Jian

相關問題