#動画(.mp4)の上半分を残す
import os
import subprocess

def crop_videos(input_dir, output_dir, new_height_ratio):
    # 出力ディレクトリが存在しない場合は作成する
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    # 入力ディレクトリ内のすべての動画ファイルを取得
    for filename in os.listdir(input_dir):
        # ファイルの絶対パスを取得
        input_path = os.path.join(input_dir, filename)
        
        # ファイルが動画であることを確認
        if os.path.isfile(input_path) and filename.lower().endswith('.mp4'):
            # 出力ファイル名を設定
            output_filename = os.path.splitext(filename)[0] + "_cropped.mp4"
            output_path = os.path.join(output_dir, output_filename)
            
            # FFmpegを使用して動画をクロップ
            command = f'ffmpeg -i "{input_path}" -vf "crop=in_w:in_h*{new_height_ratio}:0:0" "{output_path}"'
            subprocess.call(command, shell=True)
            print(f"Cropped {filename} successfully.")
        else:
            print(f"Skipping {filename}, not a video file.")

if __name__ == "__main__":
    # 入力ディレクトリ、出力ディレクトリ、新しい高さの比率を指定
    input_directory = "tmp-in"
    output_directory = "tmp-out"
    new_height_ratio = 0.5  # 動画の上半分を残す場合の高さの比率

    # 動画のクロップ
    crop_videos(input_directory, output_directory, new_height_ratio)