我是指这个链接的视频压缩..https://github.com/lalongooo/VideoCompressor当我压缩.mkv文件时,它的工程和提供较小的大小,但当我压缩.mp4文件时,它提供了比视频原始大小更高的大小..我不明白我必须做什么改变,使这个happen...this代码使用MediaCodec的视频compressor..and可以做快速压缩吗?
发布于 2017-07-25 03:52:52
mkv和mp4只是视频容器文件格式,将压缩的视频数据和音频数据多路复用为一个文件。您应该检查视频压缩格式(H.264、H.265等)在mkv或mp4文件中。
发布于 2017-12-06 19:17:39
已解决
只需在调用压缩函数之前输入条件即可。使用MediaMetaDataRetriever检查所选视频的高度和宽度,并设置if条件。
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);
}
}https://stackoverflow.com/questions/35472196
复制相似问题