検証環境

  • Windows 11 Pro (24H2)
  • VLC media player 3.0.21
  • FFmpeg 7.1.1
  • バッチファイル
    (2025/7/22)ショートカットにMP4をドラッグドロップする想定に対応

症状

先頭のデータが破損していると思われるMP4をVLCで再生すると、最初の数秒映像が固まる又は真っ黒になる
Windowsに標準で入っているメディア プレーヤーだと再生できる(でも映像や音声が乱れる事も)

VLCの場合、データ破損や間違いがある部分はスキップする傾向がある

解決方法

1.FFmpegのインストール

FFmpegをインストールします
※既にインストールされているならこのインストール手順は不要です
以下のページを参考にしました

私はコマンドプロンプトでwingetコマンドを使い、以下のコマンドでインストールしました

winget install --id=Gyan.FFmpeg -e

インストールされると、他のアプリと同様
Windowsの「インストールされているアプリ」の一覧にFFmpegが表示されます
※アンインストールしたい場合はここからアンインストールできます

2.FFmpegで再エンコードして修復するバッチファイル

FFmpegを使い、以下のバッチファイルで再エンコードして修復します
変換後のファイルは、ファイル名の後ろに「_Fix」という名前を付けて作られます

@echo off
setlocal

:: フルパスの入力ファイルをコマンドライン引数から取得
set "input=%~1"

:: フルパスの出力ファイル名を「元名_Fix.mp4」とする
set "output=%~d1%~p1%~n1_Fix.mp4"

:: ffmpeg 実行(再エンコードあり)
ffmpeg -i "%input%" -c:v libx264 -preset fast -movflags +faststart -c:a aac -b:a 192k -async 1 "%output%"

echo;
echo 完了
echo %output%
timeout /t 5

解決できない事もある

ただしこれでも駄目な物もある
※私の所では1個だけなので、だいぶレアケースな様ですが

先頭の数フレームが飛ばされ、音声は飛ばされずそのままのタイミングで再生してしまうため後半数秒の映像が固まる

この場合の動画の修復方法?
私が知りたい…いろいろやったが全て撃沈したので