JCodec 位图到 mp4 - 结果视频失真
JCodec bitmap to mp4 - distortion in result video
当我尝试使用 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();
以下是这两个问题的示例(用红色箭头标记):
原图:
渲染后:
久违的谜团终于解开了。
如果位图的高度或宽度不是偶数,就会出现失真。
android 的 JCodec 在使用像这样的位图时不会触发任何错误,因为普通的 Jcodec 会触发非法参数异常。
解决方案 : 在编码之前将位图大小调整为可被 2 整除的大小。
当我尝试使用 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();
以下是这两个问题的示例(用红色箭头标记):
原图:
渲染后:
久违的谜团终于解开了。
如果位图的高度或宽度不是偶数,就会出现失真。 android 的 JCodec 在使用像这样的位图时不会触发任何错误,因为普通的 Jcodec 会触发非法参数异常。
解决方案 : 在编码之前将位图大小调整为可被 2 整除的大小。