gpt4 book ai didi

android - 相机 2's setVideoFramerate() doesn' t 有任何影响

转载 作者:行者123 更新时间:2023-12-05 00:06:54 27 4
gpt4 key购买 nike

我正在为我的 LG G4 开发我的相机应用程序,但我找不到以恒定帧速率进行录制的方法。我拿了谷歌样本 Camera2 app添加我的功能。

当我想录制 UHD 时:

mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);

mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
if (mNextVideoAbsolutePath == null || mNextVideoAbsolutePath.isEmpty()) {
mNextVideoAbsolutePath = getVideoFilePath(getActivity());
}
mMediaRecorder.setOutputFile(mNextVideoAbsolutePath);

mMediaRecorder.setVideoEncodingBitRate(35 * 1000 * 1000);
mMediaRecorder.setVideoSize(3840, 2160);
mMediaRecorder.setVideoFrameRate(30);

mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

3 个不同输出视频的帧率是 27.61、28.39、26.24 等。我无法在 30fps 的 29.97 处获得恒定的帧率。我尝试将比特率增加到 50Mbps,然后将其降低到 30Mbps,但它没有任何改变。

最奇怪的是,我什至无法在 1080p 中录制超过 30fps 的视频:

mMediaRecorder.setVideoSize(1920, 1080);
mMediaRecorder.setVideoFrameRate(60);

我上次尝试时,它以 29.69 的分辨率录制了一段 FHD 素材,但它与 UHD 素材一样随机。我究竟做错了什么 ?

我检查过 Recording 60fps video with Camera2(on Android version 21) API出来,但它也不起作用。我也找到了一些答案,但他们使用的是现在已弃用的旧相机 API(带有 Camera.Parameters)。

还有其他参数吗?

最佳答案

注意:在某些具有自动帧速率的设备上,这会设置最大帧速率,而不是恒定帧速率。实际帧率会因光照条件而异。

试试这个:

mediaRecorder.setCaptureRate(30);

关于android - 相机 2's setVideoFramerate() doesn' t 有任何影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088087/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com