모든 ALAC 파일을 찾아 mp3/opus/aac로 변환

모든 ALAC 파일을 찾아 mp3/opus/aac로 변환

디렉터리의 모든 alac 파일을 다른 형식으로 재귀적으로 변환하는 방법을 찾고 있습니다.

문제: alac 및 aac는 접미사 m4a를 사용하므로 find -name "*.m4a"작동하지 않습니다.

답변1

m4a 파일에서 코덱을 감지할 수 있는 도구가 필요합니다. 그러한 도구 중 하나는 debian 기반 Linux의 libav-tools 패키지에서 사용할 수 있는 avprobe입니다(저는 Ubuntu 14.04를 사용합니다).

그런 다음 다음을 수행할 수 있습니다(파일 이름에 개행 문자가 없는 경우..).

find . -name \*.m4a | while read file; do avprobe "$file" 2>&1 |grep -q 'Audio: alac' && echo "$file"; done

분명히 echo "$file"변환 명령을 대체합니다.

그러한 도구를 설치할 수 없는 경우 를 사용하여 추정할 수 있습니다 grep -q Halac "$file" && grep -q '$alac' "$file". 테스트한 여러 Apple 무손실 파일에는 이 두 문자열이 포함되어 있지만 실제 Apple 무손실 코덱이 아닌 파일과 작은 확률로 일치할 수 있으며 Apple 무손실 파일에 이러한 문자열이 포함되어 있는지 확실하지 않습니다. 문제가 없다면 위와 같습니다.

find . -name \*.m4a | while read file; do grep -q Halac "$file" && grep -q '$alac' "$file" && echo "$file"; done

관련 정보