کیراؤکے ایک میوزک سسٹم ہے جو کسی مقبول گانے کی ریکارڈ شدہ دھن چلاتا ہے۔ گلوکار گانا براہِ راست گاتا ہے، عام طور پر ویڈیو اسکرین پر الفاظ دیکھ کر۔ یہ لفظ خود اس پرفارمنس کے لیے بھی استعمال ہوتا ہے۔
یہ جاپانی لفظ kara (جس کے معنی ہیں خالی) اور orchestra کے مختصر لفظ کے ملاپ سے بنا ہے۔ اس طرح کیراؤکے کا لفظی مطلب ہوا خالی آرکسٹرا۔
میٹاڈیٹا رپورٹ میں، کیراؤکے ایک فیلڈ ہے جس کا مطلب زیادہ مخصوص ہوتا ہے۔ یہ نام ffprobe سے آتا ہے، جو FFmpeg پروجیکٹ کا فائل ریڈر ہے۔
FFmpeg فائل کے ہر حصے کو الگ الگ stream کے طور پر درج کرتا ہے۔ ہر stream کو flags کا ایک سیٹ ملتا ہے جسے disposition کہا جاتا ہے، مثلاً Karaoke اور Attached Pic۔ FFmpeg کی دستاویزات اس flag کو مختصراً یوں بیان کرتی ہیں: یہ stream کیراؤکے آڈیو پر مشتمل ہے۔
قدریں کیسی نظر آتی ہیں
ffprobe ریڈر کا آپشن -show_streams ہر stream کے لیے یہ flag پرنٹ کرتا ہے، حتیٰ کہ ایسی فائلوں میں بھی جن میں موسیقی نہیں ہوتی۔ اس آؤٹ پٹ میں flag کی 2 قدریں ہو سکتی ہیں:
0: flag بند ہے1: flag آن ہے، یعنی stream کو کیراؤکے آڈیو کے طور پر نشان زد کیا گیا ہے
درست شکل رپورٹ کے فارمیٹ پر منحصر ہوتی ہے۔ JSON رپورٹ میں "karaoke": 0 اور پلین ٹیکسٹ رپورٹ میں DISPOSITION:karaoke=0 دکھائی دیتا ہے۔
کون سی فائلیں اسے رکھتی ہیں
FFmpeg کچھ فارمیٹس میں یہ flag پڑھ اور لکھ سکتا ہے، مگر کچھ میں نہیں، جیسا کہ ان مثالوں سے ظاہر ہے:
- NUT: ایک stream میں
Dispositionنامی tag میںkaraokeلفظ محفوظ ہو سکتا ہے - MKV: Matroska کی وضاحت میں default، forced اور commentary جیسے flags شامل ہیں، لیکن کوئی karaoke flag نہیں
- MP4: FFmpeg کی MP4 ٹریک رولز کی فہرست میں karaoke کے لیے کوئی اندراج نہیں
- AC-3 اور E-AC-3 آڈیو: آڈیو ڈیٹا میں سروس ٹائپ ہوتی ہے، اور ایک قدر کا مطلب کیراؤکے ہوتا ہے
جب آڈیو میں 2 یا اس سے زیادہ چینلز ہوں تو FFmpeg کیراؤکے سروس ٹائپ کو flag میں تبدیل کرتا ہے، حتیٰ کہ MKV یا MP4 فائل میں بھی۔ دیگر آڈیو فارمیٹس کے ساتھ، MKV یا MP4 فائل میں کسی stream پر عموماً 0 رپورٹ ہوتا ہے، چاہے گانا کیراؤکے ورژن ہی کیوں نہ ہو۔
کچھ کیراؤکے گانے اپنا الگ فائل ٹائپ استعمال کرتے ہیں۔ لائبریری آف کانگریس کیراؤکے MIDI فائلوں کے لیے فائل ایکسٹینشن kar درج کرتی ہے۔
جہاں گانے کے الفاظ محفوظ کیے جاتے ہیں
Karaoke flag میں کوئی الفاظ نہیں ہوتے، صرف عدد 0 یا 1 ہوتا ہے۔ FFmpeg کے پاس گانے کے بول والی stream کے لیے الگ Lyrics flag ہوتا ہے۔ خود متن ہر فارمیٹ میں ایک مختلف جگہ پر ہوتا ہے:
- MP3: ID3v2 کا فریم USLT lyrics کو بغیر ٹائمنگ کے رکھتا ہے، اور فریم SYLT ہر حرفِ علت یا متن کے حصے کے ساتھ ٹائم اسٹیمپ محفوظ کرتا ہے
- MKV:
LYRICSنامی tag الفاظ کو اس وقت محفوظ کرتا ہے جب ٹائمنگ معلوم نہ ہو، یا سب ٹائٹل ٹریک کی ایک نقل کے طور پر
قدر کہاں سے آتی ہے
FFmpeg ہر stream بناتے وقت، یا بعد میں stream کو چیک کرتے ہوئے flags سیٹ کرتا ہے۔ NUT فائل کے لیے FFmpeg یہ flags Disposition tag سے پڑھتا ہے۔ AC-3 آڈیو کے لیے FFmpeg سروس ٹائپ کو آڈیو ڈیٹا سے پڑھتا ہے۔
FFmpeg کے آپشن -disposition کے ساتھ، آپ خود یہ flag سیٹ کر سکتے ہیں۔ بطورِ ڈیفالٹ FFmpeg input stream سے flags کو output stream میں نقل کر دیتا ہے۔
جو flag صرف container میں محفوظ ہو، وہ نئی فائل تک اسی وقت پہنچتا ہے جب نیا فارمیٹ اسے محفوظ کر سکے۔ MKV کے لیے FFmpeg writer میں اس flag کے لیے کوئی کوڈ نہیں ہے۔
یہ کیوں اہم ہے
ایک فائل میں کئی آڈیو streams ہو سکتی ہیں، اور یہ flag ان میں سے کسی ایک کو کیراؤکے آڈیو کے طور پر نشان زد کر سکتا ہے۔ FFmpeg کمانڈز میں stream selector disp:karaoke ان streams کو منتخب کرتا ہے جن پر یہ flag لگا ہو۔
یہ flag صرف ایک لیبل ہے، اس لیے یہ اس بات کا ثبوت نہیں کہ آپ کیا سن رہے ہیں۔ قدر 0 اس بات کا ثبوت نہیں کہ گانے کا کوئی کیراؤکے ورژن یا کوئی بول موجود نہیں ہیں۔