Python AI自动剪辑视频简易程序

说明:这是本地简易AI自动剪辑脚本,实现功能:自动截取高光片段、按字幕/音频分割、合并输出成片。

依赖: moviepy 做视频剪辑、 openai‑whisper 做语音转文字识别分割,ffmpeg为底层依赖。

⚠️注意:处理大视频会消耗CPU,本地没有GPU速度会偏慢;仅供学习,不要用于处理无版权视频。

1.安装依赖

bash

pip install moviepy openai‑whisper

需要安装ffmpeg,windows下载配置环境变量,mac:brew install ffmpeg

2.完整代码

python

import whisper

from moviepy.editor import VideoFileClip, concatenate_clips

import os

class AIVideoAutoEdit:

def init(self, video_path):

self.video_path = video_path

self.model = whisper.load_model("base") # 模型可选 tiny/base/small,越大识别越好

self.clip = VideoFileClip(video_path)

def audio_transcribe(self):

"""语音识别,返回带时间戳的片段"""

print("🔍正在解析视频音频...")

result = self.model.transcribe(self.video_path, word_timestamps=True)

segments = result"segments"

return segments

def filter_useful_segment(self, segments, min_duration=2.0):

"""简单筛选:过滤太短静音片段,提取有效片段时间"""

keep_time = \[\]

for seg in segments:

start = seg"start"

end = seg"end"

dur = end - start

保留时长大于阈值的片段

if dur >= min_duration:

keep_time.append((start, end))

return keep_time

def auto_cut_video(self, output_name="ai_edit_output.mp4"):

seg_list = self.audio_transcribe()

time_ranges = self.filter_useful_segment(seg_list)

cut_clips = \[\]

print(f"✂️识别到 {len(time_ranges)} 个有效片段,开始剪辑")

for s, e in time_ranges:

sub = self.clip.subclip(s, e)

cut_clips.append(sub)

if len(cut_clips) == 0:

print("未识别有效片段")

return

final = concatenate_clips(cut_clips)

final.write_videofile(output_name, codec="libx264")

self.clip.close()

print(f"✅剪辑完成,输出文件:{output_name}")

if name == "main":

修改这里为你的本地视频路径

INPUT_VIDEO = "test.mp4"

if os.path.exists(INPUT_VIDEO):

edit = AIVideoAutoEdit(INPUT_VIDEO)

edit.auto_cut_video()

else:

print("视频文件不存在,请检查路径!")

程序实现逻辑

  1. whisper提取视频音频,生成带时间戳字幕分段

  2. 过滤掉过短、静音无效片段

  3. 根据时间戳自动裁切视频片段

  4. 将有效片段拼接输出新视频

可以扩展升级方向

  1. 高光自动提取:接入音频响度检测,自动保留声音大的高光片段

  2. 关键词剪辑:识别字幕关键词,只保留出现指定关键词的片段

python

关键词筛选示例伪代码

keywords = "重点","注意","干货"

if any(k in seg"text" for k in keywords):

加入片段

  1. 自动加字幕、自动转横竖屏、加背景音乐

  2. 进阶:调用大模型API,把字幕文本发给LLM,让AI判断哪些片段值得保留

局限说明

  1. whisper base模型 识别中文有小概率出错,换成 small 模型识别精度更高,但速度变慢

  2. 纯CPU运行长视频耗时很久,有N卡可以开启GPU加速

  3. 这只是基础demo,商业级AI剪辑一般调用第三方API(剪映开放平台、字节火山AI剪辑API),不建议从零手搓完整产品。

相关推荐
我滴老baby1 小时前
部署 Excalidraw:Docker 搭建手绘白板,再配置固定公网访问
数据库·人工智能·架构
夜雪一千1 小时前
Python爬虫实战:把Bootstrap栅格Div伪表格转为原生Table表格
python
TAN-90°-1 小时前
Deep Learning for Computer Vision——Generative Models 1
人工智能·深度学习·神经网络·目标检测·机器学习·计算机视觉
AIGCmagic社区1 小时前
OpenWAM把世界动作模型预训练拆成可替换的受控实验
人工智能·aigc·具身智能
u1301301 小时前
GitHub 热榜项目:日榜(2026-09-18)
人工智能·github
天涯明月19931 小时前
SGLang 设计与实现——RadixAttention 与前后端协同,让 KV 缓存不再用完即弃
人工智能·大模型·推理框架·ai infra
胡家伟++1 小时前
从“过滤”到“选择”:投机解码、拒绝采样与强化学习的方差缩减统一理论
人工智能·机器学习
深兰科技1 小时前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
m0_587383001 小时前
上海24小时自助健身房系统软件开发实战指南:从架构到部署
人工智能·小程序·数据挖掘·系统架构·需求分析