VLC bash транскодирование сценарий вывода в файл



Я запускаю такой скрипт для перекодирования аудио файлов:

#!/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

и пытается перенаправить вывод скрипта в файл вида:

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

но получают только 0 байт файл. Почему?

5
задан Suncatcher
источник

1 ответов

VLC пишет stderr, а не stdout. Это можно исправить в перенаправлении журнала, вызвав скрипт следующим образом:

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

или в Баш определенным образом:

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

вы также можете сделать переадресацию на stdout внутри скрипта, добавив 2>&1 в конце строки с командой VLC в цикле. Тогда вы можете вызвать скрипт так же, как вы пробовали раньше:

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

и получить желаемый результат заготовки.

для дополнительные сведения см., например

0
отвечен Daniel Andersson 2017-05-23 12:41:37
источник

Другие вопросы audio bash linux-mint transcode vlc-media-player