import os
import shutil
import subprocess
import re
from moviepy.editor import VideoFileClip
import time
# 定义支持的视频文件扩展名
VIDEO_EXTENSIONS = ('.mp4', '.avi', '.mkv')
def log_info(message):
"""打印信息日志"""
print(f"[INFO] {message}")
def log_warning(message):
"""打印警告日志"""
print(f"[WARNING] {message}")
def log_error(message):
"""打印错误日志"""
print(f"[ERROR] {message}")
def sort_video_by_resolution(video, source_folder, destination_folder):
try:
clip = VideoFileClip(video)
resolution = f"{clip.w}x{clip.h}"
log_info(f"成功获取视频 {video} 的分辨率: {resolution}")
dest_subfolder = os.path.join(destination_folder, resolution)
create_output_folder_if_not_exists(dest_subfolder)
dest_file = os.path.join(dest_subfolder, os.path.basename(video))
# 添加延迟
# time.sleep(2)
shutil.copy2(video, dest_file) # 使用shutil.copy2代替shutil.move
log_info(f"已将视频 {video} 复制到 {dest_subfolder}")
except Exception as e:
log_error(f"处理 {video} 时发生错误: {e}")
def create_output_folder_if_not_exists(folder_path):
"""如果输出文件夹不存在,则创建它"""
if not os.path.exists(folder_path):
os.makedirs(folder_path)
log_info(f"已创建输出文件夹: {folder_path}")
def main():
log_info("程序开始执行...")
source_folder = "D:/2024.4.6"
destination_folder = "sorted_videos"
create_output_folder_if_not_exists(destination_folder)
video_files = [os.path.join(source_folder, f) for f in os.listdir(source_folder) if any(f.endswith(ext) for ext in VIDEO_EXTENSIONS)]
log_info(f"共找到 {len(video_files)} 个视频文件")
for video in video_files:
sort_video_by_resolution(video, source_folder, destination_folder)
log_info("程序执行完毕。")
if __name__ == "__main__":
main()
将不同视频的分辨率分类放入不同文件夹
最新推荐文章于 2024-06-17 20:43:58 发布