当我尝试使用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();
以下是两个问题的示例(以红色箭头标记):
答案 0 :(得分:2)
经过很长一段时间后神秘解决了。
如果位图的高度或宽度不是偶数,则会出现失真。 用于android的JCodec在使用这样的位图时不会触发任何错误,正常的Jcodec将触发非法的参数异常。
解决方案:在编码之前,只需将位图大小调整为可被2整除的大小。