当前位置: 首页 > news >正文

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

官网

使用matplotlib — moviepy-cn 文档

案例

from moviepy.editor import *
from moviepy.video.fx import resize
from PIL import Imagefile1=r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo3.mp4"
file2=r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo4.mp4"
file4=r'D:\xy_fs_try\video_to_deal\spider_video\file\qianlong.mp4'file3=r'D:\xy_fs_try\video_to_deal\spider_video\file\source.mp4'
file5=r'D:\xy_fs_try\video_to_deal\spider_video\file\source1.mp4'
file6=r'D:\xy_fs_try\video_to_deal\spider_video\file\source2.mp4'def extract_frames_on_original(video_path, output_path, fps=1):original_clip = VideoFileClip(video_path)frames = original_clip.iter_frames(fps=fps)extracted_clips = []for frame in frames:extracted_clip = VideoFileClip(video_path).set_duration(1/fps).set_start(len(extracted_clips) / fps)extracted_clips.append(extracted_clip)# 将原视频和抽帧视频拼接起来final_clip = clips_array([[original_clip], [clips_array([extracted_clips])]])final_clip.write_videofile(output_path, codec='libx264')# 使用示例
# video_file = r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo3.mp4"  # 替换为你的视频文件路径
# output_video = "./extracted_video.mp4"  # 替换为你想要保存的抽帧后的视频路径
# extract_frames_on_original(video_file, output_video, fps=1)  # 抽取帧并生成视频,每秒一帧def concatenate_videos(video1_path, video2_path, output_path):'''视频拼接'''audio=VideoFileClip(file3).audiovideo = VideoFileClip(file3).without_audio()video2 = VideoFileClip(file5).without_audio()video3 = VideoFileClip(file6).without_audio()re_video=video.subclip(1,25)ba_video=video.subclip(26,56.7)# # 拼接两个视频剪辑final_clip = concatenate_videoclips([re_video, video2,video3,ba_video],method='compose')final_clip=final_clip.set_audio(audio)final_clip.write_videofile(output_path, codec='libx264')final_clip.reader.close()final_clip.audio.reader.close_proc()video1_file = file3  # 替换为第一个视频文件路径
video2_file = file4  # 替换为第二个视频文件路径
output_video = "./concatenated_video.mp4"  # 替换为输出的合并视频路径
concatenate_videos(video1_file, video2_file, output_video)  # 将两个视频拼接成一个新视频

总结

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

http://www.lryc.cn/news/242826.html

相关文章:

  • ubuntu搭建phpmyadmin+wordpress
  • linux网络之网络层与数据链路层
  • python数学建模之Numpy、Pandas学习与应用介绍
  • LiveVIS视图库1400-如何切换数据库?默认使用的数据库是什么?如何切换到Mysql/MariaDB?
  • 【2023.11.24】Mybatis基本连接语法学习➹
  • 如何防止网络被入侵?
  • 【Linux】常见指令及周边知识(一)
  • 【Docker】从零开始:6.配置镜像加速器
  • The Bridge:从临床数据到临床应用(预测模型总结)
  • [极客大挑战 2019]Secret File1
  • 如何评估一个论坛或峰会值不值得参加?
  • 04_使用API_日期和时间
  • 手动实现 git 的 git diff 功能
  • RabbitMQ之MQ的可靠性
  • Navicat 技术指引 | 适用于 GaussDB 的查询编辑器
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署
  • (2023码蹄杯)省赛(初赛)第三场真题(原题)(题解+AC代码)
  • 第十二章 : Spring Boot 日志框架详解
  • STM32 -Bin/Hex文件格式解析
  • 【Java 进阶篇】Redis:打开缓存之门
  • Python与设计模式--享元模式
  • 亚马逊云科技向量数据库助力生成式AI成功落地实践探秘(二)
  • 怎么当代课老师教学生
  • 『 MySQL数据库 』表的增删查改(CRUD)之表的数据插入及基本查询
  • Vue中mvvm的作用
  • 基于springboot实现高校食堂移动预约点餐系统【项目源码】
  • 用element ui上传带参数的文件,并用flask接收
  • [Android]使用Git将项目提交到GitHub
  • python cv2.imread()和Image.open()的区别和联系
  • hdlbits系列verilog解答(exams/m2014_q4i)-45