当前位置: 首页 > 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需要自己去遍历处理,视频拼接原理与列表切分原理是一样的,灵活性比较高,内置一些其他的函数叠加,使用还是比较方便的

相关文章:

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

官网 使用matplotlib — moviepy-cn 文档 案例 from moviepy.editor import * from moviepy.video.fx import resize from PIL import Imagefile1r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo3.mp4" file2r"D:\xy_fs_try\video_to_deal\spider_video\…...

ubuntu搭建phpmyadmin+wordpress

Ubuntu搭建phpmyadmin wordpress Linux系统设置:Ubuntu 22配置apache2搭建phpmyadmin配置Nginx环境,搭建wordpress Linux系统设置:Ubuntu 22 配置apache2 安装apache2 sudo apt -y install apache2设置端口号为8080 sudo vim /etc/apache…...

linux网络之网络层与数据链路层

文章目录 一、网络层 1.IP协议 2.IP协议头格式 3.网段划分 4.特殊ip地址 5.IP地址的数量限制 6.私有ip和公网IP 7.路由 二、数据链路层 1.以太网 2.以太网帧格式 3.MAC地址 4.对比理解MAC地址和IP地址 5.MTU 6.ARP协议 ARP协议的工作流程 ARP数据报的格式 7.DNS 8.ICMP协议 9.N…...

python数学建模之Numpy、Pandas学习与应用介绍

文章目录 Numpy学习1 Numpy 介绍与应用1-1Numpy是什么 2 NumPy Ndarray 对象3 Numpy 数据类型4 Numpy 数组属性 Pandas学习1 pandas新增数据列2 Pandas数据统计函数3 Pandas对缺失值的处理 总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品P…...

LiveVIS视图库1400-如何切换数据库?默认使用的数据库是什么?如何切换到Mysql/MariaDB?

LiveVIS视图库1400-如何切换数据库?默认使用的数据库是什么?如何切换到Mysql/MariaDB? 1、切换成Mysql/Mariadb数据库1.1 连接数据库1.2 创建数据库实例1.3 配置.ini文件1.4 重启完成切换 1、切换成Mysql/Mariadb数据库 LiveVIS 默认使用 sqlite3 文件…...

【2023.11.24】Mybatis基本连接语法学习➹

基本配置 1.如果使用Maven管理项目&#xff0c;需要在pom.xml中配置依赖。 2.安装Mybatis-3.5.7.jar包 3.进行XML配置&#xff1a;这里将文件命名为mybatis-config.xml 配置数据库连接XML文件 <?xml version"1.0" encoding"UTF-8" ?> <!DO…...

如何防止网络被入侵?

随着互联网的普及&#xff0c;网络安全问题越来越受到人们的关注。其中&#xff0c;如何防止网络被入侵是一个重要的问题。本文将介绍一些防止网络被入侵的方法&#xff0c;帮助大家保护自己的网络安全。 一、使用强密码 强密码是防止网络被入侵的第一道防线。一个好的密码应该…...

【Linux】常见指令及周边知识(一)

【Linux】常见指令及周边知识&#xff08;一&#xff09; 一、初始Linux操作系统1.Linux背景2.如何使用Linux 二、学习Linux之前的预备周边知识&#xff08;重点&#xff09;&#xff1a;1.什么叫做文件&#xff1f;2. Linux下的路径分隔符3.在Linux中为什么会存在路径&#xf…...

【Docker】从零开始:6.配置镜像加速器

【Docker】从零开始&#xff1a;5.配置镜像加速器 什么是镜像加速器&#xff1f;为什么要配置docker镜像加速器?常见的Docker镜像加速器有哪些&#xff1f;如何申请Docker镜像加速器如何配置Docker镜像加速器 什么是镜像加速器&#xff1f; 镜像加速器是一个位于Docker Hub之…...

The Bridge:从临床数据到临床应用(预测模型总结)

The Bridge:从临床数据到临床应用&#xff08;预测模型总结&#xff09; 如果说把临床预测模型比作临床数据和临床应用之间的一座“桥梁”&#xff0c;那它应该包括这样几个环节&#xff1a;模型的构建和评价、模型的概率矫正、模型决策阈值的确定和模型的局部再评价。 模型的构…...

[极客大挑战 2019]Secret File1

[极客大挑战 2019]Secret File1 在bp里面发现secr3t.php 将secr3t.php 直接加在网站后面&#xff0c;发现了有关flag的信息&#xff0c;一个flag.php文件 在遇到flag.php时候&#xff0c;联想到php伪协议&#xff0c;构造伪协议方式 secr3t.php?filephp://filter/readconver…...

如何评估一个论坛或峰会值不值得参加?

现在的论坛和峰会非常多&#xff0c;且都宣传的非常高端&#xff0c;很多人为了不错过机会像赶场一样总在参会路上。但究竟什么样的论坛或峰会才值得一去呢&#xff1f; 评估一个论坛或峰会是否值得参加&#xff0c;需要考虑多个因素。 1、主题与你的兴趣或职业相关性&#xf…...

04_使用API_日期和时间

JDK 8 之前传统的日期、时间 Date 类 代表的是日期和时间 import java.util.Date;public class Test {public static void main(String[] args) {// 1. 创建一个Data对象&#xff0c;代表系统当前时间信息的Date d new Date();System.out.println(d); // 输出的是日期与当…...

手动实现 git 的 git diff 功能

这是 git diff 后的效果&#xff0c;感觉挺简单的&#xff0c;不就是 比较新旧版本&#xff0c;新增了就用 "" 显示新加一行&#xff0c;删除了就用 "-" 显示删除一行&#xff0c;修改了一行就用 "-"、"" 显示将旧版本中的该行干掉了并…...

RabbitMQ之MQ的可靠性

文章目录 前言一、数据持久化交换机持久化队列持久化消息持久化 二、LazyQueue控制台配置Lazy模式代码配置Lazy模式更新已有队列为lazy模式 总结 前言 消息到达MQ以后&#xff0c;如果MQ不能及时保存&#xff0c;也会导致消息丢失&#xff0c;所以MQ的可靠性也非常重要。 一、…...

Navicat 技术指引 | 适用于 GaussDB 的查询编辑器

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…...

Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

JenkinsMavenGitlabTomcat 自动化构建打包、部署 1、环境需求 本帖针对的是Linux环境&#xff0c;Windows或其他系统也可借鉴。具体只讲述Jenkins配置以及整个流程的实现。 1.JDK&#xff08;或JRE&#xff09;及Java环境变量配置&#xff0c;我用的是JDK1.8.0_144&#xff0…...

(2023码蹄杯)省赛(初赛)第三场真题(原题)(题解+AC代码)

题目1&#xff1a;MC0227堆煤球 码题集OJ-堆煤球 (matiji.net) 思路&#xff1a; 1.i从l枚举到r,i是8的倍数就跳过&#xff0c;i不是8的倍数就用等差数列求和公式i(1i)/2,最后累加到答案中即可 AC_Code:C #include<bits/stdc.h> using namespace std;int main( ) {in…...

第十二章 : Spring Boot 日志框架详解

第十二章 : Spring Boot 日志框架详解 前言 本章知识重点:介绍了日志诞生背景,4种日志框架:Logback、Log4j、Log4j2和Slf4j的优劣势分析,以及重点介绍了log4j2的应用示例以及配置,以及日志框架应用中遇到常见的问题以及如何处理。 背景 Java日志框架的发展历程可以追…...

STM32 -Bin/Hex文件格式解析

文章目录 1. 概述2. Hex文件2.1 格式解析2.2 数据类型2.3 举例解析2.4 合并两个Hex文件方法 3. Bin文件3.1 生成方式3.2 合并多个Bin文件方法3.3 打开Bin文件方式3.4 和Hex文件比较 4 总结 1. 概述 Hex文件&#xff1a;它是单片机和嵌入式工程编译输出的一种常见的目标文件格式…...

PyQt5安装及学习

学习目标 因为毕设需要&#xff0c;所以今天网上学习一下。做一个建议界面&#xff0c;或者后续可以借鉴ai做一下。 pyqt5安装 (yolov8) PS E:\pycharm\2024.11.28open3d> pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple Looking in indexes: http…...

保姆级教程:用Python串口和GBK编码玩转SYN6288 TTS模块(附完整代码)

Python全平台串口控制SYN6288语音合成模块实战指南 第一次听到SYN6288发出清晰的中文语音时&#xff0c;那种"机器开口说话"的奇妙感至今难忘。作为一款性价比极高的中文TTS模块&#xff0c;SYN6288通过简单的串口指令就能实现高质量的语音合成&#xff0c;特别适合智…...

心知天气API + ArduinoJson库实战:手把手教你为ESP8266天气时钟解析复杂JSON数据

心知天气API与ArduinoJson库深度解析&#xff1a;ESP8266天气时钟的JSON处理实战 在物联网开发中&#xff0c;数据获取与处理是核心技能之一。当我们使用ESP8266这类资源有限的微控制器时&#xff0c;如何高效解析复杂的JSON数据成为项目成功的关键。本文将聚焦心知天气API返回…...

终极跨平台RGB灯光控制:OpenRGB一站式解决方案彻底告别软件混乱

终极跨平台RGB灯光控制&#xff1a;OpenRGB一站式解决方案彻底告别软件混乱 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRG…...

2026届学术党必备的十大AI写作助手实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 一款基于先进自然语言处理跟知识图谱技术被构建的智能辅助系统是 AI 开题报告工具&#xff…...

CAPL Test Node实战:精准控制总线、节点与报文启停的自动化测试策略

1. CAPL Test Node基础概念与实战价值 在汽车电子测试领域&#xff0c;CAPL&#xff08;CAN Access Programming Language&#xff09;作为Vector工具链中的核心脚本语言&#xff0c;其Test Node功能模块为总线测试提供了强大的控制能力。实际项目中我们经常遇到这样的需求&…...

DialogX主题系统深度解析:Material、iOS、MIUI多风格切换指南

DialogX主题系统深度解析&#xff1a;Material、iOS、MIUI多风格切换指南 【免费下载链接】DialogX &#x1f4ac; DialogX dialog box component library, easy to use, more customizable, more scalable, easy to achieve a variety of dialog boxes. DialogX对话框组件库&a…...

GetQzonehistory:一键永久保存QQ空间说说的完整解决方案

GetQzonehistory&#xff1a;一键永久保存QQ空间说说的完整解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代&#xff0c;QQ空间承载了无数人的青春记忆&#xff0c;但…...

prek内置钩子详解:20个零配置快速检查工具

prek内置钩子详解&#xff1a;20个零配置快速检查工具 【免费下载链接】prek ⚡ A Git hook manager written in Rust, designed as a drop-in alternative to pre-commit. 项目地址: https://gitcode.com/GitHub_Trending/pr/prek prek是一个用Rust编写的Git钩子管理器…...

JUnit 5单元测试(三)—— Mockito 模拟实战:从零构建隔离测试环境

1. 为什么需要Mockito隔离测试环境 第一次接触单元测试时&#xff0c;我遇到过这样的尴尬场景&#xff1a;测试一个订单支付功能&#xff0c;每次运行测试都要真实调用支付宝接口&#xff0c;不仅测试速度慢&#xff0c;还因为网络波动经常失败。更糟的是&#xff0c;有次测试数…...