![ffmpeg 이미지 입력은 Windows의 입력 수준에서 홀수 또는 짝수를 사용합니다.](https://rvso.com/image/1592559/ffmpeg%20%EC%9D%B4%EB%AF%B8%EC%A7%80%20%EC%9E%85%EB%A0%A5%EC%9D%80%20Windows%EC%9D%98%20%EC%9E%85%EB%A0%A5%20%EC%88%98%EC%A4%80%EC%97%90%EC%84%9C%20%ED%99%80%EC%88%98%20%EB%98%90%EB%8A%94%20%EC%A7%9D%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A9%EB%8B%88%EB%8B%A4..png)
필터 수준에서 모든 홀수 또는 짝수 이미지를 선택하는 여러 가지 솔루션이 있으며 모두 작동합니다. 하지만 내 경우에는 15360x8640 .jpg 파일을 입력했는데 모든 이미지를 입력하고 필터에서 매초마다 버리는지 아니면 매 두 번째 입력 이미지를 건너뛰는지에 따라 상당한 차이가 발생합니다. 인코딩 속도가 많이 향상됩니다. 내 일반적인 입력은 다음과 같습니다(win10 x64에서 실행되는 5자리 숫자 파일의 경우).
ffmpeg.exe -framerate 60 -i %05d.jpg -vcodec libx264 out.mkv
내가 시도한 것 (에서 가져옴이 스레드, Linux에서만 작동할 수도 있지만 확인할 수는 없습니다):
ffmpeg.exe -framerate 60 -i %04d%[13579%].jpg -vcodec libx264 out.mkv
그리고 glob 옵션 등이 있거나 없는 다양한 변형이 있습니다. 모두 실패합니다. 항상 "%04d%[13579%].jpg: 해당 파일이나 디렉터리가 없습니다." 또는 이와 유사한 결과가 나타납니다.
매 10번째 프레임(예: 00001 00011 00021 등)에 대한 실제 예제입니다.
ffmpeg.exe -framerate 60 -i %04d1.jpg -vcodec libx264 out.mkv
이미 문제를 해결했거나 새로운 아이디어를 얻은 사람이 있나요?
답변1
현재 2단계 솔루션입니다.
목록 만들기:
dir *1.jpg *3.jpg *5.jpg *7.jpg *9.jpg /b /on | c:\prog\unix\sed "s/^/file /" > "!list.txt"
사용 목록:
ffmpeg.exe -r 60 -f concat -safe 0 -i "!list.txt" -vcodec libx264 out.mkv
장점: 입력 수준에서 입력 또는 디코딩 시간으로 다르게 명명된 파일의 복사본을 갖는 데 약 테라바이트가 절약됩니다. 거대한 .jpg 파일을 입력으로 사용하여 필터 수준에서 변환하는 것과 비교하면 거의 1.5배 빠른 속도입니다.
단점: 필터 수준에서 사용하는 것보다 더 많은 RAM이 필요한 것 같은데, 그 이유는 무엇입니까?
누구든지 더 나은 해결책을 얻었습니까?