在使用爬虫的过程中,爬到的视频没有视频封面,这时就需要我们手动给他添加一个视频封面,那么opencv就登场了,我们可以使用它抽取视频中的任意一帧保存下来,作为其视频封面
import cv2
def get_video_pic(name):
cap = cv2.VideoCapture(name)
cap.set(1, int(cap.get(7)/2)) # 取它的中间帧
rval, frame = cap.read() # 如果rval为False表示这个视频有问题,为True则正常
if rval:
cv2.imwrite('image.jpg', frame) # 存储为图像
cap.release()
get_video_pic("1.mp4")
这里我们使用的是视频的中间帧作为其封面,cap.get(7) 获取视频有多少帧,cap.set(1,x) 设置视频的下一帧为第x帧.这里的x大家可以任意指定,但是不要超过cap.get(7)的值,否则图片保存就会报错.
视频读取完会有0-18个属性,大家可以使用cap.get(0)、cap.get(1)….cap.get(18)来获取其所有属性。可以使用cap.set(x,y)来设置属性的值,x表示你要设置哪个属性,y表示你要设置的具体的值.关于这18个参数的具体作用,请大家参考官方文档:propid 详细说明