Я хочу сжать видео в 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
теперь я ищу формулу для расчета предполагаемого размера. Я получаю ширину, высоту и битрейт от MediaMetadataRetriever в Android
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
Отличный ответ, и да, он работает
Размер = битрейт x продолжительность. Разрешение не имеет значения.