我在windows下使用以下命令行将视频文件转换为单个帧以供项目使用。但该项目最终将使用16位RGB565调色板。是否有可能使用调色板来创建256色rgb565调色板而不是rgb888?我想在将图像减少到256色之前减少颜色深度,希望能更好地适应调色板。
ffmpeg -y -i "input.mpg" -filter_complex "fps=15,scale=220:-1:flags=bilinear:sws_dither=none[x];[x]split[x1][x2];[x1]palettegen=reserve_transparent=off:stats_mode=single:max_colors=256[p];[x2][p]paletteuse=new=1:dither=none" frames/%%03d.bmp
谢谢。
- paletteuse输出pal8, paletteuse为8位(参见
ffmpeg -pix_fmts
)。 - bmp编码器支持以下像素格式:bgra bgr24 rgb565le rgb555le rgb444le rgb8 bgr8 rgb4_byte bgr4_byte灰色pal8 monob(见
ffmpeg -h encoder=bmp
)。 - 默认情况下,输出编码器将自动选择编码器支持的最接近匹配的像素格式。在这种情况下,bmp编码器直接支持pal8,所以pal8将被使用。
如果你想强制转换为不同的像素格式,使用格式过滤器:
ffmpeg -i "input.mpg" -filter_complex "fps=15,scale=220:-1:flags=bilinear:sws_dither=none[x];[x]split[x1][x2];[x1]palettegen=reserve_transparent=off:stats_mode=single:max_colors=256[p];[x2][p]paletteuse=new=1:dither=none,format=rgb565le" frames/%03d.bmp