我引用此链接进行视频压缩.. https://github.com/lalongooo/VideoCompressor当我压缩.mkv文件时它的工作原理并且尺寸更小但是当我压缩.mp4文件时它会提供比原始视频大小更大的尺寸。我不明白为了实现这一点我必须做些什么改变......这段代码使用MediaCodec作为视频压缩器......是否可以快速进行压缩?
答案 0 :(得分:0)
mkv和mp4只是视频容器文件格式,用于将压缩视频数据和音频数据复用到一个文件中。您应该查看mkv或mp4文件中的视频压缩格式(H.264,H.265等)。
答案 1 :(得分:0)
解决
在调用压缩函数之前简单地说明条件。 使用MediaMetaDataRetriever检查选定的视频高度和宽度,并设置if condition。
public void compress() {
Log.w("VideoMessage","eNTERED : "+inputPath);
lMediaMetadataRetriever.setDataSource(inputPath);
String lVideoWidth = lMediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
Log.w("VideoMessage","VideoWidth: "+lVideoWidth);
String lVideoHeight = lMediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
Log.w("VideoMessage","VideoHeight: "+lVideoHeight);
if(Integer.valueOf(lVideoWidth)<=640 || Integer.valueOf(lVideoHeight)<=360){
Toast.makeText(this, "Video Already in compressed form", Toast.LENGTH_SHORT).show();
}
else{
try2CreateCompressDir();
outPath=Environment.getExternalStorageDirectory()
+ File.separator
+ APP_DIR
+ COMPRESSED_VIDEOS_DIR
+"VIDEO_" + new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()) + ".mp4";
new VideoCompressor.execute(inputPath,outPath);
}
}