Search code examples
ffmpegbatch-processing

FFmpeg Batch Merge From Input Folder


I have this command that works perfectly fine:

echo off
mkdir inputs
mkdir outputs
set "InputFolder=%~dp0inputs"
for /R "%InputFolder%" %%i in (*.mp4) do ffmpeg -i "%%i" -c copy "outputs\%%~ni.mkv"

I'm trying to make this command work as well with no success:

echo off
mkdir inputs
mkdir outputs
set "InputFolder=%~dp0inputs"
for /R "%InputFolder%" %%i in (*.mp4) do (ffmpeg -n -i "%%~ni.mp4" -i "%%~ni-eng.srt" -c copy -max_interleave_delta 0 -map 0 -map -0:v:1? -map -0:v:2? -map 1 -fflags +bitexact -map_metadata:g -1 -map_metadata -1 -metadata title="" -metadata comment="" -metadata:s:v title="" -metadata:s:v language="und" -metadata:s:v VENDOR_ID="" -metadata:s:a title="" -metadata:s:a:0 language="eng" -metadata:s:a:0 handler_name="English" -metadata:s:a VENDOR_ID="" -metadata:s:s:0 language="eng" "outputs\%%~ni.mkv")

Any suggestions to make it work?


Solution

  • echo off
    mkdir inputs
    mkdir outputs
    set "InputFolder=%~dp0inputs"
    for /R "%InputFolder%" %%i in (*.mp4) do (ffmpeg -n -i "%%~dpni.mp4" -i "%%~dpni-eng.srt" -c copy -max_interleave_delta 0 -map 0 -map -0:v:1? -map -0:v:2? -map 1 -fflags +bitexact -map_metadata:g -1 -map_metadata -1 -metadata title="" -metadata comment="" -metadata:s:v title="" -metadata:s:v language="und" -metadata:s:v VENDOR_ID="" -metadata:s:a title="" -metadata:s:a:0 language="eng" -metadata:s:a:0 handler_name="English" -metadata:s:a VENDOR_ID="" -metadata:s:s:0 language="eng" "outputs\%%~ni.mkv")