FFMPEG คำสั่งเดียวกัน


2

มีความแตกต่างระหว่างสองคำสั่งสำหรับการแยกเสียงจากวิดีโอหรือไม่

ffmpeg -i input.mp4 -c copy -map 0:a output.wav

ffmpeg -i input.mp4 -vn -acodec copy output.wav

คำตอบ:


2

หากไฟล์ mp4 ของคุณมีแทร็กเสียงเพียงแทร็กเดียวทั้งสองคำสั่งจะมีผลลัพธ์เหมือนกัน

มีความแตกต่างที่สำคัญอย่างน้อยหนึ่งกรณีในกรณีที่ mp4 ของคุณมีแทร็กเสียง / สตรีมหลายรายการ (ฉันไม่ได้อ้างถึงหลายช่องทางในสตรีม)

คอนเทนเนอร์ WAV อนุญาตให้ใช้หนึ่งแทร็กเสียงเท่านั้นดังนั้นคุณจึงใช้-map 0:aมันอาจจะพยายามคัดลอกแทร็กเสียงมากกว่าหนึ่งไฟล์ไปยังไฟล์ WAV ของคุณซึ่งจะทำให้เกิดข้อผิดพลาดเช่น:

Stream mapping:
Stream #0:2 -> #0:0 (copy)
Stream #0:3 -> #0:1 (copy)
Stream #0:4 -> #0:2 (copy)
Stream #0:5 -> #0:3 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

คำสั่งของคุณที่ไม่ได้ระบุการแมปจะไม่เกิดข้อผิดพลาดตามค่าเริ่มต้น ffmpeg จะส่งออกหนึ่งแทร็กแต่ละประเภทเท่านั้นหากไม่ได้ระบุการจับคู่

นอกเหนือจากนี้คุณไม่จำเป็นต้องระบุ-vnเมื่อใช้-acodec copyและระบุคอนเทนเนอร์ WAV เนื่องจาก ffmpeg จะไม่พยายามรวมวิดีโอใน WAV โดยอัตโนมัติ

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