使用 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;
}
Run Code Online (Sandbox Code Playgroud)
我注意到当你将这两个参数更改为较小的值时,IE:
Bitmap.createBitmap(256, 256, Bitmap.Config.RGB_565);
Run Code Online (Sandbox Code Playgroud)
编码速度显着加快。
整个视图的大小是1920 x 1280,因此createBitmap上面显示的方法只能捕获窗口的一小部分(256 x 256),这不是我所需要的。
我需要帮助找到一种更有效地将位图数组编码为视频的方法,或者使用我正在使用的相同方法,但缩小每个位图,同时保持整个图像的可见性并加快编码过程。