Je voulais connecter beaucoup de vidéos telles que les résultats d'apprentissage par renforcement en un seul coup, alors je l'ai fait.
Un programme qui crée une seule vidéo en concaténant toutes les vidéos dans un répertoire contenant plusieurs vidéos.
import cv2
import glob
def comb_movie(movie_files,out_path):
#Le format est mp4
fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
#Acquisition d'informations vidéo
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)
#Ouvrez le fichier de sortie
out = cv2.VideoWriter(out_path, int(fourcc), fps, (int(width), int(height)))
for movies in (movie_files):
print(movies)
#Lire le fichier vidéo, l'argument est le chemin du fichier vidéo
movie = cv2.VideoCapture(movies)
if movie.isOpened() == True: #Vérifiez si le fichier vidéo a été lu normalement
ret,frame = movie.read() # read():Lire les données d'image capturées pour une image
else:
ret = False
while ret:
#Ecrire le cadre de lecture
out.write(frame)
#Lire l'image suivante
ret,frame = movie.read()
#Extraire les vidéos du répertoire à partir d'une liste
files = sorted(glob.glob("./movie_dir/*.mp4"))
#Nom du fichier de sortie
out_path = "movie_out1.mp4"
comb_movie(files,out_path)
Recommended Posts