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 байт файл. Почему?

30
задан Suncatcher
16.03.2023 6:07 Количество просмотров материала 2655
Распечатать страницу

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 2023-03-17 13:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх