from moviepy.editor import VideoFileClip, concatenate_videoclips
def preprocess_clip(clip, target_fps=30, target_size=(1280, 720)):
"""
预处理视频片段,设置新的帧率和分辨率。
注意:这里的帧率调整可能只是改变了播放时的假设帧率,
并没有真正地重新采样视频帧。
:param clip: VideoFileClip对象
:param target_fps: 目标帧率
:param target_size: 目标分辨率(宽度, 高度)
:return: 处理后的VideoFileClip对象
"""
# 尽可能调整帧率(但实际上只是改变了播放速度)
# 如果需要真正的帧率调整,请考虑使用ffmpeg
clip = clip.set_fps(target_fps)
# 调整分辨率
clip = clip.resize(newsize=target_size)
return clip
def merge_video_clips(input_dir, output_path, target_fps=30, target_size=(1280, 720)):
"""
合并指定目录下的所有视频片段为一个长视频,并进行预处理。
:param input_dir: 包含视频片段的目录地址
:param output_path: 合并后视频的保存地址
:param target_fps: 目标帧率
:param target_size: 目标分辨率(宽度, 高度)
:return: None
"""
try:
import os
# 获取目录下所有视频文件的列表
video_files = [f for f in sorted(os.listdir(input_dir)) if f.endswith(('.mp4', '.avi', '.mov'))]
video_clips = []
# 遍历视频文件列表,加载并预处理每个视频片段
for video_file in video_files:
video_path = os.path.join(input_dir, video_file)
clip = VideoFileClip(video_path)
clip = preprocess_clip(clip, target_fps, target_size)
video_clips.append(clip)
# 合并视频片段
final_clip = concatenate_videoclips(video_clips)
# 导出合并后的视频
# 注意:这里我们再次指定fps,以确保输出视频具有正确的帧率
final_clip.write_videofile(output_path, codec='libx264', fps=target_fps)
print(f"视频已成功合并并保存至 {output_path}")
except Exception as e:
print(f"合并视频时发生错误: {e}")
# 使用示例
input_dir = r'D:\20240625_163011 母客项目\20240625_163113 mk\temp\20240902_002611 鲸鱼编程 开学的旅程'
output_path = r'C:\Users\Administrator\Desktop\新建文件夹 (12)/merged_video55.mp4'
merge_video_clips(input_dir, output_path, target_fps=25, target_size=(1080, 1920))
20240909_031400 多个小视频合成一个大视频代码
原创
©著作权归作者所有:来自51CTO博客作者鲸鱼编程pyhui的原创作品,请联系作者获取转载授权,否则将追究法律责任
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
AIGC-基于EAS服务快速部署一个AI视频生成
作为一个基于节点流程式的AIGC生成工具WebUI,ComfyUI将AIGC流程拆分成工作节点,实现了精准的工作流定制和可复现性。
工作空间 机器学习 AIGC AIGC二三事 #AIGC二三事 -
大模型生成短视频
大模型生成短视频
自动生成 视频网站 API -
iOS拍个小视频
iOS拍个小视频
iOS Xcode Object-c -
uniapp小视频项目:视频列表
1、创建视频列表2、视频列表改为动态数据3、模拟请求post
音视频 vue.js javascript ide json -
uniapp小视频项目:滑动播放视频
1、监听视频滑动2、播放和暂停3、增加播放、暂停视频功能4、增加双击点赞5、控制首个视频自动播6、动态渲染视频信息
音视频 javascript 前端 ide 数据