程式碼
import subprocess import os def get_all_mp4_files(directory): """獲取指定資料夾下所有的MP4檔案""" mp4_files = [] # 遍歷指定目錄及其子目錄中的檔案 for root, dirs, files in os.walk(directory): for file in files: # 檢查副檔名是否為.mp4 if file.lower().endswith('.mp4'): # 將檔案的完整路徑新增到列表中 mp4_files.append(os.path.join(root, file)) return mp4_files def ffmpeg_crop(input_path, output_path, width, height, x, y): # 構建ffmpeg命令 cmd = [ 'ffmpeg', '-i', input_path, '-filter:v', f'crop={width}:{height}:{x}:{y}', # 注意這裡的引數順序 '-c:a', 'copy', # 確保-c:a後面緊跟的是copy,而不是output_path output_path ] # 執行ffmpeg命令 subprocess.run(cmd, check=True) # 要裁剪的影片檔案路徑 genmulu = r"F:\陳惟\blender\blender材質篇\yuan" video_list = get_all_mp4_files(directory=genmulu) for one in video_list: x1 = 240 # 裁剪區域左上角的x座標 y1 = 0 # 裁剪區域左上角的y座標 x2 = 1680 # 裁剪區域右下角的x座標 y2 = 1080 # 裁剪區域右下角的y座標 # 要裁剪的影片檔案路徑 video_path = one # 裁剪後的影片檔案路徑 output_path = r'%s.caiqiehou.mp4'% str(one) # 定義裁剪區域的寬度和高度 crop_width = x2 - x1 # 裁剪區域的寬度 crop_height = y2 - y1 # 裁剪區域的高度 # 使用示例 ffmpeg_crop(video_path, output_path, crop_width, crop_height, x1, y1)