Несколько команд FFmpeg (конвертировать, затем объединить)

Несколько команд FFmpeg (конвертировать, затем объединить)

У меня есть, например, файл 1.mp4, 2.mp4, 3.mp4 и т.д., который нужно конвертировать.

for %i in (*.mp4) do ffmpeg -y -i "%i" -vf scale=1280:720 -crf 17 -c:v libx265 "%~ni.mp4"

Затем я объединяю

ffmpeg -f concat -safe 0 -i xmylist.txt -crf 17 -c copy x1.mp4

Теперь я хотел сделать это за один шаг, но у меня не получилось

for %i in (*.mp4) do ffmpeg -y -i "%i" -vf scale=1280:720 -crf 17 -c:v libx265, -f concat -safe 0 -i xmylist.txt -crf 17 -c copy "%~ni.mp4"

Как правильно объединить эти два вместе? Ошибка, которую я получил, была

Опция vf (установить видеофильтры) не может быть применена к входному url xmylist.txt — вы пытаетесь применить входной параметр к выходному файлу или наоборот. Поместите этот параметр перед файлом, к которому он принадлежит. Ошибка анализа параметров входного файла xmylist.txt. Ошибка открытия входных файлов: Недопустимый аргумент

решение1

Попытался ли ты:

for %i in (*.mp4) do ffmpeg -y -i "%i" -vf scale=1280:720 -crf 17 -c:v libx265 "%~ni.mp4" & ffmpeg -f concat -safe 0 -i xmylist.txt -crf 17 -c copy "%~ni.mp4"

или это в пакете:

for %%i in (*.mp4) DO (

ffmpeg -y -i "%%i" -vf scale=1280:720 -crf 17 -c:v libx265 "%%~ni.mp4"

ffmpeg -f concat -safe 0 -i xmylist.txt -crf 17 -c copy "%%~ni.mp4"

)

хотя, обращая внимание на то, что вы пытаетесь сделать, хорошо ли это делать таким образом, если вы объединяете один и тот же файл, который уже является одним файлом?

поскольку вы не можете использовать более одного набора () в цикле for, вот возможное решение с использованием 3 пакетных файлов:

Вы используете команду «Пуск», потому что если вы просто введете ее туда, она запустит обе партии и мгновенно закроется.

Партия 1:

start "Batch2.bat"

start "Batch3.bat"

Партия 2:

for %%i in (*.mp4) DO ffmpeg -y -i "%%i" -vf scale=1280:720 -crf 17 -c:v libx265 "%%~ni.mp4"

Партия 3:

for %%i in (*.mp4) DO ffmpeg -f concat -safe 0 -i xmylist.txt -crf 17 -c copy "x1.mp4"

Пожалуйста, дайте мне знать:). Я смогу рассмотреть гораздо более сложную cmd дома сегодня вечером, чтобы помочь вам с этим.

Связанный контент