基于 mediarecorder 的 Camera2 应用程序录制低质量的视频。有人知道为什么吗?

Camera2 app based on mediarecorder records videos of low quality. Does anybody know why?

我一直在使用相机 2 开发相机应用程序并从这些视频系列中获取代码:https://www.youtube.com/watch?v=69J2ycNCtpE&lc=z23lu3jo4xuwzjataacdp43bf4ywaag5x2tpbiljkf1w03c010c 我必须使用 运行 时间权限更新代码。

我获取的视频质量很差,我不知道为什么。我尝试使用输出格式、视频编码器、比特率(根据我在其他答案中发现的内容)进行播放,但质量没有改变,而且与原始相机应用程序相比要差得多。比较两个长度相同的相似视频时,分辨率相同 (1080x1920),但此应用生成的视频大小为 0.95 MB,而使用原始相机应用拍摄的视频大小为 12 MB。显然,有些东西不起作用,但我不知道是什么。 PS:教程人员在 phone 上试用该应用程序时似乎没有发生这种现象。任何帮助将不胜感激!

我推荐你看看这个样本 https://github.com/googlesamples/android-Camera2Basic

也许用这个配置可以解决

// For still image captures, we use the largest available size.
            Size largest = Collections.max(
                    Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)),
                    new CompareSizesByArea());
            mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(),
                    ImageFormat.JPEG, /*maxImages*/2);
            mImageReader.setOnImageAvailableListener(
                    mOnImageAvailableListener, mBackgroundHandler);

如果您尝试官方视频录制示例Camera2Video,它是否也录制了糟糕的视频?

如果是这样,则可能是设备错误导致它忽略配置的视频质量。如果 Camera2Video 工作正常,那么看看它与您自己的应用有何不同。