MEncoder를 사용하여 현재 디렉토리에 있는 모든 png 파일을 날짜 수정 순서대로 avi 파일로 인코딩하는 방법은 무엇입니까?

MEncoder를 사용하여 현재 디렉토리에 있는 모든 png 파일을 날짜 수정 순서대로 avi 파일로 인코딩하는 방법은 무엇입니까?

따라서 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 변환 등을 통해 효율성을 높일 수 있습니다.

관련 정보