כתוביות WebVTT (.vtt)
W3C תקןWeb Video Text Tracks (WebVTT) הוא תקן הרשת הרשמי של W3C לכתוביות, לתמלול דיבור ולתיאורי פרקים, המשולב באופן מובנה ברכיבי הווידאו של HTML5 (<track>) ובהזרמת וידאו חיה מודרנית (HLS).
המר SRT ל-VTT
ממיר חינמי מ-SRT ל-VTT פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי WebVTT על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי WebVTT על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
57 45 42 56 54 54ייצוג ASCII: WEBVTT
תקינה: W3C WebVTT Recommendation
מפרט טכני
| מבנה המכולה | קובץ טקסט UTF-8 שמתחיל בחתימה 'WEBVTT', ולאחריה יכולים להופיע בלוקים אופציונליים של STYLE ו-NOTE ובלוקי רמזים עוקבים |
| דחיסה | טקסט פשוט לא דחוס (נדחס בדרך כלל בהעברה ב-HTTP באמצעות Gzip או Brotli) |
| סדר בתים (Endianness) | זרם טקסט UTF-8 |
| מרחבי צבע | תמיכה מלאה ב-CSS Color Module Level 4 בסגנונות של רמזים |
| ערוצים ומבנה | קטעי כתוביות מתוזמנים, רמת ביטחון בזיהוי דיבור, עיצוב CSS והגדרות מיקום על המסך |
| ממדים מרביים | מספר רמזים רצופים ללא מגבלה קבועה |
| שקיפות | אטימות CSS ושקיפות אלפא מלאות נתמכות באמצעות פסאודו-האלמנט '::cue' |
| הזרמה ופרוגרסיביות | הזרמה מובנית ברכיבי <video> של HTML5 ובמניפסטים של וידאו חי HLS / DASH |
מטריצת השוואה טכנית: WebVTT מול מתחרים
| תכונה טכנית | WebVTT (נוכחי) | SRT | ASS | SUB |
|---|---|---|---|---|
| שילוב רשת ב-HTML5 | תקן טבעי ב-100% (<track>) | דורש המרת JS | דורש WebAssembly | דורש המרה |
| עיצוב CSS | עיצוב CSS טבעי מלא (::cue) | תגי HTML בסיסיים בלבד | תגי עקיפה קנייניים | אין |
| הזרמת HLS / DASH | משמש בחלק מתהליכי ההזרמה; התמיכה משתנה | נתמך באמצעות ריבוב (muxing) | תמיכה מוגבלת בהזרמה | אין |
| דרישת כותרת | מחרוזת קסם נוקשה 'WEBVTT' בשורה 1 | אין צורך בכותרת | סעיף [Script Info] | אין צורך בכותרת |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
שגיאת קונסולת דפדפן: 'Malformed WebVTT file: Missing WEBVTT signature'.
גורם שורש: מחרוזת 'WEBVTT' חסרה בשורה 1, או שורות ריקות לפני כותרת.
שחזור: הוסף 'WEBVTT\n\n' בראש הקובץ באמצעות ממיר הכתוביות של File2File.app.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מנתחי WebVTT בדפדפני אינטרנט מעבדים קטעי טקסט לא מהימנים העלולים להוביל להתקפות Cross-Site Scripting (XSS) אם הם מרונדרים ללא חיטוי בתוך ה-DOM.
ווקטורי תקיפה ידועים
- הזרקת XSS באמצעות תכולת קטעי HTML לא מחוטאים המוחדרת ל-DOM של נגן הווידאו ברשת.
- זיוף בקשות בצד שרת (SSRF) במהלך יצירה אוטומטית בצד שרת של תמונות ממוזערות לכתוביות.
- מניעת שירות באמצעות בוררי קטעי CSS מעוותים.
שיטות מומלצות להגנה: הסתמך על רינדור <track> המקורי בדפדפן וטהר את תוכן הכתוביות לפני הוספה ידנית ל-DOM.
היסטוריה ואבני דרך
יתרונות מרכזיים
- רכיב ה-HTML <track> משתמש ב-WebVTT לכתוביות ולכיתובים. הדפדפנים מציגים את תזמון הקטעים ואת הסגנון דרך נגן הווידאו, עם הבדלים מסוימים בתכונות הנתמכות.
- תמיכה עשירה בעיצוב CSS: התאמה אישית של צבעים, גופנים, רקעים ומיקומים באמצעות פסאודו-אלמנט ה-CSS הטבעי '::cue'.
- שירותי HLS ו-MPEG-DASH יכולים להעביר רצועות כתוביות של WebVTT לצד מקטעי הווידאו. בדוק שנגן היעד תומך באריזת הכתוביות ברשימת ההשמעה וברצועות השפה.
מגבלות טכניות וחסרונות
- דרישת כותרת נוקשה: הקובץ חייב להתחיל בטקסט המדויק 'WEBVTT' בשורה הראשונה ממש, אחרת דפדפנים דוחים אותו.
- מפריד מילישניות בנקודה ('00:01:20.500') דורש המרה מקבצי SRT ישנים המופרדים בפסיקים.
- נגני חומרה ישנים שאינם דפדפנים (כמו תיבות מדיה זולות מבוססות USB) חסרים לעיתים קרובות תמיכה טבעית ב-WebVTT.
עובדות טכניות מעניינות
- כל קובץ WebVTT תקף חייב להתחיל במילה המדויקת 'WEBVTT' בשורה הראשונה; כל דבר אחר גורם לדפדפנים להתעלם מהקובץ.
- WebVTT נקרא במקור 'WebSRT' משום שהוא תוכנן במכוון להיראות כמעט זהה לכתוביות SRT קלאסיות.
- WebVTT יכול לשמש גם עבור פרקי וידאו וטיפים אינטראקטיביים של תמונות ממוזערות בעת מעבר עכבר מעל סרגלי גלילת וידאו.
שאלות טכניות נפוצות
למה משמש WebVTT?
WebVTT הוא פורמט תקן האינטרנט הרשמי להוספת כתוביות, כתוביות סגורות (captions), פרקים ותיאורים לאלמנטי <video> של HTML5 באתרי אינטרנט.
איך אני יכול להמיר כתובית SRT ל-WebVTT?
אתה יכול להמיר קבצי SRT לקבצי WebVTT נקיים בלחיצה אחת באמצעות File2File.app ישירות בדפדפן שלך.
למה כתוביות ה-WebVTT שלי אינן מוצגות בדפדפן?
ודא שהקובץ שלך מתחיל ב-'WEBVTT' בשורה 1, שיש אחריו שורה ריקה, וששרת האינטרנט שלך מגיש אותו עם הכותרת 'Content-Type: text/vtt'.