小编Sha*_*don的帖子

有效地将位图数组转换为视频

使用 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),这不是我所需要的。

我需要帮助找到一种更有效地将位图数组编码为视频的方法,或者使用我正在使用的相同方法,但缩小每个位图,同时保持整个图像的可见性并加快编码过程。

encoding android bitmap android-canvas android-bitmap

5
推荐指数
1
解决办法
4937
查看次数