비디오를 mov에서 mp4 (및 다른 비틀기)로 변환하는 동안 큰 비디오 아카이브 (하위 폴더에 앉아있는)를 병렬 폴더 구조로 복사하려고합니다. 이것은 명령입니다 :
for f in Users/me/VIDEOARCHIVE/*/*.mov; do ffmpeg -i "$f" "Users/me/CONVERTED/${f%.mov}.mp4"; done
그러나 출력 파일에 "그런 파일이나 디렉토리가 없습니다"라는 메시지가 나타납니다. 이 사이트에는 비슷한 질문이 많이 있지만 그 중 어느 것도 내 시나리오에 도움이되지 않았습니다.
또한 빈 폴더 구조를 미리 만들어서 .mp4 파일 만 만들면되지만 여전히 같은 오류가 발생합니다.
(빈) 폴더 구조가 미리 만들어져 있으면 작동합니다. 그러나 누락 된 폴더가 있으면 "그러한 파일이나 디렉토리가 없습니다".
파일을 폴더에 넣을 수 있도록 필요한 경우 상위 폴더를 작성하도록 지시하는 방법이 있습니까?
ffmpeg는 긴 파일 이름이나 경로 또는 공백이있는 파일에 문제가있을 수 있습니다. 더 짧은 것을 시도하십시오.
—
DrMoishe Pippik
@KamilMaciorowski 감사합니다. 병렬 폴더 구조를 잘못된 위치에 배치했습니다 ... 내 나쁜 : P 그러나
—
jan
ffmpeg
폴더가 필요한 경우 왜 폴더를 만들지 않는지 여전히 궁금 합니다.
ffmpeg
출력 할 때 디렉토리를 만들지 않는 것 같습니다 . 당신에 do
당신의 전에 루프를 ffmpeg
호출하고, 출력 파일을 포함 할 디렉토리의 경로 얻기 mkdir -p
를. 선택적으로 작성하기 전에 존재 여부를 확인하십시오.
set -x
미리 또는echo "Users/me/CONVERTED/${f%.mov}.mp4"
루프 내부에서 디버깅을 시도 했습니까 ? 이것은 당신에게 힌트를 줄 것입니다.