Advertisement
sosyamba

Untitled

Nov 13th, 2023
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. import cv2
  2. import moviepy.editor as mpe
  3. import argparse
  4. import glob
  5. import os
  6.  
  7. # Создание парсера
  8. parser = argparse.ArgumentParser(description='Преобразование кадров в видео')
  9. parser.add_argument('--in', dest='input_video', required=True, help='Путь к оригинальному видео')
  10. parser.add_argument('--ff', dest='frames_folder', required=True, help='Путь к папке с кадрами')
  11. parser.add_argument('--out', dest='output_video', required=True, help='Путь к выходному видео')
  12.  
  13. args = parser.parse_args()
  14.  
  15. # Получить fps из оригинального видео
  16. clip = mpe.VideoFileClip(args.input_video)
  17. fps = clip.fps
  18.  
  19. # Создать видеоряд из кадров
  20. frame_array = []
  21. files = glob.glob(args.frames_folder + '/*.jpg') # путь к папке с кадрами
  22. files.sort() # убедитесь, что кадры в правильном порядке
  23.  
  24. for i in range(len(files)):
  25. filename = files[i]
  26. img = cv2.imread(filename)
  27. height, width, layers = img.shape
  28. size = (width, height)
  29. frame_array.append(img)
  30.  
  31. out = cv2.VideoWriter('temp.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, size)
  32.  
  33. for i in range(len(frame_array)):
  34. out.write(frame_array[i])
  35. out.release()
  36.  
  37. # Добавить звуковую дорожку из оригинального видео
  38. my_clip = mpe.VideoFileClip('temp.mp4')
  39. audio_background = mpe.AudioFileClip(args.input_video)
  40. final_audio = mpe.CompositeAudioClip([audio_background])
  41. final_clip = my_clip.set_audio(final_audio)
  42. final_clip.write_videofile(args.output_video)
  43.  
  44. # Удалить временный файл
  45. os.remove('temp.mp4')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement