PDFMove
صيغ الترجمة: الفروق بين SRT وVTT وASS
دليل

صيغ الترجمة: الفروق بين SRT وVTT وASS

6 دقيقة للقراءة

ملفات الترجمة ملفات نصية بسيطة، لكن الفروق بينها تحدد أين وكيف سيظهر فيديوك. نشرح في هذا المقال بنية الصيغ الثلاث الشائعة، ومنشأ مشكلة ترميز المحارف، والأسباب التقنية لانزياح المزامنة.

SRT: الأوسع انتشاراً والأبسط

تأخذ صيغة SubRip Text اسمها من برنامج لاستخراج ترجمات أقراص DVD، وبنيتها في غاية البساطة:

1
00:00:01,500 --> 00:00:04,200
مرحباً، هذا أول سطر ترجمة.

2
00:00:04,500 --> 00:00:07,800
هذا السطر الثاني وهو
مقسوم على سطرين.

يتألف كل مقطع من أربعة أجزاء:

  1. رقم التسلسل (يبدأ من 1)
  2. المدى الزمني (البداية --> النهاية)
  3. النص (سطر واحد أو أكثر)
  4. سطر فارغ (يفصل بين المقاطع)

وصيغة الزمن هي ساعة:دقيقة:ثانية,ميلي‌ثانية، وفاصل الميلي‌ثانية فاصلة. وهذه التفصيلة إحدى النقاط المفتاحية في التمييز عن VTT.

حدود SRT:

  • لا معلومات تنسيق. الخط والحجم واللون والموضع — لا شيء منها معرّف في الملف. بل يحددها المشغّل أو أداة الحرق من الخارج.
  • لا تموضع. تظهر كل ترجمة في المكان نفسه (أسفل الوسط عادةً).
  • تنسيق محدود. تدعم بعض المشغّلات وسوم HTML مثل <i> (مائل) و<b> (عريض) و<u> (تحته خط)، لكنها ليست خاصية قياسية؛ فليس كل مشغّل يفسّرها.

في المقابل يتمتع بـدعم شامل: فتقريباً كل مشغّل وكل تلفاز وكل محرر ترجمة يقرأ SRT. ولبساطته يمكن تحريره يدوياً في أي محرر نصوص.

VTT: صيغة SRT مصممة للويب

طُوّرت WebVTT‏ (Web Video Text Tracks) من أجل فيديو HTML5. وهي شديدة الشبه بـ SRT مع ثلاثة فروق:

WEBVTT

1
00:00:01.500 --> 00:00:04.200
مرحباً، هذا أول سطر ترجمة.

2
00:00:04.500 --> 00:00:07.800 position:50% line:80%
هذا السطر ذو تموضع خاص.

الفرق 1: ترويسة WEBVTT. يجب أن يبدأ الملف بهذا السطر.

الفرق 2: فاصل النقطة. فاصل الميلي‌ثانية في الطوابع الزمنية نقطة لا فاصلة. وأبسط طريقة لتحويل ملف SRT إلى VTT هي إضافة سطر WEBVTT في المقدمة وتحويل الفواصل إلى نقاط.

الفرق 3: تلميحات التموضع والتنسيق. يمكن إلحاق قيم مثل position وline وalign وsize بنهاية سطر الزمن. كما يمكن التنسيق عبر CSS.

الأهمية الحقيقية لـ VTT: وسم <video> في HTML5 لا يقبل إلا VTT.

<video controls>
  <source src="video.mp4" type="video/mp4">
  <track src="subtitle-ar.vtt" kind="subtitles" srclang="ar" label="العربية" default>
  <track src="subtitle-en.vtt" kind="subtitles" srclang="en" label="English">
</video>

ولهذه البنية ميزة مهمة: نص الترجمة قابل للقراءة من محركات البحث. فالترجمة المحروقة جزء من الصورة ولا تستطيع الآلات قراءتها؛ أما ملف VTT المنفصل فمتاح كنص.

وتفصل الخاصية kind بين أنواع المسارات المختلفة: subtitles (ترجمة)، وcaptions (لضعاف السمع، وتشمل المؤثرات الصوتية أيضاً)، وdescriptions (وصف صوتي لضعاف البصر)، وchapters (علامات الفصول).

ASS/SSA: قوة التنسيق

Advanced SubStation Alpha صيغة أعقد بكثير، وتحمل معلومات التنسيق داخلها:

[Script Info]
ScriptType: v4.00+
PlayResX: 1920
PlayResY: 1080

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, OutlineColour, ...
Style: Default,Arial,48,&H00FFFFFF,&H00000000,...
Style: Sign,Arial,36,&H0000FFFF,&H00000000,...

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Text
Dialogue: 0,0:00:01.50,0:00:04.20,Default,,0,0,0,,Merhaba.
Dialogue: 0,0:00:05.00,0:00:07.00,Sign,,0,0,0,,{\pos(800,200)}CLOSED

الإمكانات التي يقدمها ASS:

  • أنماط مسمّاة. تُعرَّف أنماط منفصلة للمتحدثين المختلفين ولأنواع النصوص المختلفة.
  • تموضع حر. يمكن وضع الترجمة في أي نقطة من الشاشة عبر \pos(x,y).
  • التحكم في اللون والحدود. لكل نمط لوحة ألوانه الخاصة.
  • الحركة. الانزلاق والتلاشي والدوران وتغيير المقياس.
  • تأثير الكاريوكي. إبراز المقاطع الصوتية تباعاً في كلمات الأغاني.
  • الطبقات. ترجمات متراكبة فوق بعضها.

متى يكون ضرورياً؟ حين يلزم أن يتغير موضع الترجمة أو لونها أو حركتها تبعاً للمحتوى: وضع ترجمة لافتة ظاهرة على الشاشة بجوارها، وتمييز المتحدثين بالألوان، وإبراز كلمات الأغاني.

الثمن: دعمه ليس بسعة دعم SRT. فبعض المشغّلات تتجاهل الأنماط وتعرض نصاً عادياً؛ وبعضها لا يفتحه أصلاً.

ترميز المحارف: صداع النصوص غير اللاتينية

هذه أكثر المشكلات تكراراً في الترجمات بلغات مثل العربية والتركية، ومصدرها في طبيعة الصيغ نفسها.

ملفات الترجمة نص صِرف، والملفات النصية لا تصرّح من تلقاء نفسها بالترميز الذي حُفظت به. لذا يضطر البرنامج إلى افتراض ترميز ما عند فتح الملف.

وتاريخياً كانت النصوص تُخزَّن بالترميزات التالية:

| الترميز | الحقبة | الحالة | |---|---|---| | ISO-8859-9 (Latin-5) | التسعينيات–الألفينيات | قديم | | Windows-1254 (تركي) | أنظمة ويندوز | قديم | | Windows-1256 (عربي) | أنظمة ويندوز | قديم | | UTF-8 | منذ الألفينيات | المعيار الحديث |

فحين تقرأ ملفاً بترميز Windows-1254 مفترضاً أنه UTF-8، تتلف الحروف الخاصة:

| الصحيح | الشكل التالف | |---|---| | ş | þ أو ÅŸ | | ğ | ð أو ÄŸ | | ı | ý أو ı | | İ | Ý أو İ | | ç | ç | | ü | ü |

والأمر نفسه يحدث للنص العربي المحفوظ بترميز Windows-1256 حين يُقرأ على أنه UTF-8: تتحول الحروف إلى رموز مبعثرة أو علامات استفهام.

الحل: افتح الملف في محرر نصوص وأعد حفظه بترميز UTF-8. في «المفكرة» يوجد خيار الترميز أسفل نافذة «حفظ باسم»؛ وفي VS Code يظهر الترميز الحالي في الزاوية السفلية ويمكن تغييره بالنقر عليه.

مسألة BOM: قد تحمل ملفات UTF-8 اختيارياً «علامة ترتيب البايت» (BOM) في مقدمتها. وبعض الأدوات تقرأ السطر الأول خطأً في الملفات التي تحملها. فإن واجهت مشكلة، جرّب UTF-8 بلا BOM.

معدل الإطارات وانزياح المزامنة

تختل مزامنة الترجمة بصورتين مختلفتين، ولكل منهما حل مختلف.

الانزياح الثابت

تأتي الترجمة مبكرة أو متأخرة بالمقدار نفسه باستمرار.

السبب: وجود مقطع في بداية الفيديو غير موجود في ملف الترجمة (شعار الموزّع، شاشة تحذير) أو العكس.

الحل: أضف القيمة نفسها إلى جميع الطوابع الزمنية أو اطرحها منها. ومحررات الترجمة تفعل ذلك في عملية واحدة.

الانزياح المتزايد

المزامنة جيدة في البداية وتختل نحو النهاية.

السبب: عدم تطابق معدل الإطارات. فللمحتوى نفسه نسخ بمعدلات إطارات مختلفة:

| المعيار | معدل الإطارات | الاستخدام | |---|---|---| | السينما | 24 إطاراً/ث | التصوير السينمائي | | PAL | 25 إطاراً/ث | التلفزيون الأوروبي | | NTSC | 23.976 إطاراً/ث | أمريكا، التوزيع الرقمي | | فيديو NTSC | 29.97 إطاراً/ث | التلفزيون الأمريكي |

فالترجمة المُعدّة لـ 25 إطاراً/ث، حين تُشغَّل على فيديو بمعدل 23.976، يتراكم فيها خطأ نحو 4% في كل ثانية. وفي فيلم مدته ساعتان يعني ذلك انزياحاً يتجاوز خمس دقائق قرب النهاية.

الحل: تصحيح تناسبي. تُضرب جميع الطوابع الزمنية بنسبة (معدل الإطارات الهدف / معدل الإطارات المصدر). وتوفر محررات الترجمة خيار «تحويل معدل الإطارات».

وبعض الصيغ القديمة (مثل MicroDVD) تخزّن الزمن مباشرة برقم الإطار لا بالثواني. وفي هذه الصيغ يستحيل حساب الزمن دون معرفة معدل الإطارات.

التضمين والحرق: ما الذي يتغير في الملف

التضمين (soft subtitle): تُضاف الترجمة إلى حاوية الفيديو كمسار منفصل. وتدعم MKV ذلك دعماً ممتازاً؛ أما في MP4 فالدعم أضيق (يقتصر عادةً على صيغ بعينها). ولا تُمسّ بيانات الفيديو إطلاقاً، ومن ثم يمكن النسخ المباشر وتُصان الجودة.

الحرق (hardsub): تُرسم الترجمة فوق كل إطار من إطارات الفيديو وتصبح بكسلات. وهذا يستلزم إعادة ترميز الفيديو — ومن ثم قدراً من فقد الجودة.

وأثناء الحرق يضيع نص الترجمة نهائياً؛ ولا تبقى إلا الصورة. ولذلك:

  • لا يمكن التراجع عنه.
  • لا تستطيع محركات البحث قراءته.
  • لا تصل إليه قارئات الشاشة.
  • لا يمكن إيقافه.

في المقابل لا تحدث أي مشكلة توافق — فالترجمة صارت جزءاً من الصورة.

الخلاصة

SRT أبسط الصيغ وأوسعها دعماً لكنه لا يحمل معلومات تنسيق أو موضع؛ وVTT مصمم للويب، وهو الصيغة الوحيدة التي يقبلها وسم فيديو HTML5، وكونه مقروءاً لمحركات البحث ميزة إضافية؛ أما ASS فيقدم قوة في التنسيق والتموضع والحركة لكن دعمه أضيق. وأكثر المشكلات شيوعاً في الترجمات غير اللاتينية هي ترميز المحارف، وحلها إعادة حفظ الملف بترميز UTF-8. وفي انزياحات المزامنة يُعالَج الانزياح الثابت بإزاحة زمنية بسيطة، والانزياح المتزايد بتصحيح متناسب مع معدل الإطارات. أما الاختيار بين التضمين والحرق فقرار لا رجعة فيه: الحرق يعمل في كل مكان لكن نص الترجمة يضيع إلى الأبد.

الأسئلة الشائعة

يبدو SRT وVTT متطابقين تقريباً، فما الفرق الحقيقي؟

هما متشابهان بنيوياً إلى حد بعيد، لكن هناك ثلاثة فروق: ملف VTT يبدأ بسطر WEBVTT، ويستخدم النقطة بدل الفاصلة في الطوابع الزمنية (00:00:01.500)، ويدعم تلميحات التموضع والمحاذاة والتنسيق. والأهم أن وسم الفيديو في HTML5 لا يقبل إلا VTT — فلا يمكنك استخدام ملف SRT مباشرة في صفحة ويب.

لماذا يسبب ترميز المحارف كل هذه المشكلات؟

لأن ملفات الترجمة نص صِرف، والملفات النصية لا تصرّح من تلقاء نفسها بالترميز الذي حُفظت به. لذا يضطر البرنامج إلى افتراض ترميز ما عند فتح الملف. وكانت الترجمات بلغات مثل التركية تُحفظ سابقاً بترميز Windows-1254؛ فإذا قرأت أداة حديثة تفترض UTF-8 هذا الملف، تحولت الحروف الخاصة إلى محارف بلا معنى. والأمر نفسه ينطبق على النصوص العربية المحفوظة بترميز Windows-1256.

لماذا يؤثر معدل الإطارات في مزامنة الترجمة؟

لأن بعض صيغ الترجمة القديمة تخزّن الزمن برقم الإطار بدل الثواني. كما قد توجد نسخ من الفيلم نفسه بمعدلات إطارات مختلفة — السينما 24 إطاراً/ث، وتلفزيون PAL‏ 25 إطاراً/ث، وNTSC‏ 23.976 إطاراً/ث. فإذا شُغّلت ترجمة أُعدّت لـ 25 إطاراً/ث على فيديو بمعدل 23.976، تراكم خطأ صغير في كل ثانية حتى يبلغ الانزياح دقائق بعد ساعتين.

متى تحتاج إلى صيغة ASS؟

حين يلزم أن يتغير موضع الترجمة أو لونها أو خطها أو حركتها تبعاً للمحتوى. مثلاً وضع ترجمة لافتة ظاهرة على الشاشة بجوارها، أو تمييز المتحدثين المختلفين بألوان مختلفة، أو إبراز كلمات الأغاني بأسلوب الكاريوكي. ولا يستطيع SRT شيئاً من ذلك؛ إذ يظهر كل سطر بالتنسيق نفسه وفي الموضع نفسه.

جرّب ذلك الآن باستخدام Videoya Altyazı Ekle.

جرّب Videoya Altyazı Ekle