我有一段代码可以使用安卓相机在QUALITY_HIGH使用MediaRecorder和相机api 1录制视频。
相机代码基于:https://github.com/Glamdring/EasyCamera
视频录制可能类似于以下内容:如何在三星设备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/媒体配置文件:给定的摄像机配置文件相机 0 质量 2000 是 未找到"
叫:
mMediaRecorder.setVideoFrameRate(100);
运行,但输出视频不是 100fps。
和呼叫:
mMediaRecorder.setVideoFrameRate(CamcorderProfile.QUALITY_HIGH_SPEED_LOW);
引发异常:
媒体录像机:设置视频帧速率失败:-22
我可以使用内置的相机应用程序来录制"慢动作视频",该视频将以 4fps 的速度生成 mp120,因此我很确定该设备可以录制高速视频,但似乎缺少一些东西。
首先使用 getSupportedPreviewFpsRange 检查相机设备支持的 fps 范围。
我还在智能手机内置的相机应用程序上进行了测试,该应用程序支持慢动作,并且确实可以以高帧率(120fps)进行录制。但从getSupportedPreviewFpsRange
的结果来看,帧率不超过30fps。
我认为供应商最初不提供以高帧速率录制的接口,尽管内置相机应用程序显示了其硬件能力。我想这是因为如果使用不当,可能会导致意外结果,例如硬件损坏。
录制高速视频的硬件要求高于录制常规视频。内置相机应用可能会对慢动作视频使用不同的录制策略。例如,它可能使用较低的分辨率和对光的不同响应。因此,不会公开以编程方式录制高速视频的访问。
但是,这里有一个利用新的camera2 API的黑客解决方案。你需要根,它可能不稳定。