• moviepy 视频剪切,拼接,音频处理


    官网

    使用matplotlib — moviepy-cn 文档

    案例

    1. from moviepy.editor import *
    2. from moviepy.video.fx import resize
    3. from PIL import Image
    4. file1=r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo3.mp4"
    5. file2=r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo4.mp4"
    6. file4=r'D:\xy_fs_try\video_to_deal\spider_video\file\qianlong.mp4'
    7. file3=r'D:\xy_fs_try\video_to_deal\spider_video\file\source.mp4'
    8. file5=r'D:\xy_fs_try\video_to_deal\spider_video\file\source1.mp4'
    9. file6=r'D:\xy_fs_try\video_to_deal\spider_video\file\source2.mp4'
    10. def extract_frames_on_original(video_path, output_path, fps=1):
    11. original_clip = VideoFileClip(video_path)
    12. frames = original_clip.iter_frames(fps=fps)
    13. extracted_clips = []
    14. for frame in frames:
    15. extracted_clip = VideoFileClip(video_path).set_duration(1/fps).set_start(len(extracted_clips) / fps)
    16. extracted_clips.append(extracted_clip)
    17. # 将原视频和抽帧视频拼接起来
    18. final_clip = clips_array([[original_clip], [clips_array([extracted_clips])]])
    19. final_clip.write_videofile(output_path, codec='libx264')
    20. # 使用示例
    21. # video_file = r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo3.mp4" # 替换为你的视频文件路径
    22. # output_video = "./extracted_video.mp4" # 替换为你想要保存的抽帧后的视频路径
    23. # extract_frames_on_original(video_file, output_video, fps=1) # 抽取帧并生成视频,每秒一帧
    24. def concatenate_videos(video1_path, video2_path, output_path):
    25. '''视频拼接'''
    26. audio=VideoFileClip(file3).audio
    27. video = VideoFileClip(file3).without_audio()
    28. video2 = VideoFileClip(file5).without_audio()
    29. video3 = VideoFileClip(file6).without_audio()
    30. re_video=video.subclip(1,25)
    31. ba_video=video.subclip(26,56.7)
    32. # # 拼接两个视频剪辑
    33. final_clip = concatenate_videoclips([re_video, video2,video3,ba_video],method='compose')
    34. final_clip=final_clip.set_audio(audio)
    35. final_clip.write_videofile(output_path, codec='libx264')
    36. final_clip.reader.close()
    37. final_clip.audio.reader.close_proc()
    38. video1_file = file3 # 替换为第一个视频文件路径
    39. video2_file = file4 # 替换为第二个视频文件路径
    40. output_video = "./concatenated_video.mp4" # 替换为输出的合并视频路径
    41. concatenate_videos(video1_file, video2_file, output_video) # 将两个视频拼接成一个新视频

    总结

    moviepy使用的还是比较方便的,比起opencv需要自己去遍历处理,视频拼接原理与列表切分原理是一样的,灵活性比较高,内置一些其他的函数叠加,使用还是比较方便的

  • 相关阅读:
    培训学校管理系统之家校管理
    Activiti第二部分
    苹果AppleMacOs最新Sonoma系统本地训练和推理GPT-SoVITS模型实践
    从Matlab实例学习差分进化算法
    优优嗨聚集团:OTC药品能否纳入报销成为各方关注焦点,对OTC医疗有何影响
    计算机网络:路由协议
    【八大经典排序算法】冒泡排序
    Lambda 在集合中的应用
    我们与元宇宙的距离
    python学习——发现python派生类不执行自己的初始化函数
  • 原文地址:https://blog.csdn.net/Steven_yang_1/article/details/134557532