Score:1

ฉันจะไพพ์เอาต์พุตของ FFMPEG 2 ระดับของไพพ์ในสคริปต์ทุบตีได้อย่างไร

ธง cn

ฉันได้พยายามที่จะวางท่อลึก 2 ระดับ

ฉันสามารถไปป์ได้สำเร็จ:

  1. ffmpeg | เกรป
  2. ffmpeg | เสด

ฉันไม่สามารถท่อ

  1. ffmpeg | เกรป | เสด
  2. ffmpeg | sed | เกรป

ฉันไม่เข้าใจ ffmpeg จำกัด เพียงท่อเดียวในห่วงโซ่หรือไม่

รหัสนี้ไม่มีเอาต์พุตโดยมี 2 ท่อและไม่มีข้อผิดพลาด:

ffmpeg -i "https://17563.live.streamtheworld.com/WETAFM.mp3?nocache=Ag6q8pw2" -af silencedetect=n=-10dB:d=0.5 -f null - 2>&1 | grep Silent_duration | sed "s/.*silence_duration: \(.*\).*/\1/"

ผลลัพธ์ที่คาดหวัง:

2.06442
0.719252
0.594036
0.562698
0.500295

รหัสนี้มีเอาต์พุตที่ถูกต้องพร้อม 1 ไปป์:

ffmpeg -i "https://17563.live.streamtheworld.com/WETAFM.mp3?nocache=Ag6q8pw2" -af silencedetect=n=-10dB:d=0.5 -f null - 2>&1 | grep Silent_duration

เอาท์พุต:

[silencedetect @ 0000018027f9bd00] เงียบ_end: 2.06442 | ระยะเวลาเงียบ: 2.06442
[silencedetect @ 0000018027f9bd00] เงียบ_end: 3.45971 | ระยะเวลาเงียบ: 0.719252
[silencedetect @ 0000018027f9bd00] เงียบ_end: 7.04399 | ระยะเวลาเงียบ: 0.594036
[silencedetect @ 0000018027f9bd00] เงียบ_end: 7.81501 | ระยะเวลาเงียบ: 0.562698
[silencedetect @ 0000018027f9bd00] เงียบ_end: 9.05535 | ระยะเวลาเงียบ: 0.500295

รหัสนี้มีเอาต์พุตที่ถูกต้องพร้อม 1 ไปป์:

ffmpeg -i "https://17563.live.streamtheworld.com/WETAFM.mp3?nocache=Ag6q8pw2" -af silencedetect=n=-10dB:d=0.5 -f null - 2>&1 | sed "s/.*silence_duration: \(.*\).*/\1/"

เอาท์พุต:

[silencedetect @ 000001a48277b980] silence_start: 0
2.06442
[silencedetect @ 000001a48277b980] silence_start: 2.74045
0.719252
[silencedetect @ 000001a48277b980] silence_start: 6.44995
0.594036
[silencedetect @ 000001a48277b980] silence_start: 7.25231
0.562698
[silencedetect @ 000001a48277b980] silence_start: 8.55506
0.500295
Score:3
ธง jp

ทำไม เกรป | เสด ไม่ทำอะไรเลย?

เป็น แต่คุณไม่ได้รอมัน หากคุณกด ถาม จากนั้น ffmpeg จะปิดสตรีม ความเงียบ_ระยะเวลา จะแสดงค่า

หากคุณต้องการให้พิมพ์ค่าทันทีให้ใช้วิธีหนึ่ง อึดอัด แทน.

วิธีแยกเชื้อ ความเงียบ_ระยะเวลา ค่า?

หากเป้าหมายสูงสุดคือการแยกตัว ความเงียบ_ระยะเวลา ค่าใช้ อึดอัด:

ffmpeg -i "https://17563.live.streamtheworld.com/WETAFM.mp3?nocache=Ag6q8pw2" -af silencedetect=n=-10dB:d=0.5 -f null - 2>&1 | awk -F ':' '/silence_duration/ {พิมพ์ $3}'

ผลลัพธ์:

2.06442
0.719252
0.594036
0.562698
0.663968
1.24109

อย่างไรก็ตาม ฉันชอบที่จะใช้ (ก) ข้อมูลเมตา กรองด้วยตัวกรองที่รองรับคีย์ข้อมูลเมตา มันซับซ้อนกว่า แต่เอาต์พุตนั้นสะอาดกว่าและแยกวิเคราะห์ได้ง่ายกว่า คุณสามารถไพพ์ข้อมูลได้อย่างง่ายดาย (ไฟล์=-) หรือส่งออกโดยตรงไปยังไฟล์ (ไฟล์=silence.log):

ข้อผิดพลาด ffmpeg -loglevel -i "https://17563.live.streamtheworld.com/WETAFM.mp3?nocache=Ag6q8pw2" -af silencedetect=n=-10dB:d=0.5,ametadata=mode=print:key=lavfi Silent_duration:file=- -f null - | awk -F = '/silence_duration/ {พิมพ์ $2}'
Jim Dandy BOA avatar
cn flag
ขอบคุณมาก! นี่เป็นความช่วยเหลือที่ดีสำหรับฉัน ฉันใช้รหัสของคุณและแก้ไขเพื่อต่อท้ายไฟล์ silence.log โดยมีรูปแบบเล็กน้อย: ffmpeg -loglevel error -i "https://17563.live.streamtheworld.com/WETAFM mp3?nocache=Ag6q8pw2" -af silencedetect=n=-10dB:d=0.5,ametadata=mode=print:key=lavfi.silence_duration:file=- -t 30 -f null - | awk -F = '/silence_duration/ {พิมพ์ $2 >> "silence.log"}'
llogan avatar
jp flag
@JimDandyBOA พิจารณาลบ `-t 30` หากคุณต้องการดำเนินการมากกว่า 30 วินาที ฉันลืมที่จะลบออกจากคำตอบเดิม
Jim Dandy BOA avatar
cn flag
บังเอิญ ก่อนที่คุณจะเพิ่ม -t 30 ฉันได้เพิ่มสิ่งเดียวกันในคืนก่อนเพื่อบังคับให้เขียนไปยังไฟล์เอาต์พุตเนื่องจาก awk กำลังบัฟเฟอร์เอาต์พุตไปยังไฟล์ แต่ไม่ได้บัฟเฟอร์ไปที่หน้าจอเทอร์มินัล ความตั้งใจของฉันคือการเรียก FFmpeg ในขณะวนซ้ำว่าเป็นแฮ็ค วิธีนี้ได้ผลแต่เปิดกระป๋องเวิร์มโดยเปิดและปิดซ้ำๆ ฉันได้เรียนรู้มากมายและหวังว่าโพสต์นี้จะเป็นประโยชน์กับผู้อื่น ขอบคุณอีกครั้ง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา