예를 들어 변환이 필요한 파일 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를 살펴볼 수 있습니다.