如何从透明WebM视频提取保留透明度的单帧?
解决FFmpeg提取透明WebM帧丢失透明度的问题
你用的命令没保留透明度,大概率是解码或编码环节没正确处理alpha通道,试试下面的方法:
1. 先确认原视频是否真的带透明通道
用这条命令查看视频的像素格式,确认是否包含alpha信息:
ffmpeg -i input.webm -vframes 1 -f null -
输出里找类似Stream #0:0: Video: vp9, yuva420p(tv, bt709), ...的行,yuva420p这类带a的格式就说明有透明通道。
2. 修改提取命令
如果原视频确实有透明通道,换用下面的命令提取:
ffmpeg -i input.webm -frames:v 1 -c:v png -pix_fmt rgba output.png
-c:v png强制使用PNG编码器,它原生支持透明通道-pix_fmt rgba确保输出像素格式包含alpha通道
如果还是不行,试试强制指定VP9解码器(很多透明WebM用VP9编码):
ffmpeg -c:v libvpx-vp9 -i input.webm -frames:v 1 -pix_fmt rgba output.png
或者用滤镜强制转换为带alpha的格式:
ffmpeg -i input.webm -frames:v 1 -vf "format=rgba" output.png
内容的提问来源于stack exchange,提问作者user5672
相关产品推荐
相关产品推荐

