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

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 08:21   36   0

在使用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.

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP