คาราโอเกะเป็นระบบดนตรีที่เล่นเสียงดนตรีประกอบที่บันทึกไว้ของเพลงยอดนิยม ผู้แสดงจะร้องเพลงสด โดยปกติจะร้องตามคำร้องที่แสดงบนหน้าจอวิดีโอ คำนี้ยังหมายถึงการแสดงเองด้วย
คำภาษาญี่ปุ่นนี้มาจากคำว่า kara ที่แปลว่า ว่างเปล่า รวมกับรูปย่อของคำที่แปลว่า วงออร์เคสตรา ดังนั้น karaoke จึงแปลตามตัวอักษรว่า วงออร์เคสตราว่างเปล่า
ในรายงานเมทาดาทา คาราโอเกะเป็นฟิลด์ที่มีความหมายเฉพาะเจาะจงมากขึ้น ชื่อนี้มาจาก ffprobe ซึ่งเป็นโปรแกรมอ่านไฟล์ของโครงการ FFmpeg
FFmpeg แยกแต่ละส่วนของไฟล์ออกเป็น สตรีม แยกกัน ทุกสตรีมจะมีชุดแฟล็กที่เรียกว่า disposition เช่น Karaoke และ Attached Pic เอกสารของ FFmpeg อธิบายแฟล็กนี้สั้นๆ ว่า สตรีมนั้นมีเสียงคาราโอเกะ
ลักษณะของค่าเป็นอย่างไร
ตัวเลือก -show_streams ของโปรแกรมอ่าน ffprobe จะแสดงแฟล็กสำหรับทุกสตรีม แม้ในไฟล์ที่ไม่มีเพลง แฟล็กนี้มีค่า 2 ค่าในผลลัพธ์นั้น:
0: ปิดแฟล็ก1: เปิดแฟล็ก สตรีมจะถูกระบุว่าเป็นเสียงคาราโอเกะ
รูปแบบที่เห็นจริงจะแตกต่างกันไปตามรายงาน รายงานแบบ JSON จะแสดงเป็น "karaoke": 0 และรายงานแบบข้อความล้วนจะแสดงเป็น DISPOSITION:karaoke=0
ไฟล์ใดที่มีรายการนี้อยู่
FFmpeg อ่านและเขียนแฟล็กนี้ในบางฟอร์แมต แต่ไม่ใช่ทุกฟอร์แมต ดังตัวอย่างต่อไปนี้:
- NUT: สตรีมสามารถเก็บคำว่า
karaokeไว้ในแท็กชื่อDisposition - MKV: สเปก Matroska มีแฟล็กเช่น default, forced และ commentary แต่ไม่มีแฟล็กสำหรับคาราโอเกะ
- MP4: รายการบทบาทแทร็ก MP4 ของ FFmpeg ไม่มีรายการสำหรับคาราโอเกะ
- เสียง AC-3 และ E-AC-3: ข้อมูลเสียงมีชนิดการให้บริการ และค่าหนึ่งหมายถึงคาราโอเกะ
FFmpeg แปลงชนิดการให้บริการแบบคาราโอเกะให้เป็นแฟล็กนี้เมื่อเสียงมี 2 แชนเนลขึ้นไป รวมถึงในไฟล์ MKV หรือ MP4 ด้วย สำหรับฟอร์แมตเสียงอื่น สตรีมในไฟล์ MKV หรือ MP4 มักจะรายงานเป็น 0 แม้ว่าเพลงนั้นจะเป็นเวอร์ชันคาราโอเกะก็ตาม
เพลงคาราโอเกะบางเพลงใช้ชนิดไฟล์เฉพาะของตนเอง Library of Congress ระบุส่วนขยายไฟล์ kar สำหรับไฟล์คาราโอเกะแบบ MIDI
ตำแหน่งที่เก็บคำร้องของเพลง
แฟล็ก Karaoke จะไม่เก็บคำร้องเพลง มีเพียงตัวเลข 0 หรือ 1 เท่านั้น FFmpeg มีแฟล็ก Lyrics แยกต่างหากสำหรับสตรีมที่มีคำร้องเพลง โดยตัวข้อความจริงจะถูกเก็บไว้ในตำแหน่งที่ต่างกันในแต่ละฟอร์แมต:
- MP3: เฟรม ID3v2 ชื่อ USLT ใช้เก็บ เนื้อเพลง ที่ไม่มีเวลาแนบไว้ และเฟรม SYLT ใช้เก็บตราประทับเวลาให้กับแต่ละพยางค์หรือหน่วยข้อความ
- MKV: แท็ก
LYRICSใช้เก็บคำร้องเมื่อไม่มีข้อมูลเวลา หรือใช้เก็บสำเนาของแทร็กคำบรรยาย
แหล่งที่มาของค่า
FFmpeg ตั้งค่าแฟล็กเหล่านี้เมื่อสร้างแต่ละสตรีม หรือภายหลังเมื่อทำการตรวจสอบสตรีม สำหรับไฟล์ NUT FFmpeg จะอ่านแฟล็กจากแท็ก Disposition สำหรับเสียง AC-3 FFmpeg จะอ่านชนิดการให้บริการจากข้อมูลเสียง
ด้วยตัวเลือก -disposition ของ FFmpeg คุณสามารถตั้งค่าแฟล็กนี้เองได้ ตามค่าเริ่มต้น FFmpeg จะคัดลอกแฟล็กจากสตรีมขาเข้ามายังสตรีมขาออก
แฟล็กที่ถูกเก็บไว้เฉพาะในคอนเทนเนอร์จะถูกส่งต่อไปยังไฟล์ใหม่ก็ต่อเมื่อฟอร์แมตใหม่สามารถเก็บแฟล็กนี้ได้ ตัวเขียนไฟล์ MKV ของ FFmpeg ไม่มีโค้ดรองรับแฟล็กนี้
ทำไมมันจึงสำคัญ
ไฟล์หนึ่งไฟล์สามารถมีสตรีมเสียงหลายสตรีม และแฟล็กนี้สามารถใช้ระบุให้หนึ่งในนั้นเป็นเสียงคาราโอเกะได้ ในคำสั่ง FFmpeg ตัวเลือกเลือกสตรีม disp:karaoke จะเลือกเฉพาะสตรีมที่มีแฟล็กนี้
แฟล็กนี้เป็นเพียงฉลากกำกับเท่านั้น จึงไม่สามารถยืนยันได้ตรงกับเสียงที่คุณได้ยิน ค่า 0 ไม่ได้พิสูจน์ว่าเพลงนั้นไม่มีเวอร์ชันคาราโอเกะหรือไม่มีคำร้อง