따라서 MEncoder가 모든 png 파일을 가장 이른 수정 날짜부터 마지막 수정 날짜까지 avi 파일로 인코딩하고 각 프레임의 간격을 3초로 설정하고 싶습니다.
답변1
mf:// 구문은 파일 목록을 전달할 수 있음을 의미하므로 이 방법으로 날짜별로 정렬된 파일 목록을 전달할 수 있습니다.
파일을 정렬하려면 이름이 충분히 간단하고 모두 디렉토리에 있으면 ls -t
다음과 같이 수행됩니다 ls -t *.png > file-list
.
그런 다음 mencoder mf://@file-list -mf fps=1/3:type=png …
이 작업을 수행해야 합니다( mplayer
대신 mencoder를 사용하면 쉽게 확인할 수 있습니다).
더 복잡한 콘텐츠(예: 하위 디렉터리)를 처리해야 하는 경우 find와 perl을 함께 사용할 수 있습니다. 나는 mencoder
이것이 처리될 수 있을지 의심스럽기 때문에 파일 이름에 개행 문자가 들어갈 가능성을 무시했습니다 .
find -type f -name '*.png' | perl -E 'chomp(@a = <>); @a = sort { -M $a <=> -M $b } @a; $,="\n"; say @a'
이는 특별히 효율적이지는 않지만(필요한 것보다 더 많이 호출됨 stat
) 파일이 많지 않은 한 충분합니다. 수천 개의 파일이 필요한 경우 Orcish Maneuver, Schwartzian 변환 등을 통해 효율성을 높일 수 있습니다.