Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中基于多分辨率格式选项压缩视频文件_Android_Video_Compression_Android Mediacodec - Fatal编程技术网

Android中基于多分辨率格式选项压缩视频文件

Android中基于多分辨率格式选项压缩视频文件,android,video,compression,android-mediacodec,Android,Video,Compression,Android Mediacodec,我正在使用MediaCodec本机API压缩视频。我的要求是,我还需要向用户显示视频压缩可用的分辨率格式列表(假设用户选择任何分辨率格式,输出文件应小于5MB)。因此,我需要能够根据用户在实际压缩之前选择的分辨率选项计算压缩视频的大小。这在Android中可能吗?我找了很多,但找不到任何答案。任何线索都会非常有用。谢谢 您可以通过将输出比特率(每秒比特数)乘以视频长度(秒)来计算输出大小。多亏了Tomer。如何获取这些参数?MediaExtractor的getTrackFormat()会给我这个

我正在使用MediaCodec本机API压缩视频。我的要求是,我还需要向用户显示视频压缩可用的分辨率格式列表(假设用户选择任何分辨率格式,输出文件应小于5MB)。因此,我需要能够根据用户在实际压缩之前选择的分辨率选项计算压缩视频的大小。这在Android中可能吗?我找了很多,但找不到任何答案。任何线索都会非常有用。谢谢

您可以通过将输出比特率(每秒比特数)乘以视频长度(秒)来计算输出大小。

多亏了Tomer。如何获取这些参数?MediaExtractor的getTrackFormat()会给我这个信息吗?再次感谢您,您可以使用getTrackFormat()提供的MediaFormat中的KEY_DURATION来获取视频的长度;输出比特率由您在MediaCodec中选择和配置。例如,如果您有一个60秒的视频,并且希望将其大小限制为5 MB。计算结果为:最大比特率=5000000(字节)*8(每字节比特数)/60(秒)=666kbps