在合成视频时候,大多数的图片都是24位深度的(即RGB三通道,一个通道8位),但是也存在少量的32位深的图片(RGBA,三个颜色通道加上A这个透明度通道),32位和24位的格式是不一样的,所以在合成视频的时候会跳过32位深图片的帧。
下图分别为24位深和32位深图片详情。
应对上述合成视频时候出现32位的图片不合成,在后续检查的视频总帧数的才会发现,在工作中这个小失误可能造成大问题。
所以在合成视频的时候要多留个心,当然解决方法也很简单,在合成脚本里面加入一行转换代码即可。
frame = cv2.cvtColor(frame, cv2.COLOR_RGBA2RGB)
这一行代码将32位深图片转换成了24位深的图片,就可以使用以下代码正常合成了。
video.write(frame)