ด้วย ffmpeg คุณสามารถใช้ตัวกรอง aevalsrc เพื่อสร้างความเงียบและจากนั้นในคำสั่งที่สองให้ใช้โปรโตคอล concat เพื่อรวมกันโดยไม่สูญเสีย:
ffmpeg -filter_complex aevalsrc=0 -t 10 10SecSilence.mp3
ffmpeg -i "concat:input.mp3|10SecSilence.mp3" -c copy output.mp3
คุณสามารถควบคุมระยะเวลาของความเงียบโดยเปลี่ยน-t 10
เป็นเวลาใดก็ได้ในไม่กี่วินาทีที่คุณต้องการ แน่นอนว่าคุณจะต้องสร้างความเงียบเพียงครั้งเดียวจากนั้นคุณสามารถเก็บไฟล์ไว้รอบ ๆ และใช้เพื่อแยกไฟล์แต่ละไฟล์ที่คุณต้องการ คุณอาจต้องการค้นหาconcat demuxerซึ่งเป็นตัวประมวลผลที่เข้มข้นขึ้นเล็กน้อย แต่คุณอาจพบว่าง่ายกว่าที่จะวางลงในเชลล์สคริปต์
หากคุณต้องการทำในคำสั่งเดียวคุณสามารถใช้ตัวกรอง concat ซึ่งจะทำให้คุณเข้ารหัสเสียงของคุณอีกครั้ง (เนื่องจากตัวกรองกราฟไม่เข้ากัน-codec copy
) ดังนั้นตัวเลือกข้างต้นอาจจะดีที่สุดสำหรับคุณ แต่สิ่งนี้อาจเป็นประโยชน์สำหรับทุกคนที่ทำงานกับ PCM แบบดิบโดยมองหาวิธีเพิ่มความเงียบลงไปก่อนที่จะทำการเข้ารหัสเสียง:
ffmpeg -i input.mp3 \
-filter_complex 'aevalsrc=0::d=10[silence];[0:a][silence]concat=n=2:v=0:a=1[out]' \
-map [out] -c:a libmp3lame -q:a 2 output.mp3
ควบคุมความยาวของความเงียบโดยเปลี่ยนd=10
เป็นเวลาใดก็ได้ (เป็นวินาที) ที่คุณต้องการ หากคุณใช้วิธีนี้คุณอาจพบว่าคู่มือการเข้ารหัส FFmpeg MP3นี้มีประโยชน์