Пакетное объединение видео FFmpeg в папке

1055
Dr. Snail

У меня есть папка 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 

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

0
Пакетный файл может создать для вас файл `.cue`, но я вижу проблему с сортировкой, если существует более 9 файлов, поскольку 10.mp4 будет следовать за 1.mp4, если вы не используете подсчет` for / l` для построения списка , LotPings 6 лет назад 0
@LotPings нет проблем с сортировкой, так как файлы имеют сортируемые метки времени - не могли бы вы написать свой код в ответ? Dr. Snail 6 лет назад 0

1 ответ на вопрос

0
LotPings

Поскольку у меня не установлен 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) 

Похожие вопросы