Ich wollte viele Videos wie Verstärkungslernergebnisse auf einmal verbinden, also habe ich es geschafft.
Ein Programm, das ein einzelnes Video erstellt, indem alle Videos in einem Verzeichnis mit mehreren Videos verkettet werden.
import cv2
import glob
def comb_movie(movie_files,out_path):
#Das Format ist mp4
fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
#Erfassung von Videoinformationen
movie = cv2.VideoCapture(movie_files[0])
fps = movie.get(cv2.CAP_PROP_FPS)
height = movie.get(cv2.CAP_PROP_FRAME_HEIGHT)
width = movie.get(cv2.CAP_PROP_FRAME_WIDTH)
#Öffnen Sie die Ausgabedatei
out = cv2.VideoWriter(out_path, int(fourcc), fps, (int(width), int(height)))
for movies in (movie_files):
print(movies)
#Videodatei lesen, Argument ist Videodateipfad
movie = cv2.VideoCapture(movies)
if movie.isOpened() == True: #Überprüfen Sie, ob die Videodatei normal gelesen wurde
ret,frame = movie.read() # read():Lesen Sie die aufgenommenen Bilddaten für einen Frame
else:
ret = False
while ret:
#Schreiben Sie den Leserahmen
out.write(frame)
#Lesen Sie den nächsten Frame
ret,frame = movie.read()
#Extrahieren Sie Videos im Verzeichnis aus einer Liste
files = sorted(glob.glob("./movie_dir/*.mp4"))
#Name der Ausgabedatei
out_path = "movie_out1.mp4"
comb_movie(files,out_path)
Recommended Posts