저는 FFmpeg 및 프로그래밍 분야의 초보자이므로 질문이 너무 어리석을 수 있습니다. 비디오가 있고 이를 작은 조각으로 자르고 각각 렌더링하고 싶기 때문에 FOR 루프를 사용하려고 합니다. :
FOR /l %x IN (0,40,1000) DO ffmpeg -i sample.avi -filter:v "crop=20:20:x:x" outx.avi; done
내가 얻은 것은 다음과 같습니다: [NULL @ 0000000002624220] 'outx.avi'에 적합한 출력 형식을 찾을 수 없습니다. outx.avi;: 잘못된 인수
누구든지 도와줄 수 있나요?
답변1
분명히 Windows 배치 파일을 사용하고 있습니다. 여기서 루프에는 Bash 루프처럼 FOR
후행이 없습니다 .; done
Windows에서:
FOR ... IN ... DO ...
배시에서:
for ... in ...; do ...; done
따라서 쉘에 적합한 구문을 사용하는지 확인하십시오.
단순히 지정하면 out.avi
ffmpeg가 각각 비디오 및 오디오 코덱으로 MPEG-4 및 MP3를 선택하게 되며 품질이 상당히 나쁠 수 있습니다. 이상적으로는 비디오 및 오디오 인코더를 지정하십시오. 예:
ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4
읽기H.264 인코딩 가이드더 많은 정보를 위해서.