Python3 视频剪辑工具:支持单个视频或目录输入并检查语法错误

本代码实现了一个简单的视频剪辑工具,支持用户输入单个视频文件或包含视频文件的目录,并检查语法错误,可以方便地对视频进行剪辑。

代码如下:

import os
import subprocess

# 定义输入输出文件路径
input_path = ''
output_path = ''

# 获取视频列表
def get_video_list(path):
    video_list = []
    if os.path.isfile(path) and path.endswith('.mp4'):
        video_list.append(path)
    elif os.path.isdir(path):
        for file_name in os.listdir(path):
            if file_name.endswith('.mp4'):
                video_list.append(os.path.join(path, file_name))
    return video_list

# 按照最后修改时间排序
def sort_video_list(video_list):
    video_list.sort(key=lambda x: os.path.getmtime(x), reverse=True)
    return video_list

# 剪辑视频
def clip_video(video_path, start_time, end_time):
    output_file_name = os.path.splitext(os.path.basename(video_path))[0] + '_0.mp4'
    output_file_path = os.path.join(output_path, output_file_name)
    cmd = 'ffmpeg -i \"{}\" -ss {} -to {} -c copy \"{}\"'.format(video_path, start_time, end_time, output_file_path)
    subprocess.call(cmd, shell=True)

# 主程序
if __name__ == '__main__':
    # 输入视频路径
    input_path = input('请输入视频路径:')

    # 获取视频列表并排序
    video_list = get_video_list(input_path)
    if not video_list:
        print('输入的路径不是一个视频文件或者包含视频文件的目录!')
    else:
        video_list = sort_video_list(video_list)

        # 显示视频列表
        for i, video_name in enumerate(video_list):
            print('{}: {}'.format(i+1, os.path.basename(video_name)))

        # 选择要剪辑的视频
        selected_video_index = int(input('请选择要剪辑的视频序号:'))

        # 输入开始结束时间
        start_time = input('请输入开始时间(格式:00:00:00):')
        end_time = input('请输入结束时间(格式:00:00:00):')

        # 剪辑视频
        selected_video_path = video_list[selected_video_index-1]
        clip_video(selected_video_path, start_time, end_time)

代码说明:

  1. get_video_list(path) 函数:

    • 接受一个路径参数 path,用于获取该路径下的所有视频文件。
    • 判断路径是否为文件,如果是文件且以 .mp4 结尾,则将该路径加入视频列表。
    • 判断路径是否为目录,如果是目录,则遍历目录下的所有文件,如果文件以 .mp4 结尾,则将文件路径加入视频列表。
  2. sort_video_list(video_list) 函数:

    • 接受一个视频列表参数 video_list,按照视频最后修改时间进行排序。
  3. clip_video(video_path, start_time, end_time) 函数:

    • 接受视频路径 video_path、开始时间 start_time 和结束时间 end_time 三个参数。
    • 使用 ffmpeg 命令进行视频剪辑,并将剪辑后的视频保存到 output_path 目录下。
  4. 主程序:

    • 用户输入视频路径。
    • 获取视频列表并排序。
    • 显示视频列表,用户选择要剪辑的视频。
    • 用户输入开始时间和结束时间。
    • 调用 clip_video 函数进行视频剪辑。

使用方法:

  1. 将代码保存为 clip_video.py 文件。
  2. 运行 python clip_video.py
  3. 输入视频路径或包含视频文件的目录。
  4. 选择要剪辑的视频。
  5. 输入开始时间和结束时间(格式:00:00:00)。
  6. 等待剪辑完成。

注意:

  • 该代码需要安装 ffmpeg 命令行工具,请先确保已安装。
  • 视频剪辑后的文件名会自动添加 '_0.mp4' 后缀。
  • 您可以根据需要修改代码中的 output_path 变量来指定剪辑后的视频保存路径。
  • 代码中的 -c copy 选项表示使用复制的方式进行剪辑,可以尽量保持视频质量。

总结:

本代码实现了一个功能简单、易于使用的视频剪辑工具,可以帮助用户方便地对视频进行剪辑。用户可以根据自己的需求对代码进行修改和扩展。

Python3 视频剪辑工具:支持单个视频或目录输入并检查语法错误

原文地址: https://www.cveoy.top/t/topic/nzDS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录