2016-02-18 68 views
0

我,當我壓縮文件的.mkv其作品並提供更小的尺寸,但是當我壓縮.mp4檔案它比視頻的原始尺寸大小是指更高的視頻壓縮.. https://github.com/lalongooo/VideoCompressor此鏈接。 。我是不明白什麼樣的變化我爲實現這一點做的... ...此代碼使用MediaCodec的視頻compressor..and是有可能做快壓縮?怎麼做mp4視頻壓縮

+1

生成的文件大小僅取決於比特率(或目標質量)和視頻的持續時間。通常您可以設置目標比特率或至少在多個預設中進行選擇。 – ggf31416

+0

改變比特率降低壓縮視頻的長u ..can告訴我該怎麼做壓縮快... @ ggf31416 –

回答

0

MKV和MP4僅僅是視頻容器文件格式,以壓縮的視頻數據和音頻數據複用成一個文件。您應該檢查mkv或mp4文件內的視頻壓縮格式(H.264,H.265等)。

0

求解

簡單地說,在調用壓縮函數之前的條件。 檢查所選擇的視頻的高度和使用MediaMetaDataRetriever寬度並且如果條件設定。

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

    } 
}