saída de script transcodificação VLC bash para arquivo

0


Estou executando esse script para transcodificar meus arquivos de áudio:

#!/bin/bash
acodec="vorb"  
arate="256" 
ext="ogg" 
vlc="/usr/bin/vlc" 
fmt="mp3" 

for a in *$fmt; do 
$vlc -I dummy -vvv "$a" --sout "#transcode{acodec=$acodec,ab=$arate,channels=2}:duplicate{dst=std{access=file,mux=ogg,dst=\"$a.$ext\"}" vlc://quit 
done

E tentando redirecionar essa saída de script para um arquivo como este:

./transcode.sh > /media/sf_Downloads/transcode.log

Mas receba apenas 0 arquivos de byte. Por quê?

    
por Suncatcher 11.03.2014 / 19:06

1 resposta

0

O VLC está gravando para stderr e não stdout . Você pode consertar isso no seu redirecionamento de log chamando o script como:

./transcode.sh > /media/sf_Downloads/transcode.log 2>&1

ou no modo específico do Bash:

./transcode.sh &> /media/sf_Downloads/transcode.log

Você também pode fazer o redirecionamento para stdout dentro do script adicionando 2>&1 no final da linha com o comando VLC dentro do loop. Então você pode chamar o script exatamente como você tentou antes:

./transcode.sh > /media/sf_Downloads/transcode.log

e obtenha o resultado do registro desejado diretamente.

Para mais informações, consulte, por exemplo,

por 12.03.2014 / 13:25