昨日書いた記事のバッチファイルが中間ファイル2回も作ってて、ちょっとイケてないので少しだけ修正しました。
MKVコンテナに変換後のデータから生データを抽出して中間ファイルを作成してましたが、
この処理もffmpegにやってもらい中間ファイル作成は1回に減らしました。

@echo off
setlocal enabledelayedexpansion

:: --------------------------------------------------------
:: Bandicam AV1-MP4 ヘッダー修復バッチ
:: mkvmergeで構造を整え、FFmpegで不正メタデータを破棄してMP4化します
:: --------------------------------------------------------

:loop
if "%~1" == "" goto end

echo ======================================================
echo 処理中: %~nx1
echo ======================================================

set "IN=%~1"
set "TMP=%~dp1_temp_%~n1.mkv"
set "OUT=%~dp1fixed_%~n1.mp4"

:: Step 1: MKVへ変換して構造上のエラーを隔離
echo [1/2] 構造を一時修復中 (MKV)...
mkvmerge -q -o "!TMP!" "!IN!"
if %errorlevel% neq 0 (
    echo [失敗] mkvmergeでエラーが発生しました。
    goto next
)

:: Step 2: 不正なextradataをリセットしつつMP4へ
:: extract_extradataフィルタで古いヘッダー情報を物理的に除去します
echo [2/2] 不正メタデータを破棄してMP4を構築中...
ffmpeg -y -loglevel fatal -i "!TMP!" -i "!IN!" -map 0:v -map 1:a? -c:v copy -bsf:v extract_extradata -c:a copy -movflags +faststart "!OUT!"

if %errorlevel% equ 0 (
    echo [成功] 完了しました: !OUT!
    if exist "!TMP!" del /f /q "!TMP!"
) else (
    echo [失敗] FFmpegでの再構築に失敗しました。
)

:next
echo.
shift
goto loop

:end
echo すべての処理が終了しました。
pause

Bandicam社にサポートリクエスト投げたので、そのうち直してくれるのではないかと思いたいですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です