由于笔者在b站投稿MMD视频时,经常会遇到不知道用什么封面的情况,而b站的随机截屏有时候比我人工截的还好,但有时候也并没好看的。所以我便想自己写一个视频随机截屏的程序。截的多了,总归会有好看的。
然后要用到opencv,如果没有这个模块在b站搜,随便找一个就有下载方法。(其实笔者之前没怎么学过python,然后看b站视频,下载了python,opencv,pycharm从而搭建起环境)
下为python代码:
import cv2 as cv
import numpy as np
def video_demo():
cap = cv.VideoCapture("C:/Users/yourusername/Desktop/image_trial/a.mp4")#要截图的视频
total = cap.get(cv.CAP_PROP_FRAME_COUNT)#总帧数
i = 0
while True:
index = np.random.randint(0,total-1)
print(index)
cap.set(cv.CAP_PROP_POS_FRAMES,index)
ret,frame = cap.read()
if ret is not True:
break
cv.imshow("frame",frame)
i = i + 1
cv.imwrite("C:/Users/yourusername/Desktop/image_trial/23_c/" + str(i) +".png",frame)#截图命名
c = cv.waitKey(1)
if i == 50:#截图数量
break
if c == 27:#按ecs停止
break
cv.destroyAllWindows()
cap.release()
if __name__ == "__main__":
video_demo()
有一个注意事项,就是视频路径不能有中文。或许有让中文路径不报错的方法,但是把路径改成英文也不是很费力。
封面中两张就是截图里比较好看的两张。如果自己手动截屏那有些费力。