اٹیچڈ پکچر وہ تصویر ہے جو کسی اور چیز کے ساتھ ہو، مثلاً ای میل میں موجود فوٹو۔ آڈیو یا ویڈیو فائل میں اٹیچڈ پکچر وہ تصویر ہے جو خود فائل کے اندر محفوظ ہوتی ہے۔ اس کی عام مثال کسی البم یا سنگل کا کور آرٹ ہے۔
اٹیچڈ پکچر وہ فیلڈ ہے جو میٹا ڈیٹا رپورٹ میں ایسی تصویر کو نشان زد کرتی ہے۔ یہ نام ffprobe سے آتا ہے، جو FFmpeg پروجیکٹ کا فائل ریڈر ہے، اور اسے attached_pic کے طور پر لکھتا ہے۔
FFmpeg فائل کے ہر حصے کو الگ اسٹریم کے طور پر درج کرتا ہے۔ ہر اسٹریم کو فلیگز کا ایک سیٹ دیا جاتا ہے جسے disposition کہا جاتا ہے۔ ہر فلیگ آن یا آف ہو سکتا ہے، اور Attached Pic انہی فلیگز میں سے ایک ہے۔
قدریں کیسی نظر آتی ہیں
ffprobe ریڈر کا -show_streams آپشن ہر اسٹریم کے لیے یہ فلیگ پرنٹ کرتا ہے، حتیٰ کہ ان فائلوں میں بھی جن میں کوئی اٹیچڈ پکچر نہیں ہوتی۔ اس آؤٹ پٹ میں فلیگ کی 2 ویلیوز ہو سکتی ہیں:
0: اسٹریم اٹیچڈ پکچر نہیں ہے، مثلاً عام آڈیو یا ویڈیو اسٹریم1: اسٹریم میں اٹیچڈ پکچر موجود ہے، مثلاً کسی البم کا کور
فائل کے لیے FFmpeg جو مختصر اوورویو پرنٹ کرتا ہے، اس میں بھی یہی فلیگ (attached pic) کے طور پر دکھایا جاتا ہے۔ FFmpeg یہ لیبل صرف اسی وقت پرنٹ کرتا ہے جب فلیگ آن ہو۔
کون سی فائلیں اسے رکھتی ہیں
FFmpeg اٹیچڈ پکچر کو ایک ویڈیو اسٹریم کے طور پر سمجھتا ہے جس میں صرف ایک تصویر ہو۔ اس لیے کور آرٹ والی گانے کی فائل میں 2 اسٹریمز رپورٹ ہو سکتی ہیں: ایک آواز کے لیے اور ایک تصویر کے لیے۔ تصویر والے اسٹریم کا کوڈیک ٹائپ ویڈیو ہوتا ہے، حالانکہ تصویر کبھی حرکت نہیں کرتی۔
FFmpeg ہر فارمیٹ میں تصویر کو مختلف جگہ سے پڑھتا ہے:
- MP3: ID3v2 ٹیگ میں APIC فریم، جسے ID3v2 معیار Attached picture کہتا ہے
- M4A اور MP4:
covrآئیٹم، جسے ExifToolCoverArtکہتا ہے - FLAC: پکچر بلاک، اور ایک فائل میں ایسے کئی بلاکس ہو سکتے ہیں
- MKV: امیج ٹائپ والی اٹیچمنٹ، مثلاً
cover.jpgیاcover.pngنامی فائل
فوٹوز اور ای بکس اپنی تصاویر کو دوسری فیلڈز میں رکھتی ہیں۔ JPEG فوٹو اپنی Thumbnail Image فیلڈ میں ایک چھوٹا پری ویو محفوظ کر سکتا ہے۔ EPUB ای بک زیادہ سے زیادہ ایک امیج فائل کو کور کے طور پر نشان زد کرتی ہے۔
قدر کہاں سے آتی ہے
خود فائل میں Attached Pic نام کی کوئی فیلڈ موجود نہیں ہوتی۔ FFmpeg جب کوئی پکچر فریم، پکچر بلاک یا امیج اٹیچمنٹ پاتا ہے تو یہ فلیگ آن کر دیتا ہے۔
MP3 اور FLAC فائلوں کے لیے FFmpeg تصویر کی تفصیل کو title ٹیگ میں بھی کاپی کرتا ہے۔ یہ تصویر کی قسم کو comment ٹیگ میں کاپی کرتا ہے۔
تصویر کی قسم 0 سے 20 تک ایک نمبر ہوتی ہے جو بتاتی ہے کہ تصویر میں کیا دکھایا گیا ہے۔ FFmpeg اس ٹائپ کو متن کے طور پر لکھتا ہے، مثلاً:
- ٹائپ 0،
Other: ایسی تصویر جو کسی دوسری ٹائپ میں فِٹ نہیں ہوتی - ٹائپ 3،
Cover (front): فرنٹ کور، جسے بہت سے پلیئر پلے بیک کے دوران دکھاتے ہیں - ٹائپ 4: بیک کور
- ٹائپ 6: خود میڈیا، مثلاً CD کا لیبل والا حصہ
FFmpeg صرف کچھ فارمیٹس میں ایمبیڈڈ پکچر لکھ سکتا ہے جنہیں وہ سپورٹ کرتا ہے۔ خود تصویر کے لیے ID3v2 معیار اور Matroska اسپیسفیکیشن دونوں JPEG اور PNG کی سفارش کرتے ہیں۔
یہ کیوں اہم ہے
فلیگ سافٹ ویئر کو بتاتا ہے کہ اسٹریم تصویر ہے، موونگ ویڈیو نہیں۔ FFmpeg کمانڈز میں اسٹریم سلیکٹر V صرف ایسے ویڈیو اسٹریمز منتخب کرتا ہے جو اٹیچڈ پکچرز نہیں ہوتے۔
تصویر کا ڈیٹا فائل کے اندر موجود ہوتا ہے، اس لیے بڑا کور پوری فائل کو بڑا بنا دیتا ہے۔ تصویر صرف کور سے زیادہ بھی دکھا سکتی ہے، مثلاً پرفارمر یا ریکارڈنگ کی جگہ۔
پکچر فریم یا پکچر بلاک فائل سے باہر موجود امیج کے لنک کو بھی محفوظ کر سکتا ہے۔ FLAC فائلوں کے لیے اسپیسفیکیشن کہتی ہے کہ پروگرام کو نیٹ ورک کے ذریعے وہ امیج لوڈ کرنے سے پہلے آپ سے پوچھنا چاہیے۔