news 2026/9/22 1:12:05

python_基于主视频删减片段并插入镜头视频

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python_基于主视频删减片段并插入镜头视频

python_基于主视频删减片段并插入镜头视频

importpyJianYingDraftasdraftfrompyJianYingDraftimporttrange,ClipSettings,tim def create_jianying_draft_from_clips(draft_name,main_video_path,delete_ranges,lens_info_dict,draft_folder_path):# 时间格式转换函数(处理00:00:01,640格式)def convert_time(time_str): h,m,s_ms=time_str.replace(',','.').split(':')returnf"{int(h)}h{int(m)}m{s_ms}s"# 1、创建草稿文件夹实例draft_folder=draft.DraftFolder(draft_folder_path)# 创建新草稿(使用主视频的分辨率)main_mat=draft.VideoMaterial(main_video_path)script=draft_folder.create_draft(draft_name,main_mat.width,main_mat.height,)# 2、计算出主视频的剩余目标区间并添加到草稿中def add_main_video_segments(): script.add_track(draft.TrackType.video,"video_track")# 创建视频轨道# 解析删除区间(转换为微秒,并按起始时间排序)parsed_deletes=[]forstart_str,end_strindelete_ranges:start=tim(convert_time(start_str))# 转换为微秒end=tim(convert_time(end_str))parsed_deletes.append((start,end))# 按起始时间排序,确保区间顺序正确(避免交叉区间导致计算错误)parsed_deletes.sort(key=lambda x: x[0])# 3. 获取视频总时长video_material=draft.VideoMaterial(main_video_path)total_duration=video_material.duration# 微秒# 4. 动态计算保留区间keep_ranges=[]prev_end=0# 上一个区间的结束位置fordelete_start,delete_endinparsed_deletes:# 若当前删除区间的起点 > 上一个区间的终点,说明中间有需要保留的部分ifdelete_start>prev_end: keep_ranges.append((prev_end,delete_start))# 更新上一个区间的终点为当前删除区间的终点prev_end=max(prev_end,delete_end)# 处理区间重叠的情况# 添加最后一个保留区间(从最后一个删除区间的终点到视频结束)ifprev_end<total_duration: keep_ranges.append((prev_end,total_duration))print("保留的视频片段时间区间",keep_ranges)# 5. 截取并拼接保留的片段current_start=0# 轨道上的起始位置(确保无缝拼接)forkeep_start,keep_endinkeep_ranges:ifkeep_start>=keep_end:continue# 跳过无效区间# 截取素材中[keep_start, keep_end)的片段segment=draft.VideoSegment(video_material,target_timerange=trange(current_start,keep_end-keep_start),# 轨道上的位置和时长source_timerange=trange(keep_start,keep_end-keep_start)# 素材中截取的区间)script.add_segment(segment,"video_track")current_start+=(keep_end-keep_start)# 更新下一段的起始位置# 3、添加镜头视频def add_lens_videos():forlens_name,lens_infoinlens_info_dict.items(): lens_video_path,lens_start_time=lens_info lens_video_material=draft.VideoMaterial(lens_video_path)start_time=tim(convert_time(lens_start_time))# 创建视频轨道script.add_track(draft.TrackType.video,track_name=lens_name,relative_index=1)# 创建镜头片段lens_segment=draft.VideoSegment(lens_video_material,trange(start_time,lens_video_material.duration),# 关键设置:强制缩放镜头视频以填充整个画布,确保完全覆盖clip_settings=ClipSettings(scale_x=main_mat.width/lens_video_material.width,# 按宽度比例缩放scale_y=main_mat.height/lens_video_material.height,# 按高度比例缩放))# 添加片段到对应轨道script.add_segment(lens_segment,lens_name)add_main_video_segments()add_lens_videos()script.save()draft_name="草稿名称4"main_video_path=r"C:\Users\Jordan\Downloads\【25-41格雷灰】【脚本_2】\【25-41格雷灰】【脚本_1】.mp4"delete_ranges=[("00:00:01,640","00:00:02,640"),("00:00:03,640","00:00:04,640")]lens_info_dict={"镜头A":[r"C:\Users\Jordan\Downloads\【25-41格雷灰】【脚本_2】\【25-41格雷灰】【镜头_拉链】.MP4","00:00:01,640"],"镜头B":[r"D:\Desktop\20251206223742_rec_.mp4","00:00:06,640"]} draft_folder_path=r"D:\download_software\JianyingPro Drafts"create_jianying_draft_from_clips(draft_name,main_video_path,delete_ranges,lens_info_dict,draft_folder_path)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/22 1:19:02

android 之 AAudio

AAudio 是 Android 官方推出的低延迟音频库(API 26/Android 8.0+),专为高性能、低延迟的音频流处理设计,核心目标是满足游戏、实时音频应用(如乐器、语音通话)等对延迟敏感的场景需求。 一、核心概念 1. 音频流(AudioStream) AAudio 的核心抽象,是应用与音频硬件之…

作者头像 李华
网站建设 2026/9/21 11:39:40

anoconda简单操作

1. 常用命令 conda env list&#xff1a;查看目前电脑中所有的conda环境 conda search pymysql&#xff1a;查找本机所支持的所有pymysql版本 conda list pymysql:查看本机已经安装 的pymysql版本 2. Jupyter Notebook

作者头像 李华
网站建设 2026/9/21 22:18:41

多场景头盔佩戴检测

多场景头盔佩戴检测系统 本文档旨在全面、深入地介绍安全帽佩戴检测系统的技术细节、架构设计及功能实现。系统集成了深度学习目标检测算法、Web全栈开发技术与数据库管理技术&#xff0c;形成了一套完整的闭环解决方案。1. 系统架构设计 (System Architecture) 本系统采用经典…

作者头像 李华
网站建设 2026/9/22 1:47:07

70看看:AI如何帮你快速生成代码项目

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 使用70看看平台&#xff0c;输入以下需求&#xff1a;创建一个简单的待办事项应用&#xff0c;包含添加、删除和标记完成功能。前端使用React&#xff0c;后端使用Node.js&#xff…

作者头像 李华
网站建设 2026/9/21 22:31:29

13、Puppet 模块与类:从基础到高级应用

Puppet 模块与类:从基础到高级应用 1. 模块代码编写 Puppet 模块具有标准的目录结构,这有助于 Puppet 自动查找模块内的清单文件、模板和其他组件。在这个示例中,我们主要关注 manifests 和 files 这两个子目录。以下是创建管理 NTP 服务的模块的详细步骤: 创建 ma…

作者头像 李华
网站建设 2026/9/21 13:59:15

JBoltAI 识图阅卷:AI 赋能教育考评,开启智能阅卷新时代

在教育信息化深入发展的今天&#xff0c;学校、考试院、培训机构面临着大规模阅卷的共性难题&#xff1a;人工阅卷效率低下、主观误差难以避免、人力成本居高不下。传统阅卷模式不仅消耗大量师资精力&#xff0c;还可能因疲劳、标准理解偏差等因素影响考评结果的公正性与准确性…

作者头像 李华