"""拖曳影片檔案或資料夾到這個腳本(或用配套的 拖曳轉檔.bat),轉成 GIF, 存到本資料夾底下的 output/(不進 git),不動原始影片。 也可以在終端機用:python convert_video.py [ ...] 依賴見 video_utils.py 開頭說明(imageio-ffmpeg)。 """ import sys from pathlib import Path from video_utils import convert_to_gif OUTPUT_DIR = Path(__file__).resolve().parent / "output" VIDEO_EXTS = {".mp4", ".mov", ".avi", ".mkv", ".webm"} def find_video_files(paths): files = [] for p in paths: p = Path(p) if p.is_dir(): files.extend( sorted(f for f in p.rglob("*") if f.suffix.lower() in VIDEO_EXTS) ) elif p.is_file() and p.suffix.lower() in VIDEO_EXTS: files.append(p) return files def main() -> None: args = sys.argv[1:] if not args: print("用法:把影片檔案或資料夾拖到這個腳本上(或用 拖曳轉檔.bat)") input("按 Enter 結束...") return files = find_video_files(args) if not files: print("沒有找到影片檔案。") input("按 Enter 結束...") return print(f"找到 {len(files)} 個影片檔案,開始轉換...\n") for src in files: try: out = convert_to_gif(src, OUTPUT_DIR) print(f" OK {src.name} -> {out.name}") except Exception as e: print(f" 失敗 {src.name}: {e}") print(f"\n完成。原始影片沒有被動到,轉出的 GIF 在 {OUTPUT_DIR}") input("按 Enter 結束...") if __name__ == "__main__": main()