У меня есть папка c:\myfolder\ содержащая переменное количество файлов mp4 с тем же разрешением / кодеком.

Теперь мне нужен файл .bat, чтобы объединить все видео в одно.

например, c:\myfolder\1.mp4, c:\myfolder\2.mp4, c:\myfolder\3.mp4 в c:\myfolder\output.mp4

Я нашел способ сделать это, сначала создав файл .txt который содержит все входные видео, и сделать еще один шаг.

ffmpeg.exe -f concat -i mylist.txt -c copy output.mp4

Вопрос: есть ли способ сделать это за один шаг?

1 ответ1

0

Поскольку у меня не установлен ffmpeg на этом компьютере, не проверено:

:: Q:\Test\2018\06\20\SU_1332169.cmd
@Echo off
Set "BaseDir=c:\myfolder"
Set "OutMp4=%BaseDir%\Output.mp4"
Set "FfmpegCue=%Temp%\Ffmpeg.Cue"

:: gather files but exclude evt. present output file
( For /f "Delims=" %%A in (
  'Dir /B/S/A-D/ON "%BaseDir%\*.mp4" 2^>NUL ^|findstr /VLI "%OutMp4%" '
  ) Do Echo=%%A
) > "%FfmpegCue%"

:: Just to show what's in the cue file:
more "%FfmpegCue%"
Pause

:: Do the concat
ffmpeg.exe -f concat -i "%FfmpegCue%" -c copy "%OutMp4%" && (
  Echo Successfully created "%OutMp4%"
  choice /M "Delete %FfmegCue% "
  If not Errorlevel 2 Del "%FfmegCue%"
) || (echo ffmpeg exited with error)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .