فارمیٹ کا نام کسی میڈیا فائل کے کنٹینر فارمیٹ کا مختصر نام ہوتا ہے۔ یہ آپ کو بتاتا ہے کہ FFmpeg سافٹ ویئر آپ کی فائل کے فارمیٹ کو کیا نام دیتا ہے۔ کنٹینر ایک فائل فارمیٹ ہوتا ہے جو ایک یا زیادہ آڈیو یا ویڈیو اسٹریمز اور میٹا ڈیٹا کو ایک ساتھ رکھتا ہے تاکہ انہیں اکٹھے چلایا جا سکے۔
فارمیٹ لونگ نیم دوسرا فیلڈ ہے جو اسی فارمیٹ کو زیادہ سادہ الفاظ میں بیان کرتا ہے۔ FFmpeg پروگرام ffprobe ان دو فیلڈز کو format_name اور format_long_name کے طور پر دکھاتا ہے۔
قدریں کیسی نظر آتی ہیں
FFmpeg ہر قسم کی فائل کو ایک حصے کے ذریعے پڑھتا ہے جسے demuxer کہتے ہیں۔ فارمیٹ کا نام اس demuxer کا مختصر نام ہوتا ہے، اور لونگ نیم اس کی وضاحت۔ ایک demuxer کئی ملتے جلتے فارمیٹس کو پڑھ سکتا ہے، اس لیے فارمیٹ کا نام کوما سے الگ کی ہوئی فہرست بھی ہو سکتا ہے۔
یہ جوڑیاں FFmpeg کے سورس کوڈ سے آتی ہیں، جن میں پہلے فارمیٹ کا نام ہوتا ہے:
mov,mp4,m4a,3gp,3g2,mj2اورQuickTime / MOVMP4، MOV اور M4A فائلوں کے لیےmatroska,webmاورMatroska / WebMMKV اور 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 sequencePNG امیج کے لیے
کچھ 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 والی فائلوں پر بھی نظر آ سکتا ہے۔