В программном обеспечении FFMPEG AVPicture используется для хранения данных изображения с использованием указателя данных и размеров линий.Это означает, что все субтитры хранятся в виде картинки внутри ffmpeg. Теперь я хочу вывести субтитры из AVPicture в файл формата .ppm .
Я записал этот код в дамп субтитров с помощью данных в AVPicture.Возможно, мои красные, зеленые, синие данные о пикселях могут быть неправильными в цикле .
w = ctx->sub->rects[0]->w;
h = ctx->sub->rects[0]->h;
line_size = ctx->sub->rects[0]->linesize[0];
int m,n;
FILE *fp = fopen("first.ppm", "wb");
(void) fprintf(fp, "P3\n%d %d\n255\n", w, h);
for (m = 0; m < h; ++m)
{
for (n = 0; n < line_size; ++n)
{
static int r,g,b,a,z;
uint32_t *pallet = ctx->sub->rects[0]->data[1];
z = ctx->sub->rects[0]->data[0][n];
b = pallet[z]&0xFF;
g = (pallet[z]>>8) & 0xFF;
r = (pallet[z]>>16)& 0xFF;
a = (pallet[z]>>24)& 0xFF;
fprintf(fp,"%d %d %d %d",b,g,r,a);
}
fprintf(fp,"\n");
fflush(fp);
}
(void) fclose(fp);
Программа не выводит субтитры.Только 0 идет в r, g, b, a, по которому субтитры не выгружаются