2017-01-06 5 views
1

Я нашел учебник для преобразования видео в ppm. http://webcache.googleusercontent.com/search?q=cache:http://dranger.com/ffmpeg/tutorial01.html&gws_rd=cr&ei=BU9tWNyFNsvCjwTXqbuwDgконвертировать видео в ppm файлы

Однако, я не понимаю, почему ширина * 3 здесь.

void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame) { 
    FILE *pFile; 
    char szFilename[32]; 
    int y; 

    // Open file 
    sprintf(szFilename, "frame%d.ppm", iFrame); 
    pFile=fopen(szFilename, "wb"); 
    if(pFile==NULL) 
    return; 

    // Write header 
    fprintf(pFile, "P6\n%d %d\n255\n", width, height); 

    // Write pixel data 
    for(y=0; y<height; y++) { 

    fwrite(pFrame->data[0]+y*pFrame->linesize[0], 1, width*3, pFile); 
    } 

    // Close file 
    fclose(pFile); 
} 

ответ

2

Возможно, потому что для каждой точки изображения у вас есть три канала (RGB).

Смежные вопросы