我有一段代码可以使用Android摄像头使用MediaRecorder和相机api 1在QUALITY_HIGH上录制视频。
相机代码基于:https://github.com/Glamdring/EasyCamera
视频录制可能类似于:How to record video of particular width and height on samsung device android?
我可以从文档http://developer.android.com/intl/es/reference/android/media/CamcorderProfile.html#QUALITY_HIGH_SPEED_HIGH中看到,有一个高速视频的个人资料,但是......称之为:
CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH_SPEED_LOW);
抛出异常说:
" E / MediaProfiles:给定的摄像机配置文件相机0质量2000是 找不到"
主叫:
mMediaRecorder.setVideoFrameRate(100);
运行,但输出视频不是100fps。
并致电:
mMediaRecorder.setVideoFrameRate(CamcorderProfile.QUALITY_HIGH_SPEED_LOW);
抛出异常:
MediaRecorder:setVideoFrameRate失败:-22
我可以使用内置的相机应用程序录制"慢动作视频"这将产生120fps的mp4,所以我很确定该设备可以录制高速视频,但似乎缺少了一些东西。
答案 0 :(得分:2)
首先使用getSupportedPreviewFpsRange检查相机设备支持的fps范围。
我还在智能手机内置相机应用程序上进行了测试,该应用程序支持慢动作并且确实能够以高帧速率(120fps)进行录制。但是从getSupportedPreviewFpsRange
的结果来看,帧速率不超过30fps。
我认为供应商最初并没有提供以高帧率录制的界面,尽管内置的相机应用程序显示了它的硬件能力。我想这是因为如果使用不当,可能会导致硬件损坏等意外结果。
录制高速视频的硬件要求高于录制传统视频的硬件要求。内置相机应用程序可以对慢动作视频使用不同的录制策略。例如,它可以使用较低的分辨率和对光的不同响应。因此,不会暴露以编程方式记录高速视频的访问。
然而,here中有一个使用新camera2 API的黑客解决方案。你需要root,它可能不稳定。