Como faço para converter um lote de avis em mp4s?

1

Eu tenho vários arquivos avi no diretório que eu gostaria de converter para mp4s usando avconv. Agora eu sei o procedimento básico de como fazer isso, manualmente, para cada avi, ou seja, (onde $@ são as variáveis que mudam com cada novo avi):

avconv -i [email protected] -c copy [email protected]

mas eu queria saber se alguém sabe como escrever um script bash para fazer isso automaticamente. Eu tentei uma versão modificada da resposta fornecida ao meu otimizando a pergunta PNG a saber:

for k in 'find . -name "*.avi"'
do
   avconv -i "$k" -c copy "$k.mp4"
done

mas como k está no formato ./filename avconv não conseguiu entendê-lo quando dado como entrada. Outro problema é que, embora eu usei aspas, porque muitos dos meus avis têm espaços em seus nomes de arquivos, por alguma razão, o avconv estava sendo executado para cada palavra separada por espaços no nome do arquivo.

    
por Brenton Horne 22.09.2015 / 16:49

1 resposta

0

Isso deve fazer o loop de todos os arquivos .avi e convertê-los (não testados):

printf '%s
printf '%s%pre%' *.avi | xargs -0 -I {} -P 1 avconv -i "{}" -c copy "{}".mp4
' *.avi | xargs -0 -I {} -P 1 avconv -i "{}" -c copy "{}".mp4

Você pode alterar -P 1 para, por exemplo -P 8 para converter 8 arquivos em paralelo.

    
por 22.09.2015 / 17:14