怎么做mp4视频压缩

时间:2016-02-18 03:20:48

标签: android video compression

我引用此链接进行视频压缩.. https://github.com/lalongooo/VideoCompressor当我压缩.mkv文件时它的工作原理并且尺寸更小但是当我压缩.mp4文件时它会提供比原始视频大小更大的尺寸。我不明白为了实现这一点我必须做些什么改变......这段代码使用MediaCodec作为视频压缩器......是否可以快速进行压缩?

2 个答案:

答案 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);

    }
}