MPEG-4 Video
MP4 حاوية فيديو (ISO 14496-14) تغلّف ترميزات H.264 و H.265 و AV1 داخل بنية ISOBMFF. موقع ذرة moov يحدد إن كان التشغيل فورياً أم متأخراً. حوّل واقطع واضغط ملفات MP4 في متصفحك مع FileDex — بدون رفع.
ملفاتك لا تغادر جهازك
أسئلة شائعة
كيف أحوّل فيديو MP4 إلى صيغة أخرى بدون فقدان الجودة؟
استخدم وضع نسخ التدفق (Stream Copy) في أداة تحويل الفيديو لنقل البيانات من حاوية لأخرى دون إعادة ترميز. أسقط ملفك في محوّل FileDex واختر الصيغة المطلوبة. هذه العملية تُسمّى Remux وتستغرق ثوانٍ فقط لأنها لا تُعالج الفيديو.
لماذا حجم فيديو MP4 المُسجّل من iPhone كبير جداً؟
أجهزة iPhone الحديثة تُسجّل بصيغة H.265 ودقة 4K افتراضياً بمعدل بت مرتفع يصل إلى 135 Mbps. دقيقة واحدة بهذه الإعدادات تُنتج ملفاً بحجم 1 غيغابايت تقريباً. غيّر الإعدادات إلى 1080p و 30fps لتقليص الحجم 75% مع جودة ممتازة للمشاركة.
ما الفرق بين H.264 و H.265 في ملفات MP4؟
H.265 يضغط الفيديو بكفاءة أعلى 40% من H.264 عند نفس مستوى الجودة البصرية. الثمن هو وقت ترميز أطول واستهلاك أعلى للمعالج عند الفك. أغلب أجهزة 2020 وما بعدها تدعم فك H.265 عتادياً دون تأثير على البطارية.
هل يمكن قص فيديو MP4 دون إعادة ترميزه؟
القص الدقيق عند أي نقطة زمنية يتطلب إعادة ترميز لأن القطع بين إطارين مفتاحيين (Keyframe) يُفسد الصورة. القص عند أقرب إطار مفتاحي ممكن بدون إعادة ترميز عبر أدوات تحرير الفيديو التي تدعم وضع نسخ التدفق. راجع تبويب CLI في المرجع التقني أدناه للأمر الدقيق.
كيف أرسل فيديو MP4 عبر WhatsApp بجودة عالية؟
أرسله كمستند وليس كرسالة وسائط — اضغط أيقونة المشبك ثم اختر "مستند" بدل "معرض". هذا يتجاوز ضغط WhatsApp التلقائي ويحافظ على الدقة الأصلية. الحد الأقصى لحجم المستند 2 غيغابايت.
ما معنى moov atom في ملف MP4؟
moov atom هي جدول الفهرسة الذي يحتوي معلومات كل إطار: موقعه في الملف ومدته وحجمه. بدونها يستحيل تشغيل الملف. عند تلف moov بسبب انقطاع التسجيل، أدوات مثل untrunc تحاول إعادة بنائها من ملف سليم بنفس إعدادات الكاميرا.
هل صيغة MP4 تدعم النصوص التوضيحية المُدمجة؟
MP4 يدعم مسارات نصية بمعيار tx3g داخل الحاوية نفسها. يمكن تضمين ملف ترجمة SRT كمسار نصي داخل حاوية MP4 باستخدام أدوات تحرير الفيديو أو أدوات الدمج. هذه المسارات تظهر في مشغّلات VLC و iOS الافتراضي لكن بعض المشغّلات تتجاهلها. راجع تبويب CLI في المرجع التقني أدناه للأمر الدقيق.
ما يميز .MP4
يُخزّن ملف MP4 بيانات الفيديو والصوت والنصوص التوضيحية داخل بنية واحدة تُعرف بمعيار ISOBMFF. هذا المعيار يقسم الملف إلى وحدات تُسمّى atoms، كل وحدة تحمل وظيفة محددة: ftyp تُعلن نوع صيغة الملف، moov تحتوي خريطة المحتوى الكاملة، و mdat تضم البيانات الفعلية المضغوطة. الفهم الدقيق لهذه البنية يُفسّر كثيراً من المشكلات التي تواجه المستخدم عند تشغيل الملفات أو مشاركتها.
اكتشف التفاصيل التقنية
بنية atoms الداخلية
كل atom يبدأ بـ 4 بايتات تُحدد حجمه ثم 4 بايتات تُحدد نوعه. هذا التصميم يسمح لأي برنامج بتخطي atoms غير معروفة دون تعطّل — وهو ما يمنح صيغة MP4 قابلية توسع استثنائية. Apple أضافت atoms مخصصة لـ iTunes دون كسر التوافق مع المشغّلات الأخرى. Google فعلت الشيء ذاته لمعلومات 360 درجة في فيديوهات YouTube.
داخل moov atom تتفرع atoms أصغر: trak لكل مسار (فيديو، صوت، نص)، stbl لجدول العينات الذي يربط كل إطار بموقعه في mdat. حذف أي من هذه الفروع يُتلف الملف بالكامل رغم أن بيانات mdat سليمة.
موقع moov atom وأثره على البث
التفصيل الذي يُفرّق بين ملف MP4 يبدأ تشغيله فوراً وآخر يتطلب تحميل الملف بالكامل هو موقع moov atom. عندما تقع moov في نهاية الملف — وهو السلوك الافتراضي لأغلب برامج التحرير — يضطر المشغّل لتحميل الملف كاملاً قبل عرض أي إطار. نقلها إلى البداية عبر أمر FFmpeg بسيط يحل المشكلة:
ffmpeg -i input.mp4 -movflags +faststart output.mp4
هذا الأمر يقرأ moov من النهاية ويعيد كتابتها في المقدمة. الحجم الإضافي: صفر بايت. الملف الناتج مطابق في الجودة لكنه يبدأ التشغيل أثناء التحميل. منصات مثل YouTube تُنفّذ هذه العملية تلقائياً عند الرفع، لكن إن كنت تستضيف الفيديو على خادمك، التحريك اليدوي ضروري.
الـ Header (ترويسة الملف) وmagic bytes
أول 8 بايتات في أي ملف MP4 تحتوي magic bytes التي تبدأ بالقيمة ftyp. هذه البايتات تُخبر نظام التشغيل بنوع الملف حتى لو حُذف امتداده. التعرف لا يعتمد على الاسم بل على محتوى البايتات الأولى حصراً.
أنواع ftyp الشائعة: isom للتوافق العام، mp42 لملفات iTunes، و avc1 عندما يكون H.264 هو Codec (خوارزمية الترميز) الوحيد. أدوات مثل MediaInfo و FFprobe تقرأ هذه الترويسة وتعرض تفاصيل كل مسار صوتي ومرئي داخل الـ Container (الحاوية). عند تلقي ملف بامتداد مجهول، أمر واحد يكشف حقيقته:
ffprobe -v quiet -show_format input_file
مقارنة Codec الفيديو: H.264 و H.265 و AV1
ثلاث خوارزميات تتنافس على صيغة MP4 حالياً. H.264 يبقى الأوسع دعماً — كل جهاز صُنع بعد 2008 يفك ترميزه عتادياً. كفاءة الضغط جيدة لكنها الأقل بين الثلاثة.
H.265 يوفر ضغطاً أفضل بنسبة 40% عند نفس الجودة. لكن رسوم الترخيص أبطأت انتشاره سنوات. أجهزة iPhone 15 وما بعدها تُسجّل بصيغة H.265 افتراضياً — دقيقة 4K تستهلك حوالي 350 ميغابايت مقابل 580 ميغابايت بـ H.264.
AV1 مفتوح المصدر بالكامل ويتفوق على H.265 بنسبة 20% إضافية في الضغط. الثمن: الترميز أبطأ 10 مرات مقارنة بـ H.264. شريحة Apple M4 بدأت تدعم فك AV1 عتادياً، وهذا يُسرّع التبني. مشاركة الفيديو عبر AirDrop تحافظ على Codec الأصلي، لكن رفعه إلى TikTok يُعيد ترميزه إلى H.264 بغض النظر عن المصدر.
التحكم بالجودة عبر CRF
CRF اختصار Constant Rate Factor، وهو رقم بين 0 و 51 يحدد مستوى الضغط. القيمة 0 تعني بدون فقدان — حجم هائل لا يصلح للنشر. القيمة 23 هي الافتراضية في FFmpeg وتُنتج توازناً مقبولاً. للحصول على جودة بصرية لا يمكن تمييزها عن الأصل، القيمة 18 هي الخيار الأمثل.
كل زيادة بمقدار 6 في CRF تُنصّف الـ Bitrate (معدل البت) تقريباً. هذا يعني أن CRF 29 يُنتج ملفاً بربع حجم CRF 17 تقريباً. الفارق على شاشة هاتف 6 بوصات؟ شبه معدوم. على شاشة 4K مقاس 55 بوصة؟ واضح.
الخطأ الشائع: ضبط CRF على قيمة منخفضة جداً (مثل 5) ظناً أنها تُحسّن الجودة بشكل ملحوظ. عملياً، الفارق بين CRF 5 و CRF 18 لا يظهر إلا عند تحليل البكسلات تحت التكبير، بينما حجم الملف يتضاعف 8 مرات.
البث التكيّفي وصيغة Fragmented MP4
منصات البث مثل YouTube و Netflix لا تُقدّم ملف MP4 واحداً. تُجزّئ الفيديو إلى مقاطع صغيرة بصيغة Fragmented MP4 — كل مقطع مستقل يحتوي moov خاصة به. هذا يسمح للمشغّل بالتنقل بين مستويات جودة مختلفة حسب سرعة الاتصال دون إعادة التحميل.
بروتوكول HLS من Apple و DASH من MPEG يعتمدان على هذه البنية. ملف manifest يسرد المقاطع المتاحة بكل دقة ومعدل بت، والمشغّل يختار تلقائياً. عند انخفاض السرعة أثناء مشاهدة فيديو على شبكة 4G في الرياض أو دبي، تلاحظ تراجع الدقة لحظياً — هذه الآلية تحديداً.
إنشاء Fragmented MP4 من ملف عادي:
ffmpeg -i input.mp4 -movflags frag_keyframe+empty_moov output_frag.mp4
العلم frag_keyframe يبدأ مقطعاً جديداً عند كل Keyframe (الإطار المفتاحي). empty_moov يُلغي moov التقليدية ويعتمد على moov المُجزّأة داخل كل مقطع.
Keyframe والضغط بين الإطارات
فيديو H.264 لا يُخزّن كل إطار كصورة كاملة. Keyframe يحمل الصورة الكاملة، ثم الإطارات التالية (P-frames و B-frames) تُخزّن الفروقات فقط. مشهد ثابت مدته 10 ثوانٍ قد يحتاج Keyframe واحداً و 299 إطار فروقات — لذلك حجم الملف يرتبط بكمية الحركة أكثر من المدة.
عند القص بدون Transcode (إعادة الترميز)، القطع ممكن فقط عند Keyframe. القطع بين إطارين Keyframe يُنتج ثوانٍ أولى مشوّهة لأن إطارات الفروقات تفقد مرجعها.
واقع MP4 على WhatsApp
WhatsApp يضغط الفيديو تلقائياً إلى 16MB كحد أقصى — إرسال فيديو MP4 بدقة 4K مدته 3 دقائق يُنتج ملفاً أقل من 10MB بعد الضغط، مع فقدان واضح في التفاصيل على شاشات iPhone 15 Pro Max. الحل: أرسل الفيديو كمستند بدل رسالة وسائط للحفاظ على الجودة الأصلية. الحد الأقصى للمستند: 2 غيغابايت.
رفع الفيديو إلى TikTok يتطلب ألا يتجاوز 287.6MB ومدة 10 دقائق. المنصة تُعيد الترميز بمعدل بت ثابت بغض النظر عن إعداداتك — ملف CRF 15 بحجم 500 ميغابايت وملف CRF 28 بحجم 60 ميغابايت يخرجان بجودة متقاربة جداً بعد معالجة TikTok.
Remux (إعادة التغليف) مقابل Transcode
عملية Remux تنقل المسارات من حاوية لأخرى دون لمس البيانات المضغوطة — MP4 إلى MKV أو العكس في ثوانٍ. Stream Copy (نسخ المسار) هو الأمر المُستخدم:
ffmpeg -i input.mp4 -c copy output.mkv
عملية Transcode تفك الضغط ثم تُعيد الترميز بإعدادات جديدة — تغيير Codec أو الدقة أو معدل البت. هذه العملية تستغرق دقائق وتُنتج فقدان جيل إن كان المصدر مضغوطاً أصلاً. القاعدة: استخدم Remux كلما أمكن، ولا تلجأ لـ Transcode إلا عند الحاجة لتغيير فعلي في الترميز.
مقارنة .MP4 مع البدائل
| المقارنة | المعيار | الفائز |
|---|---|---|
| .MP4 vs .WEBM | توافق الأجهزة MP4 مع H.264 يعمل على كل جهاز صُنع بعد 2008 بفك ترميز عتادي. WebM مع VP9 يحتاج فك ترميز برمجي على أجهزة Apple القديمة مما يستهلك البطارية. | MP4 أفضل |
| .MP4 vs .MKV | دعم الترميزات MKV يقبل أي ترميز فيديو وصوت ومسارات نصية متعددة بلغات مختلفة. MP4 محدود رسمياً بترميزات MPEG — VP9 و AV1 دعم غير رسمي. | MKV أفضل |
| .MP4 vs .MKV | التوزيع عبر المنصات YouTube و Instagram و TikTok و WhatsApp تقبل MP4 مباشرة. MKV غير مدعوم في أغلب منصات التواصل — يتطلب تحويلاً قبل الرفع. | MP4 أفضل |
| .MP4 vs .MOV | التشغيل عبر الأنظمة MOV صيغة Apple الأصلية وتعمل بشكل مثالي على macOS و iOS. على Windows و Android، بعض ملفات MOV تفشل في التشغيل لأن الترميزات مخصصة لنظام Apple. | MP4 أفضل |
حوّل .MP4 إلى...
المرجع التقني
- نوع MIME
video/mp4- Magic Bytes
00 00 00 xx 66 74 79 70Bytes 4-7 spell ftyp. Bytes 0-3 vary (box size).- المطوّر
- ISO / Moving Picture Experts Group
- سنة التقديم
- 2001
- معيار مفتوح
- نعم — عرض المواصفات
Bytes 4-7 spell ftyp. Bytes 0-3 vary (box size).
البنية الثنائية
تستخدم ملفات MP4 نموذج صناديق ISO Base Media File Format (ISOBMFF). كل بايت في الملف ينتمي إلى صندوق (يُسمى أيضًا atom). يبدأ كل صندوق بحقل حجم من 4 بايتات بترتيب big-endian متبوعًا برمز نوع ASCII من 4 بايتات. يبدأ الملف بصندوق ftyp يُعلن عن العلامة والمواصفات المتوافقة. يحتوي صندوق moov على جميع البيانات الوصفية: تعريفات المسارات (trak) وترويسات الوسائط (mdia) وجداول العينات (stbl مع stts وstsc وstsz وstco/co64 وstss) وتكوين المرمّز (avcC لـ H.264 وhvcC لـ H.265). يحتفظ صندوق mdat بالعينات المرمّزة الخام المُشار إليها بإزاحات بايت في stco/co64. للبث، يجب أن يسبق moov صندوق mdat حتى يتمكن المشغل من بناء فهرس العينات قبل تحميل بيانات الوسائط. يستبدل MP4 المُجزأ (fMP4) زوج moov+mdat الواحد بأزواج moof+mdat متكررة، حيث يحمل كل moof ترويسة جزء المسار (tfhd) وجدول التشغيل (trun) لذلك المقطع.
| Offset | Length | Field | Example | Description |
|---|---|---|---|---|
0x00 | 4 بايت | حجم صندوق ftyp | 00 00 00 20 (32 bytes) | الحجم الإجمالي لصندوق ftyp بما في ذلك هذا الحقل. القيمة 1 تشير إلى حجم كبير 64 بت في الـ 8 بايتات التالية. |
0x04 | 4 بايت | نوع الصندوق | 66 74 79 70 (ftyp) | معرّف نوع الصندوق بترميز ASCII. يجب أن يكون 'ftyp' لملف ISOBMFF صالح. |
0x08 | 4 بايت | العلامة الرئيسية | 69 73 6F 6D (isom) | المواصفة الأساسية التي يتوافق معها هذا الملف. علامات MP4: isom وmp41 وmp42. علامة QuickTime: qt (مسافة)(مسافة). |
0x0C | 4 بايت | الإصدار الفرعي | 00 00 02 00 | الإصدار الفرعي للعلامة الرئيسية. للمعلومات فقط؛ يجب ألا ترفض المحللات بناءً على هذه القيمة. |
0x10 | متغير | العلامات المتوافقة | 69 73 6F 6D 69 73 6F 32 (isom, iso2) | مصفوفة من رموز علامات 4 بايتات تسرد جميع المواصفات التي يتوافق معها هذا الملف. تمتد إلى حدود صندوق ftyp. |
نقاط الضعف
- طفحان كومة atom الـ moov
- تجاوز ملف MP4/3GP متعدد الصيغ
- استغلال صندوق avcC لمفكك ترميز H.264
- حلقة لا نهائية في MP4 المُجزأ (fMP4)
الحماية: يعالج FileDex ملفات MP4 بالكامل داخل المتصفح عبر FFmpeg WASM في صندوق حماية Web Worker. لا تغادر أي بيانات الجهاز. يعمل وقت تشغيل WASM ضمن حدود ذاكرة المتصفح، مما يمنع استنفاد الذاكرة عبر moov. يتم التحقق من حجم atom أثناء فك تغليف FFmpeg قبل أي تهيئة للمرمّز.
- مواصفات ISO/IEC 14496-14:2020 — MPEG-4 Part 14: MP4 file format (third edition)
- مواصفات ISO/IEC 14496-12:2022 — ISO Base Media File Format (ISOBMFF, seventh edition)
- سجل MPEG-4 File Format, Version 2 — Library of Congress Format Description
- سجل video/mp4 — IANA Media Types (registered by David Singer, Apple)
- سجل MPEG-4 Media File (fmt/199) — The National Archives PRONOM Registry
- مواصفات RFC 4337 — MIME Type Registration for MPEG-4
- تاريخ MPEG-4 Part 14 — Wikipedia