.wma를 .mp3 명령으로 변환하는 스크립트를 찾을 수 없습니다.

.wma를 .mp3 명령으로 변환하는 스크립트를 찾을 수 없습니다.

conv-scriptAskUbuntu에서 찾은 스크립트를 사용하고 있습니다.여기. 다음과 같습니다

#!/bin/sh

readarray -t files < wma-files.txt

for file in "${files[@]}"; do
    out=${file%.wma}.mp3
    probe=`avprobe -show_streams "$file" 2>/dev/null`
    rate=`echo "$probe" | grep "^bit_rate" | sed "s:.*=\(.*\)[0-9][0-9][0-9][.].*:\1:" | head -1`
    ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done

나는 달렸고 sudo chmod +x ./conv-script 다음으로 그것을 실행하려고 시도했습니다.sudo ./conv-script

그렇게 한 후에 오류가 발생합니다.sudo: ./conv-script: command not found

현재 작업 디렉토리에서 파일을 볼 수 있고 실행 가능하도록 설정했기 때문에 내가 뭘 잘못하고 있는지 잘 모르겠습니다. 내가 생각한 것 중 하나는 내 스크립트의 첫 번째 줄이 잘못되었다는 것입니다. 그러나 동일한 Shebang을 가진 다른 스크립트가 있고 잘 실행됩니다. 원본에서 shebang을 사용하면 #!/usr/bin/env bash같은 결과가 나타납니다. 도와 주셔서 감사합니다

편집하다:

출력file conv-script

conv-script: a /usr/bin/env bash script, ASCII text executable

출력stat conv-script

  File: ‘conv-script’
  Size: 325             Blocks: 64         IO Block: 32768  regular file
Device: 821h/2081d      Inode: 82004       Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/ kalenpw)   Gid: ( 1000/ kalenpw)
Access: 2016-05-17 16:40:43.000000000 -0600
Modify: 2016-05-17 14:33:31.000000000 -0600
Change: 2016-05-17 14:33:32.000000000 -0600
 Birth: -

답변1

ffmpeg먼저 설치되어 있는지 확인하고 터미널( + + ) libav-tools에 입력하여 이를 수행할 수 있습니다 .ctrlaltt

apt-cache policy ffmpeg libav-tools

둘 다 설치된 경우 다음과 같은 출력이 표시됩니다.

ffmpeg:
  Installed: 7:2.8.6-1ubuntu2
  Candidate: 7:2.8.6-1ubuntu2
  Version table:
 *** 7:2.8.6-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status
libav-tools:
  Installed: 7:2.8.6-1ubuntu2
  Candidate: 7:2.8.6-1ubuntu2
  Version table:
 *** 7:2.8.6-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages
        100 /var/lib/dpkg/status

Installed:항목 (none)으로 시작하는 줄 중 하나에 들어가면 sudo apt-get install <package-name>.

이제 스크립트 자체에 대한 몇 가지 수정 사항만 수정되었습니다.

#!/bin/bash

cd "$1"
find . -type f | grep wma$ > wma-files.txt

readarray -t files < wma-files.txt

for file in "${files[@]}"; do
    out=${file%.wma}.mp3
    probe="$(avprobe -show_streams "$file" 2>/dev/null)"
    rate="$(echo "$probe" | grep "^bit_rate" | sed "s:.*=\(.*\)[0-9][0-9][0-9][.].*:\1:" | head -1)"
    ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done

그런 다음 를 사용하여 이를 호출할 수 있습니다 ./script.sh /path-to-your-music.

관련 정보