VLC bash สคริปต์การแปลงรหัสเอาต์พุตเป็นไฟล์


0


ฉันใช้สคริปต์ดังกล่าวเพื่อแปลงไฟล์เสียงของฉัน:

#!/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 ไบต์เท่านั้น ทำไม?

คำตอบ:


0

VLC จะเขียนถึงและไม่ได้stderr stdoutคุณสามารถแก้ไขสิ่งนี้ได้ในการเปลี่ยนเส้นทางบันทึกของคุณโดยเรียกสคริปต์เช่น:

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

หรือในวิธีเฉพาะ Bash:

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

นอกจากนี้คุณยังสามารถทำการเปลี่ยนเส้นทางไปยังstdoutภายในสคริปต์โดยเพิ่ม2>&1ที่ท้ายบรรทัดด้วยคำสั่ง VLC ภายในลูป จากนั้นคุณสามารถเรียกใช้สคริปต์เช่นเดียวกับที่คุณลองมาก่อน

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

และรับผลการบันทึกที่ต้องการโดยตรง

สำหรับข้อมูลเพิ่มเติมดูเช่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.