首页 > 解决方案 > 如何通过公式计算视频文件大小

问题描述

我想在 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);

标签: mathvideocalculatorvideo-processing

解决方案


我找到了。为了从比特率和持续时间计算文件大小,我们可以使用:

(bitrate() / 8 * duration() / 1000/1000)

例如

file size=((17305731/8)*(4655000/1000/1000))=‭10,069,772‬= 9.6 MB

推荐阅读