math - 如何通过公式计算视频文件大小
问题描述
我想在 Android 中压缩视频并上传。在压缩之前,我想显示不同的宽度和高度以及估计的大小,然后用户选择一个。
for example:
240 estimated Size =~20 MB
480 estimated Size =~40 MB
640 estimated Size =~90 MB
720 estimated Size =~130 MB
1080 estimated Size =~180 MB
现在我寻找一个计算估计大小的公式。我从 Android 中的 MediaMetadataRetriever 获取宽度和高度以及比特率
retriever = new MediaMetadataRetriever();
retriever.setDataSource(path, new HashMap<String, String>());
width = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
height = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
rotation = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION);
解决方案
我找到了。为了从比特率和持续时间计算文件大小,我们可以使用:
(bitrate() / 8 * duration() / 1000/1000)
例如
file size=((17305731/8)*(4655000/1000/1000))=10,069,772= 9.6 MB
推荐阅读
- flutter - 应用程序在连接的真实设备上工作,但不是 APK
- amazon-web-services - 无法使用公共地址 (AWS EC2) 调用私有地址
- bison - flex-bison 忽略空格
- assembly - 尝试使用 NASM 设置 Errno
- excel - 在受保护的视图失去工作簿焦点后启用编辑
- c++ - 为什么 std::valarray 不是算术的?
- c# - C# - 将扩展的参数数组传递给另一个函数
- javascript - 将 Firebase 与 Wix 集成
- python - 如何从 Surface 实例中删除一个对象?
- npm - 仅当 PR 合并到 master 时,travis ci 才发布到 npm