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

@echo off
setlocal enabledelayedexpansion</p>

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

<p>:loop
if &quot;%~1&quot; == &quot;&quot; goto end</p>

<p>echo ======================================================
echo 処理中: %~nx1
echo ======================================================</p>

<p>set &quot;IN=%~1&quot;
set &quot;TMP=%~dp1_temp_%~n1.mkv&quot;
set &quot;OUT=%~dp1fixed_%~n1.mp4&quot;</p>

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

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

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

<p>:next
echo.
shift
goto loop</p>

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

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

コメントを残す

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