여러 비디오를 여러 GIF로 변환

여러 비디오를 여러 GIF로 변환

여러 비디오 파일을 여러 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명령에서 해당 부분을 제거하면 됩니다.

관련 정보