gpt4 book ai didi

ffmpeg - 从 AVFrame 复制一个矩形区域 - ffmpeg

转载 作者:行者123 更新时间:2023-12-04 22:56:25 27 4
gpt4 key购买 nike

我正在尝试拉出一个 AVFrame 的矩形区域并开始执行一个功能。我只对使用格式为 PIX_FMT_RGB24 的 AVFrame 感兴趣。我也可能在这里重新发明轮子,所以如果已经有这样做的功能,请加入。到目前为止,我的功能如下所示:

AVFrame * getRGBsection(AVFrame *pFrameRGB, const int start_x, const int start_y, const int w, const int h) {

AVFrame *pFrameSect;
int numBytes;
uint8_t *mb_buffer;

pFrameSect = avcodec_alloc_frame();
numBytes = avpicture_get_size(PIX_FMT_RGB24, w, h);
mb_buffer = (uint8_t *) av_malloc(numBytes * sizeof(uint8_t));
avpicture_fill((AVPicture *) pFrameSect, mb_buffer, PIX_FMT_RGB24, w, h);

int curY, curX, i = 0;
for (curY = start_y ; curY < (start_y + h); curY++) {

for (curX = start_x; curX < (start_x + w); curX++) {

int curIndex = curX * 3 + curY * pFrameRGB->linesize[0];

pFrameSect->data[0][i] = pFrameRGB->data[0][curIndex];
pFrameSect->data[0][i + 1] = pFrameRGB->data[0][curIndex + 1];
pFrameSect->data[0][i + 2] = pFrameRGB->data[0][curIndex + 2];

i += 3;

}

}

return pFrameSect;

}

当我从 (0,0) 开始(我认为)时,该功能似乎有效,但是当我在图像中的其他位置移动时,它输出的颜色与应该存在的颜色相似但不正确。我想我在这里很近,有人可以提供指导吗?

最佳答案

  • 有2个选项
  • 用户视频过滤器(vf_crop)。 (filtering_video.c 提供了实用裁剪的示例)
  • imgconvert.c 中的函数 av_picture_crop()。此功能不完整,但您可以修改它以供您使用。
  • 关于ffmpeg - 从 AVFrame 复制一个矩形区域 - ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696258/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com