起因
最近在做一个短视频类的小程序,需要从用户上传的视频中截取封面图。因为有些用户喜欢用“名不副实”的封面来吸引人点进去,所以拟截取视频播放1秒时的一帧图片作为封面。
安装OpenCV
库
1
| pip install opencv-python
|
代码实现:截取1秒时的一帧
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import cv2
video_path = "/home/richard/oss_tmp/a.mp4" cover_path = "/home/richard/oss_tmp/a_cover.jpg"
try: vc = cv2.VideoCapture(video_path) video_width = int(vc.get(cv2.CAP_PROP_FRAME_WIDTH)) video_height = int(vc.get(cv2.CAP_PROP_FRAME_HEIGHT)) vc.set(cv2.CAP_PROP_POS_MSEC, 1000) rval, frame = vc.read() if rval: cv2.imwrite(cover_path, frame) else: print("读取失败") except Exception as e: print(f"获取视频封面图失败: {e}")
|