ڈکشنری

فارمیٹ نیم کیا ہوتا ہے؟

فارمیٹ نام یہ دکھاتا ہے کہ میڈیا فائل کون سا کنٹینر فارمیٹ استعمال کرتی ہے، جیسے MP4 یا WAV۔ فارمیٹ لانگ نیم اسی فارمیٹ کو ایسے الفاظ میں بیان کرتا ہے جو پڑھنے میں زیادہ آسان ہوں۔

format-name

فارمیٹ کا نام کسی میڈیا فائل کے کنٹینر فارمیٹ کا مختصر نام ہوتا ہے۔ یہ آپ کو بتاتا ہے کہ FFmpeg سافٹ ویئر آپ کی فائل کے فارمیٹ کو کیا نام دیتا ہے۔ کنٹینر ایک فائل فارمیٹ ہوتا ہے جو ایک یا زیادہ آڈیو یا ویڈیو اسٹریمز اور میٹا ڈیٹا کو ایک ساتھ رکھتا ہے تاکہ انہیں اکٹھے چلایا جا سکے۔

فارمیٹ لونگ نیم دوسرا فیلڈ ہے جو اسی فارمیٹ کو زیادہ سادہ الفاظ میں بیان کرتا ہے۔ FFmpeg پروگرام ffprobe ان دو فیلڈز کو format_name اور format_long_name کے طور پر دکھاتا ہے۔

قدریں کیسی نظر آتی ہیں

FFmpeg ہر قسم کی فائل کو ایک حصے کے ذریعے پڑھتا ہے جسے demuxer کہتے ہیں۔ فارمیٹ کا نام اس demuxer کا مختصر نام ہوتا ہے، اور لونگ نیم اس کی وضاحت۔ ایک demuxer کئی ملتے جلتے فارمیٹس کو پڑھ سکتا ہے، اس لیے فارمیٹ کا نام کوما سے الگ کی ہوئی فہرست بھی ہو سکتا ہے۔

یہ جوڑیاں FFmpeg کے سورس کوڈ سے آتی ہیں، جن میں پہلے فارمیٹ کا نام ہوتا ہے:

  • mov,mp4,m4a,3gp,3g2,mj2 اور QuickTime / MOV MP4، MOV اور M4A فائلوں کے لیے
  • matroska,webm اور Matroska / WebM MKV اور WebM فائلوں کے لیے
  • mp3 اور MP2/3 (MPEG audio layer 2/3) MP3 آڈیو کے لیے
  • wav اور WAV / WAVE (Waveform Audio) WAV آڈیو کے لیے
  • mpeg اور MPEG-PS (MPEG-2 Program Stream) MPEG-2 پروگرام اسٹریم کے لیے، جو .mpg پر ختم ہو سکتی ہے
  • png_pipe اور piped png sequence PNG امیج کے لیے

کچھ FFmpeg بلڈز لونگ نیم چھوڑ دیتی ہیں۔ اس صورت میں لونگ نیم unknown کے طور پر دکھائی دے سکتا ہے یا موجود نہیں ہوتا۔

قدر کہاں سے آتی ہے

فائل اپنا فارمیٹ نام محفوظ نہیں کرتی۔ FFmpeg فائل کے شروع کے حصے کو پڑھتا ہے اور ہر اس فارمیٹ کو جسے وہ جانتا ہے ایک اسکور دیتا ہے۔ وہ سب سے زیادہ اسکور والا فارمیٹ منتخب کرتا ہے، اور probe score فیلڈ وہ اسکور دکھاتی ہے۔

فائل ایکسٹینشن صرف تب اہم ہوتی ہے جب یہ ٹیسٹ کمزور نتیجہ دے، یا جب کسی فارمیٹ کا کوئی ٹیسٹ ہی نہ ہو۔ FFmpeg کی دستاویزات خبردار کرتی ہیں کہ صرف ایکسٹینشن سے فارمیٹ اندازہ لگانا کافی قابلِ بھروسا نہیں۔

کیوں ایک MP4 فائل میں QuickTime دکھائی دے سکتا ہے

MP4 فائل فارمیٹ نیم mov,mp4,m4a,3gp,3g2,mj2 اور لونگ نیم QuickTime / MOV دکھاتی ہے۔ یہ معمول کی بات ہے اور اس کا مطلب یہ نہیں کہ فائل MOV ہے۔ FFmpeg چھ ملتے جلتے فارمیٹس کے لیے ایک ہی demuxer استعمال کرتا ہے، اس لیے یہی ویلیوز MOV، MP4، M4A، 3GP، 3G2 اور MJ2 فائلوں پر بھی نظر آتی ہیں۔

یہ فارمیٹس اس لیے آپس میں جڑے ہوئے ہیں کہ MP4، ISO base media فائل فارمیٹ سے نکلا ہے، اور وہ فارمیٹ QuickTime فائل فارمیٹ سے آیا ہے۔ MP4 اور QuickTime آپس میں متعلق ہیں، لیکن ان میں فرق بھی ہے، اس لیے ہر جگہ ایک کو دوسرے کی جگہ استعمال نہیں کیا جا سکتا۔

ان فائلوں میں major_brand ٹیگ بھی ہو سکتا ہے۔ FFmpeg ویلیو qt کو QuickTime فائل کے طور پر لیتا ہے اور باقی ویلیوز کو ISO base media فائل کے طور پر۔

کون سی فائلیں اسے رکھتی ہیں

فارمیٹ نام ان فائلوں پر ظاہر ہوتا ہے جنہیں FFmpeg میڈیا کے طور پر کھول سکتا ہے: ویڈیو، آڈیو، اور بہت سے امیج فارمیٹس۔ اگر ffprobe کسی فائل کو ملٹی میڈیا فائل کے طور پر پہچان نہ سکے تو وہ ایرر واپس کرتا ہے اور فارمیٹ نام موجود نہیں ہوتا۔ ایسی فائلوں کے لیے آپ File Type فیلڈ دیکھیں۔

FFmpeg ان فائلوں کو بھی فارمیٹ نام دیتا ہے جن میں روایتی کنٹینر نہیں ہوتا۔ مثلاً MP3 فائل دراصل آڈیو فریمز کی اسٹریم ہوتی ہے، جس میں اکثر ID3 ٹیگز ہوتے ہیں۔

آپ کی فائل کے لیے یہ کیوں اہم ہے

زیادہ اسکور فائل کے نام پر ترجیح رکھتا ہے، اس لیے فارمیٹ نام عموماً وہی کنٹینر دکھاتا ہے جو فائل حقیقت میں استعمال کر رہی ہوتی ہے۔ اگر فائل کا نام .mp3 پر ختم ہو اور فارمیٹ نام wav ہو، تو اس کا مطلب ہے کہ فائل WAV ہیڈر سے شروع ہوتی ہے۔ پھر فائل کا نام اس کے مواد سے میل نہیں کھاتا۔

فارمیٹ نام ہمیشہ نہیں بتاتا کہ فائل کون سے codecs استعمال کرتی ہے۔ Codec Long Name یہ بیان کرتا ہے کہ کنٹینر کے اندر ایک اسٹریم کو کیسے انکوڈ کیا گیا ہے، اس لیے ہر اسٹریم کا اپنا الگ نام ہوتا ہے۔

مثال کے طور پر، ایک MP4 فائل میں ویڈیو AVC (H.264)، AV1 یا VP9 میں، اور آڈیو AAC، FLAC یا Opus میں ہو سکتی ہے۔ اسی لیے ایک ہی فارمیٹ نام مختلف codecs والی فائلوں پر بھی نظر آ سکتا ہے۔

میٹا کیز