여러 비디오 파일을 여러 GIF로 변환할 수 있는 명령은 무엇입니까?
다음 명령을 사용하여 1개의 비디오를 GIF로 변환했습니다.
ffmpeg -i input.flv -vf scale=320:-1 output.gif
나는 bash 스크립트나 루프가 있는 일부 명령이 필요하다고 가정합니다.
이 스레드내 질문과 모호하게 관련되어 있습니다.
답변1
다음 명령을 사용할 수 있습니다
for f in ./*.flv; do
ffmpeg -i "$f" -vf scale=320:-1 "${f%.*}.gif"
done
이는 .로 끝나는 현재 디렉토리의 모든 파일을 반복하고 .flv
처리한 후 확장자를 .gif
.
이것이 제대로 작동하려면 파일 이름에 공백이 포함되어서는 안 됩니다.
또는 GNU 시스템에서 다음을 사용할 수 있습니다.
find . -maxdepth 1 -name "*.flv" -print0 |
sed 's/\.flv\x00/\x00/g' |
xargs -r0 -I FILENAME ffmpeg -i FILENAME.flv -vf scale=320:-1 FILENAME.gif
.flv
그러면 현재 디렉터리에서 다음으로 끝나는 모든 파일(숨겨진 파일 포함)을 찾고 \0
목록을 -로 구분된 문자열로 표준 출력에 인쇄합니다. 그런 다음 이 문자열은 필터링되어 sed
확장자를 제거한 다음 xargs
명령을 실행하는 문자열 로 전달되고 목록의 실제 파일 이름으로 ffmpeg -i FILENAME.flv -vf scale=320:-1 FILENAME.gif
대체됩니다 .FILENAME
현재 디렉터리와 모든 하위 디렉터리(및 해당 하위 디렉터리 등)의 모든 파일을 변환하려면 -maxdepth 1
명령에서 해당 부분을 제거하면 됩니다.