如何在Android Surface中从媒体编解码器的dequeoutputbuffer裁剪视频缓冲区?

时间:2019-04-25 14:19:30

标签: crop android-mediacodec

我们拥有原始流数据,我们正在使用Kitkat上的MediaCodec本机代码对这些数据进行解码和渲染。

请考虑我们的视频分辨率为800 X 480,实际视频内容为800 X380。50px的顶部和底部高度边距包含黑色区域。在表面上渲染时需要裁剪该黑色区域(100像素)。

尝试了setRect方法来裁剪矩形,但是没有用。

示例:

    int32_t left, top, right, bottom;
    if (format->findRect("crop", &left, &top, &right, &bottom))
    {
       left = 0, top = 100, right = 800, bottom = 380;
       format->setRect("crop", left, top, right, bottom);
    }

此外,在配置格式时尝试设置Mediacodec中指定的向左裁剪,向右裁剪,从顶部裁剪,从底部裁剪,这也无法裁剪。 示例:

format.setInteger("crop-left", 0);
format.setInteger("crop-top", 100);
format.setInteger("crop-right", 800);
format.setInteger("crop-bottom", 380);

能否请您提出一种裁剪视频的方法,以便可以将裁剪后的视频呈现在表面上。

0 个答案:

没有答案