Ação personalizada chamando avconv no Thunar e no Dolphin

1

Eu gosto de usar um comando como

avconv -i %f -map 0:1 -c:a copy %f.m4a

nas ações personalizadas do Thunar ou do Dolphin para extrair o áudio do mp4 e flv sem transcodificação.

Mas isso gerará um nome que contém a extensão do arquivo de entrada:

De um vídeo "name.mp4", recebo um arquivo de áudio chamado "name.mp4.m4a".

Como ajustar o comando para que a saída seja "name.m4a"?

    
por cipricus 14.09.2015 / 18:57

1 resposta

1

Você pode usar os recursos de manipulação de strings do bash, executando o comando por meio do bash:

bash -c 'avconv -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f

(Eu estou supondo que o seu gerenciador de arquivos irá passar um nome de arquivo como foo bar.mp4 como um único argumento.)

Observe que bash tem ${var%%suffix} e ${var%suffix} - a primeira é gulosa ( foo.bar.mp4 se tornará foo com a primeira e foo.bar com a segunda). Neste caso, pretendo usar o último e assumir que %% será substituído por % pelo gerenciador de arquivos, pois % aparentemente é um caractere especial aqui.

    
por 14.09.2015 / 19:23