Script para converter o .wma para o comando .mp3 não encontrado [duplicado]

3

Estou usando um script chamado conv-script que encontrei no AskUbuntu aqui . Parece que isso

#!/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][.].*::" | head -1'
    ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done

Eu executei sudo chmod +x ./conv-script e então eu tento executá-lo com sudo ./conv-script

Depois disso, recebo um erro sudo: ./conv-script: command not found

Não sei ao certo o que estou fazendo de errado, pois vejo o arquivo no diretório de trabalho atual e configurei-o como executável. Uma coisa que eu pensei que poderia ser foi a primeira linha do meu script está errado, mas eu tenho outro script com o mesmo shebang e executa bem. Quando eu uso o shebang no original #!/usr/bin/env bash eu recebo a mesma coisa. Obrigado pela ajuda

EDITAR:

saída de file conv-script

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

saída de 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: -
    
por kalenpw 17.05.2016 / 22:38

1 resposta

1

Como primeiro, certifique-se que você tem ffmpeg e libav-tools instalado, isso você pode fazer digitando terminal ( ctrl + alt + t ):

apt-cache policy ffmpeg libav-tools

Isso deve gerar uma saída como a seguinte, se ambas estiverem instaladas:

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

Se você entrar em uma das linhas que começam com Installed: , uma entrada (none) instale o pacote com sudo apt-get install <package-name> .

Agora, apenas algumas correções para o script em si:

#!/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][.].*::" | head -1)"
    ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done

Você pode chamar isso com ./script.sh /path-to-your-music .

    
por Videonauth 18.05.2016 / 00:33