ffmpeg   動画 変! | 60歳を迎えて、思うこと。

60歳を迎えて、思うこと。

いつの間にか、「60」という年月が経ちました。
残り少ないか多いか?わかりませんが。
じじぃ~の「ひとりごと」を細々と続けられれば。。。

ffmpeg   動画 変!

ぶるぶる
ぱぉぱぉ

wave to flac



ffmpeg

を使用しているが

なんと


vob   to   mp4

にも

使えるらしい

さっそく


Microsoft Copilot様

スクリプトを作成して貰った

# ==============================
# ==== Microsoft Copilot
# 欲しいのは **「WAV→FLAC」のスクリプトのように、
親フォルダを指定してサブフォルダ以下を再帰的に探索し、VOBファイルを見つけて MP4(H.264/AAC) に変換する Python スクリプト** ですね。  
# 以下にその形で提示します👇  

## 🐍 VOB → MP4 自動変換スクリプト(再帰探索版)

import os
import subprocess
# =========================================
# 💻 VOB → MP4 自動変換スクリプト
# =========================================
# -----------------------------
# 設定
# -----------------------------
BASE_DIR = r"C:\_CC-DVD-VOB"   # VOBフォルダの親フォルダ
CRF = 20                    # H.264品質 (18~23推奨)
PRESET = "slow"             # エンコード速度 (ultrafast~veryslow)
# AUDIO_BITRATE = "160k"      # AAC音声ビットレート
AUDIO_BITRATE = "192k"      # AAC音声ビットレート
# -----------------------------

def safe_name(name):
    """Windows禁止文字を置換して安全なファイル名に変換"""
    return name.replace(" ", "_")

def convert_vob_to_mp4():
    """親フォルダ以下を再帰的に探索し、VOBをMP4に変換"""
    if not os.path.exists(BASE_DIR):
        print(f"❌ エラー: 指定されたディレクトリが存在しません: {BASE_DIR}")
        return

    for root, dirs, files in os.walk(BASE_DIR):
        vob_files = [f for f in files if f.lower().endswith(".vob")]
        if not vob_files:
            continue

        # 出力フォルダを作成
        dst_folder = os.path.join(root, "MP4")
        os.makedirs(dst_folder, exist_ok=True)

        for file_name in sorted(vob_files):
            src_file = os.path.join(root, file_name)
            dst_file = os.path.join(dst_folder, os.path.splitext(file_name)[0] + ".mp4")

            print(f"🔹 {src_file} → {dst_file} に変換中...")

            # ffmpegコマンド
            cmd = [
                "ffmpeg",
                "-i", src_file,
                "-vf", "yadif",          # デインターレース処理
                "-c:v", "libx264",
                "-crf", str(CRF),
                "-preset", PRESET,
                "-c:a", "aac",
                "-b:a", AUDIO_BITRATE,
                "-movflags", "+faststart",
                "-y",                    # 上書き許可
                dst_file
            ]

            try:
                subprocess.run(cmd, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
            except subprocess.CalledProcessError:
                print(f"❌ 変換エラー: {file_name}")
            except FileNotFoundError:
                print("❌ エラー: ffmpeg が見つかりません。PATHを確認してください。")
                return

        print(f"✅ {root} 内の VOB → MP4 変換完了\n")

if __name__ == "__main__":
    convert_vob_to_mp4()
    print("🎉 すべてのフォルダの変換が完了しました!")

# ==============================
## 🔍 このスクリプトの動作
# - `BASE_DIR` 以下を再帰的に探索。  
# - 各フォルダ内の `.vob` ファイルを順番に変換。  
# - 出力は同じフォルダ内に `MP4` サブフォルダを作成して保存。  
# - 映像は **H.264 (libx264)**、音声は **AAC**。  
# - デインターレース処理(`yadif`)を適用して 480i → 480p に。  

# ## 🎯 まとめ
# - WAV→FLACスクリプトと同じ思想で、VOB→MP4を自動化できます。  
# - 再帰的に探索するので、VIDEO_TSフォルダが複数あっても一括処理可能。  
# - 出力は「元フォルダ/MP4/ファイル名.mp4」として保存されます。  

# 👉 もし「複数のVOBを結合して1つのMP4にしたい」場合は、`concat` を使うように改造できます。結合版も欲しいですか?
# # ==============================

まずますでありんす♪

でも

このスクリプトを

【Gemini】様に 見せて
ツッコミどころありますか?

何カ所か ツッコミをいただいた


Microsoft Copilot様
【Gemini】様
【chatGPT】様


競合させるのも 吉 かな???

じじぃ~