1

当我尝试使用 JCodec 将单个位图转换为 10 秒长的视频时 - 有时我会得到一个奇怪的结果,通常是颜色失真 - 或者在结果视频上绘制黑色对角线。这是我使用的代码(我对其进行了调试,并且出现了问题):

SequenceEncoder enc = new SequenceEncoder(f);
for (int x = 0; x < 250; x++) {
     Log.d("frame", "" + x);
     enc.encodeImage(bitmap);
     publishProgress(pb, 1);
}
enc.finish();

这是两个问题的示例(用红色箭头标记):

原图: 在此处输入图像描述

渲染后: 在此处输入图像描述

4

1 回答 1

3

很长一段时间后,谜团解开了。

如果位图的高度或宽度不是偶数,则会出现失真。android 的 JCodec 在使用这样的位图时不会触发任何错误,因为普通的 Jcodec 会触发非法参数异常。

解决方案:只需在编码之前将位图大小调整为可被 2 整除的大小。

于 2018-01-28T18:47:46.960 回答