รวมสองช่องสัญญาณเสียง (สเตอริโอ) เป็นหนึ่ง (โมโน) ใน GSM6.10 โดยใช้ FFMPEG


27

ฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่จะรวมเสียงสเตอริโอเข้ากับโมโนในไฟล์เสียง GSM6.10 โดยใช้ FFMPEG หากเป็นเช่นนั้นโปรดระบุคำสั่งเพื่อให้บรรลุสิ่งนี้
มิฉะนั้นจะสามารถแปลง GSM6.10 เป็น WAV PCM ด้วย FFMPEG ได้หรือไม่? ฉันสามารถรวมช่องบน WAV PCM ได้

หากมีเครื่องมือฟรีอีกตัวที่สามารถทำได้ฉันก็ลองใช้ได้เช่นกัน

คำตอบ:


42

วิธีการ "มิกซ์ดาวน์" จากสเตอริโอไปยังโมโนในไฟล์ที่รองรับใน ffmpeg นั้นเป็นเช่นนั้น:

ffmpeg -i file.ext -ac 1 file_mono.ext

บิต "-ac 1" สั่งให้ ffmpeg ส่งสัญญาณออกไปเพียง 1 แชนแนลเสียงคือโมโน โดยค่าเริ่มต้นการดำเนินการนี้จะรักษารูปแบบไฟล์ของคุณ แต่จะเปลี่ยนบิตเรตของคุณเป็นค่าเริ่มต้น ffmpeg เป็น 64kbs หากคุณต้องการบิตเรตที่สูงขึ้นคุณสามารถทำได้:

ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext

... แทนที่ 192k ด้วยอัตราบิตที่คุณต้องการ

โปรดทราบว่าการติดตั้ง ffmpeg ของคุณจะต้องรองรับตัวแปลงสัญญาณ GSM ของคุณเพื่อให้สามารถทำงานได้อย่างถูกต้อง ฉันรู้ว่าเสียงที่เข้ารหัสของ GSM รองรับ ffmpeg ผ่าน libgsm แต่ฉันไม่เคยจัดการไฟล์ GSM ด้วยตัวเอง ฉันแปลงไฟล์ประเภทอื่น (MP3) เป็นไฟล์โมโนได้อย่างประสบความสำเร็จอย่างไรก็ตาม


3
สิ่งนี้กำลังปะปนอยู่จริงๆหรือเพิ่งจะหล่นจากช่อง?
Jonny

จากเอกสารตัวกรอง 'กระทะ': "โปรดทราบว่า ffmpeg รวมระบบเริ่มต้นแบบมิกซ์ (และแบบมิกซ์) ที่ควรเป็นที่ต้องการ (ดูตัวเลือก" -ac ") เว้นแต่คุณจะมีความต้องการที่เฉพาะเจาะจงมาก"
หยุดทำร้ายโมนิก้า

ทั้งไฟล์อินพุตและเอาต์พุตต้องเป็นไฟล์เสียงเท่านั้น อินพุตไม่สามารถเป็นวิดีโอได้
Kevin

1
การจัดการช่องสัญญาณเสียง "ผสมสตรีมสเตอริโอเดี่ยวลงไปในสตรีมโมโนทั้งสองช่องของสตรีมสเตอริโอจะถูกผสมลงในสตรีม:"ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra

@Kevin - อินพุตสามารถเป็นไฟล์วิดีโอฉันเพิ่งยืนยัน (มีหรือไม่มี -vn)
Berry Tsakala

7

คำตอบข้างต้นใช้งานได้ในกรณีที่คุณยังต้องการแปลงระหว่างรูปแบบต่าง ๆ แต่สำหรับไฟล์ขนาดยาวที่อาจใช้เวลานาน หรือบางทีคุณไม่ต้องการแปลงอีกครั้งลดระดับคุณภาพและดังนั้นคุณอาจต้องการสตรีมการคัดลอก การใช้ -codec: a และ -ac 1 ในเวลาเดียวกันใช้งานไม่ได้ แต่ตามเอกสารตัวกรอง ffmpeg หากพบเงื่อนไขบางประการ (เช่นคุณไม่ได้ปรับระดับของช่องหรือผสมสองช่องเป็นหนึ่ง) มันจะรับรู้กรณีและรายงานนี้: "ตรวจพบการจับคู่ช่องสัญญาณบริสุทธิ์" และทำการคัดลอกสตรีมซึ่งเร็วกว่ามาก

ตัวอย่างเช่น: หากต้องการสร้างไฟล์สเตอริโอแบบโมโนโดยใช้ช่องทางด้านซ้ายและเพียงคัดลอกสตรีมวิดีโอให้ทำสิ่งนี้:

ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext

0

ฉันรู้ว่ามันเป็นไปได้กับ sox .... ฉันใช้ sox สำหรับการจัดการช่องทาง, kdenlive และความกล้าสำหรับการแก้ไขที่ไม่รุนแรงและ ffmpeg สำหรับการรีมิกซ์ เพียงแค่ให้คุณรู้ว่าสิ่งที่ได้ผลดีสำหรับฉันในอดีต


0

เพื่อรักษาวิดีโอฉันใช้การรวมกันของสองคำตอบข้างต้น:

ffmpeg -i infile -codec:v copy -ac 1 -ab 192k outfile

นั่นเป็นทางออกที่เพียงพอสำหรับฉัน

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