ffmpeg를 사용한 재귀 변환에는 find 명령을 사용하십시오.

ffmpeg를 사용한 재귀 변환에는 find 명령을 사용하십시오.

다음 스크립트를 어떻게 사용합니까?재귀적으로포함된 디렉토리를 (1 프레임만) .mp4로 변환합니다..png

지금은 디렉토리만 변환합니다. 재귀적이지 않습니다.

for i in *.mp4
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i "$i" -r 0.0033 -vf scale=-1:1024 -vcodec png "${name}.png"
done

답변1

find . -type f -name '*.mp4' -exec sh -c '
    name="${1%.*}"
    echo "$name"
    ffmpeg -i "$1" -r 0.0033 -vf scale=-1:1024 -vcodec png "${name}.png"
' find-sh {} \;

노트:

  • 원본 코드에는 name=`echo "$i" | cut -d'.' -f1`품질이 다소 낮은 조각이 있습니다. 첫 번째 점에서 잘립니다. 잘못된 것 같습니다. 이것이 유일한 문제는 아니지만 자세히 설명하지는 않겠습니다. 확장 프로그램을 제거하려는 경우 올바른 방법은 입니다 name="${i%.*}".
  • *.mp4때문에 인용된다이것.
  • 정신이것.
  • find-sh설명된다여기.
  • find하위 디렉터리로 내려오지만 기본적으로 기호 링크를 따르지 않습니다. 모든 "하위 디렉터리"가 .디렉터리에 대한 링크인 경우 도구가 일반적으로 내려오지 않는다고 잘못 생각할 수 있습니다. man 1 find, 옵션을 확인하세요 -L.

관련 정보