Python---简易编程解决工作问题

近期在做一些很简单但是很繁琐的工作,就考虑使用Python来进行开发一些工具。

首先是下载安装Python

https://www.python.org/downloads/release/python-3140/

检查是否安装成功:

python --version

image

检测pip是否正常:

pip --version

image

实践应用:

1、视频添加片头片尾

安装依赖:

pip install moviepy
pip install moviepy --upgrade
pip install imageio-ffmpeg

代码实现:

from moviepy.editor import VideoFileClip, concatenate_videoclips

# 读取三段视频
片头 = VideoFileClip("piantou.mp4")
正片 = VideoFileClip("video.mp4")
片尾 = VideoFileClip("pianwei.mp4")
# 拼接并导出
最终视频 = concatenate_videoclips([片头, 正片, 片尾])
最终视频.write_videofile("带片头片尾的视频.mp4")

2、去掉视频片头片尾

from moviepy.editor import VideoFileClip

# 读取视频,裁剪掉前3秒(片头)和后2秒(片尾)
视频 = VideoFileClip("piantou.mp4").subclip(3, -2)  # subclip(开始秒, 结束秒),-2代表倒数第2秒
视频.write_videofile("piantou_cut.mp4")
视频.close()

对比裁剪后的视频:分辨率没有变化,码率增加了:

image

基础版:

from moviepy.editor import VideoFileClip

# 读取视频:裁剪掉前5秒(片头)、保留到倒数3秒(去除片尾)
# subclip(片头时长, -片尾时长),只去片头写 subclip(5),只去片尾写 subclip(0, -3)
video = VideoFileClip("原视频.mp4").subclip(5, -3)  # 示例:去前5秒片头,去后3秒片尾

# 导出裁剪后视频(指定编码保证兼容性)
video.write_videofile("裁剪后视频.mp4", codec="libx264", audio_codec="aac")

# 释放内存
video.close()
print("裁剪完成!")

批量操作:

from moviepy.editor import VideoFileClip
import os

# --------------- 可修改参数 ---------------
片头时长 = 5    # 要去除的片头秒数
片尾时长 = 3    # 要去除的片尾秒数
文件夹路径 = "." # 视频所在文件夹("." 代表当前文件夹)
# ------------------------------------------

def 批量裁剪视频():
    处理计数 = 0
    # 遍历文件夹所有视频
    for 文件名 in os.listdir(文件夹路径):
        # 只处理MP4文件,跳过已裁剪的(避免重复)
        if 文件名.endswith(".mp4") and "_已裁剪" not in 文件名:
            try:
                print(f"正在处理:{文件名}")
                # 读取视频并裁剪
                原视频 = VideoFileClip(os.path.join(文件夹路径, 文件名))
                # 计算裁剪范围:从“片头时长”开始,到“总时长-片尾时长”结束
                裁剪后视频 = 原视频.subclip(片头时长, 原视频.duration - 片尾时长)
                
                # 导出新视频(加后缀区分原文件)
                新文件名 = f"{文件名[:-4]}_已裁剪.mp4"
                裁剪后视频.write_videofile(
                    os.path.join(文件夹路径, 新文件名),
                    codec="libx264", audio_codec="aac"
                )
                
                处理计数 += 1
                print(f"处理完成:{新文件名}\n")
                
                # 释放内存
                原视频.close()
                裁剪后视频.close()
            except Exception as e:
                print(f"处理{文件名}失败:{e}\n")
    
    print(f"批量处理结束!共处理{处理计数}个视频")
    input("按回车退出...")

if __name__ == "__main__":
    批量裁剪视频()

打完收工!

posted @ 2025-10-23 21:24  帅到要去报警  阅读(5)  评论(0)    收藏  举报