批量截取MP4两个时间(如12:10到12:18)之间的图片,-r 1 按一秒一截取,-r 24一秒24帧截取,之所以每秒每秒调用ffmpeg,每次截取1s的两张,是因为直接ffmpeg截取超过1s的视频图像,后续的图片失真非常严重。
import cv2
import os
startstr = "12:10"
endstr = "12:18"
#批量截取MP4两个时间之间的图片,-r 1 按一秒一截取,-r 24一秒24帧
file = "H:/DOWNLOAD/PANDOWN/ram/[Kamigami] Nausicaa of the Valley of the Wind [BD x264 1080p FLAC(Man,Can,Jap,Eng,Fre,Ger,Kor) Sub×7].mkv"
start1 = int(startstr.split(":")[0])
start2 = int(startstr.split(":")[1])
end1 = int(endstr.split(":")[0])
end2 = int(endstr.split(":")[1])
print(start1,start2,end1,end2)
flag1=0
flag2=0
def func(flag1,flag2):
os.system("ffmpeg -ss "+ str(flag1)+':' +str(flag2) + " -i \"" +file+ "\" -f image2 -r 2 -t 00:01 G:/PythonIO/moveImg/"+ str(flag1)+':' +str(flag2) +"%3d.jpg