SiliCompressor对视频进行压缩处理后,视频变形或压缩失败

本文解决SiliCompressor压缩视频时出现的变形问题,通过调整输出宽高比,确保视频压缩质量。详细介绍了如何从GitHub下载源码并修改MediaController.java中的convertVideo方法,以自动适应原始视频的宽高比,同时调整了码率参数以优化压缩效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用SiliCompressor压缩视频时遇到了视频变形的问题,查看源码才知道,当没有传递outWidth和outHeight时程序会默认将视频的输出宽高分别设为640和360,没有根据原始视频的宽高比计算新的宽高。

解决方法:

首先从github上下载他的源码:SiliCompressor

然后修改MediaController.java的

public boolean convertVideo(final String sourcePath, File destDir, int outWidth, int outHeight, int outBitrate)

方法,重新计算宽高:

int resultWidth = outWidth > 0 ? outWidth : DEFAULT_VIDEO_WIDTH;
int resultHeight = outHeight > 0 ? outHeight : (resultWidth * originalHeight / originalWidth);

 

在测试时偶然的发现当resultWidth或resultHeight 为奇数会导致压缩失败,所以添加以下判断:

if (resultWidth % 2 != 0) {
    resultWidth--;
}
if (resultHeight % 2 != 0) {
    resultHeight--;
}

还有码率问题,默认的码率(bitrate)是450000,太小了,压缩之后的文件是小了,可是也太模糊了,推荐设置为1200000.

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值