【发布时间】:2018-02-26 00:12:17
【问题描述】:
使用 Jcodec 库,我成功地从 Bitmap 对象数组生成并在 Android 文件系统上存储了一个视频文件。
但是,编码时间太长了。我考虑缩小每个位图以加快速度,但这似乎不起作用。尽管进行了广泛的研究,但我还是很难找到有用的答案。
以下代码是我目前创建位图的方式,其中canvasView.getWidth() 和canvasView.getHeight() 分别对应1920 x 1280。
public Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap(canvasView.getWidth(), canvasView.getHeight(), Bitmap.Config.RGB_565);
Log.i("Downloading", "OWidth: " + b.getWidth() + " --- " + "OHeight: " + b.getHeight());
Canvas c = new Canvas(b);
c.drawColor(Color.WHITE); // Essential
v.draw(c);
v.invalidate();
v.requestLayout();
return b;
}
我注意到当你将这两个参数更改为更小的值时,IE:
Bitmap.createBitmap(256, 256, Bitmap.Config.RGB_565);
编码速度显着加快。
整个视图的大小是1920 x 1280,所以上面显示的createBitmap方法只会捕获窗口的一小部分(256 x 256),这不是我需要的.
我需要帮助找到一种更有效地将位图数组编码为视频的方法,或者使用我正在使用的相同方法,但缩小每个位图,同时保持整个图像的可见性并加快编码过程。
【问题讨论】:
标签: android encoding bitmap android-canvas android-bitmap