android – 为什么FPS与原始相机应用程序不一样

android – 为什么FPS与原始相机应用程序不一样,第1张

概述我测试了原装相机应用程序(视频模式)附带三星Galaxy Tab 8.9.保存的前置摄像头视频能够达到24 fps,640×480. (通过在转移到 Windows机器后查看视频文件的属性) 但是,当我写前置Camera代码进行测试时. mCamera2.setPreviewCallbackWithBuffer(new PreviewCallback() { public void onP 我测试了原装相机应用程序(视频模式)附带三星galaxy Tab 8.9.保存的前置摄像头视频能够达到24 fps,640×480. (通过在转移到 Windows机器后查看视频文件的属性)

但是,当我写前置Camera代码进行测试时.

mCamera2.setPrevIEwCallbackWithBuffer(new PrevIEwCallback() {    public voID onPrevIEwFrame(byte[] data,Camera camera) {        // image processing code placed here.    }});

我可以实现的最大结果是(没有将视频保存到磁盘.我只是测量onvIEwFrame触发率的回调函数)

> 15 fps
> 320×240,800×600

我希望性能与三星原装相机应用程序相同.我可以知道我错过了某种技巧吗?

解决方法 您看到这些结果的原因是您的回调是获取视频的样本而不是实际视频.

当摄像机将其输出转储到文件系统时,它正在进行非常低级别的写入 *** 作,将数据从摄像机的视频缓冲区复制到文件系统,而不会触及JVM.这是保持视频高质量和低延迟所必需的,并确保平滑的最终视频.如果您需要对实际视频进行​​视频处理,最好在视频录制完成后再进行.

预览回调仅仅是为您提供实际视频捕获的样本,而不是整个视频捕获 – 因为大多数15fps视频仍然看起来流畅,预览回调只会给您一个较低分辨率,较低fps预览版本的实际视频被捕获.即使是内置的三星捕获应用程序也只会显示预览版本,因为这是所有的预览界面.

除了文件系统转储或低级字节数组数据结构(例如使用JNI包装器)之外,在AndroID中获取准确的视频录制基准是不可能的.这很容易,但尝试直接进行 *** 作会阻止来自摄像头的输入读取,无论如何都会打破你的基准测试.

总结

以上是内存溢出为你收集整理的android – 为什么FPS与原始相机应用程序不一样全部内容,希望文章能够帮你解决android – 为什么FPS与原始相机应用程序不一样所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1130647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存