android - JCodec 位图到 mp4 - 结果视频失真

标签 android video mp4 jcodec

当我尝试使用 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();

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

原图: enter image description here

渲染后: enter image description here

最佳答案

久违的谜团解开了。

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

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

关于android - JCodec 位图到 mp4 - 结果视频失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483094/

相关文章:

java - 我们如何更改小部件按钮的图像?

android - 我怎样才能从一个方法触发我的通知?

javascript - HTML5 : Play videos one after the other in a video tag from an array?

android - 根据方向播放视频

linux - 转换 MP4 版本 - FFmpeg

ffmpeg - 从不完整的视频文件中提取元数据

android - Bundle 对象的变化

android - Android 本身不支持 HEVC (H.265)?

android - 在 Android WebView 中嵌入来自 vimeo 的视频

java - 导入库未解决