在我的应用程序中,我录制了两个 30 秒的视频并上传到服务器,我使用 MediaRecorder
完成了它。我想知道有什么方法可以在录制开始之前找到视频文件的大小,或者如何检测录制视频的内存不足?
最佳答案
在开始录制之前,您将无法找到视频大小。您可能真的、真的、真的粗略估计视频文件大小的上限。您可以通过了解以下知识来做到这一点:
- 要录制的视频的分辨率
- 视频录制的每秒帧数
- 视频时长
- 使用的视频编码器
- 以及对使用编码器编码的视频文件的“典型”参数的估计
对于最后一个,有一些工具可以让您获取此类信息(例如 this )。
为什么是粗略计算?首先,因为您需要获取的数据(关于使用特定编码器编码的视频)始终只是估计的。编码器在不同的录制上的工作方式会有所不同,并且视频文件的大小可能会因许多因素而异(包括录制的颜色、录制的动态 - 该视频是静止的还是非常动态的,甚至是音频)。另外,您需要记住(根据 this )Android 我们只设置最大视频帧速率(这就是为什么您只能估计最大视频文件大小的上限)。
至于问题的内存部分:看一下this 。
关于android - 录制前视频文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28094925/