将字幕从AVPicture转储到ppm格式文件中

时间:2019-01-19 06:16:53

标签: audio ffmpeg subtitle ppm

在FFMPEG软件中,AVPicture用于通过数据指针和行大小来存储图像数据。这意味着所有字幕都以图片形式存储在ffmpeg中。 现在,我想以.ppm格式文件从AVPicture转储字幕

我已使用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);

该程序未转储字幕。 r,g,b,a中只有0进入,字幕不会转储。

0 个答案:

没有答案