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를 살펴볼 수 있습니다.

관련 정보