>

find 및 ffmpeg를 사용하여 LAMP 서버에서 비디오를 일괄 트랜스 코딩하기 위해 bash 스크립트를 실행하고 있습니다

dir="/srv/videos"
for OUTPUT in "$(find $dir -iname *.AVI -o -iname *.MOV)"
do
    ffmpeg -i "$OUTPUT" "${OUTPUT%%.*}.mp4"  -hide_banner
done

파일에 공백이 있으면 ffmpeg가 오류를 반환합니다

/srv/videos/file with white spaces.MOV: No such file or directory

공백이없는 파일의 경우 제대로 작동합니다.
따옴표 안에 파일 이름을 인쇄하면 제대로 작동하는 것처럼 보입니다

for OUTPUT in "$(find $dir -iname *.MOV)"; do echo "$OUTPUT";done

반품

/srv/videos/file with white spaces.MOV

오류를 피하기 위해 무엇을 변경해야합니까?

수정 ${OUTPUT %%. *}. mp4에 ""를 추가하면 동일한 오류가 발생하고 확장 대문자가 수정되었습니다 (MOV로 이동)

  • 이전 javascript - div 태그에서 차례로 닫고 여는 방법
  • 다음 sql - SSMS의보기에서 데이터 필드를 볼 수 없습니다