Μετατρέψτε SubRip (.srt) σε WebVTT
Κάντε ένα αρχείο .srt έγκυρο για το στοιχείο HTML5 <track> και τους σύγχρονους video players. Η κεφαλίδα WEBVTT προστίθεται, οι χρονοκωδικοί αναμορφοποιούνται, χωρίς τίποτα να μεταφορτωθεί για να γίνει αυτό.
Τα αρχεία σας δεν αγγίζουν ποτέ έναν διακομιστή. Κάθε μετατροπή σε αυτή τη σελίδα εκτελείται τοπικά στο πρόγραμμα περιήγησής σας μέσω του JavaScript FileReader API. Τίποτα δεν ανεβαίνει, δεν καταγράφεται ούτε αποθηκεύεται. Ασφαλές για εμπιστευτικές εγγραφές Zoom/Teams, αδημοσίευτο βίντεο και νομικές συνεντεύξεις.
Πώς λειτουργεί η μετατροπή SRT σε VTT
Αν έχετε προσπαθήσει ποτέ να βάλετε ένα αρχείο .srt απευθείας σε μια ετικέτα HTML5 <track kind="captions" src="captions.srt">, πιθανότατα έχετε ανακαλύψει ότι τα προγράμματα περιήγησης απλά το αγνοούν. Το στοιχείο <track> (και το εγγενές μενού υποτίτλων που κάθε σύγχρονο πρόγραμμα περιήγησης χτίζει γύρω του) καταλαβαίνει μόνο WebVTT. Το SubRip, παρότι είναι η πιο ευρέως υποστηριζόμενη μορφή ανάμεσα σε desktop players και editors, δεν αποτελεί καθόλου μέρος της προδιαγραφής HTML5.
Η διόρθωση είναι μηχανική αλλά απαιτεί ακρίβεια: το WebVTT απαιτεί μια γραμμή WEBVTT στην κορυφή του αρχείου, και ο διαχωριστής χιλιοστών του δευτερολέπτου σε κάθε χρονοκωδικό πρέπει να είναι τελεία αντί για το κόμμα του SRT (00:00:09,400 → 00:00:09.400). Αν κάνετε λάθος σε οποιαδήποτε από τις δύο λεπτομέρειες, το πρόγραμμα περιήγησης θα αποτύχει σιωπηλά να εμφανίσει υπότιτλους, χωρίς κανένα μήνυμα σφάλματος. Ο μετατροπέας του SubToolDesk αναλύει το SRT σας τοπικά, το ανασυνθέτει με έγκυρη κεφαλίδα και διορθωμένους χρονοκωδικούς, και αριθμεί εκ νέου τους υπότιτλους, όλα μέσα στην καρτέλα του προγράμματος περιήγησής σας.
Οδηγίες βήμα προς βήμα
- Σύρετε το αρχείο
.srtσας στον μετατροπέα παραπάνω, ή επικολλήστε το περιεχόμενό του στο αριστερό πλαίσιο. - Επιβεβαιώστε ότι η ετικέτα μορφής εντοπίζει SRT.
- Πατήστε Λήψη για να αποθηκεύσετε ένα έγκυρο αρχείο
.vtt, με όνομα που αντιστοιχεί στο αρχικό σας αρχείο. - Αναφερθείτε σε αυτό από ένα στοιχείο
<track>:<track kind="captions" src="/captions.vtt" srclang="el" label="Ελληνικά">.
Γιατί να μετατρέψετε SRT σε WebVTT
Ένα αρχείο .srt συγχρονίζεται μια χαρά σε έναν desktop editor, αλλά δεν κάνει τίποτα σε ένα πρόγραμμα περιήγησης. Η μετατροπή σε WebVTT σχετίζεται σχεδόν πάντα με έναν από αυτούς τους λόγους:
- Λόγος: Προσθέτετε υπότιτλους σε ένα αυτοφιλοξενούμενο στοιχείο
<video>και χρειάζεστε μια μορφή που πραγματικά καταλαβαίνει η ετικέτα HTML5<track>. - Λόγος: Καλύπτετε μια απαίτηση προσβασιμότητας (όπως το κριτήριο υποτίτλων του WCAG 2.1) και χρειάζεστε υπότιτλους σύμφωνους με το πρότυπο, όχι μια μορφή που τα προγράμματα περιήγησης αγνοούν σιωπηλά.
- Λόγος: Η πλατφόρμα βίντεο, το CMS ή η ενσωμάτωση screencast στον ιστότοπο τεκμηρίωσής σας δέχεται μόνο αρχεία
.vtt. - Λόγος: Λάβατε αρχεία
.srtαπό έναν editor, freelancer ή πάροχο υποτιτλισμού και χρειάζεται να δώσετε σε έναν developer κάτι έτοιμο να χρησιμοποιηθεί. - Λόγος: Μεταφέρετε μια βιβλιοθήκη βίντεο από μια πλατφόρμα που εξήγαγε SRT σε έναν προσαρμοσμένο player φτιαγμένο γύρω από τον εγγενή υποτιτλισμό του προγράμματος περιήγησης.
- Λόγος: Θέλετε τη διόρθωση χωρίς να εγκαταστήσετε το ffmpeg ή να γράψετε ένα εφάπαξ script μετατροπής για ένα μόνο αρχείο.
Πριν και μετά: ένα πραγματικό παράδειγμα
Ένα σύντομο αρχείο SRT με τρεις υπότιτλους, με χρονοκωδικούς με κόμμα και διαδοχικούς αριθμούς, μετατρεπόμενο με απενεργοποιημένα τα Αφαίρεση ετικετών ομιλητή και Αφαίρεση ετικετών μορφοποίησης (η προεπιλεγμένη κατάσταση σε αυτή τη σελίδα, αφού δεν χρειάζεται να αφαιρεθεί τίποτα για να προκύψει έγκυρο WebVTT):
1 00:00:01,200 --> 00:00:04,000 Καλώς ήρθατε και πάλι, σήμερα καλύπτουμε τα νούμερα του τρίτου τριμήνου. 2 00:00:04,300 --> 00:00:07,900 Ευχαριστώ για την πρόσκληση. Πάμε κατευθείαν στο θέμα. 3 00:00:08,100 --> 00:00:11,500 Τα έσοδα αυξήθηκαν κατά οκτώ τοις εκατό σε σχέση με πέρυσι.
WEBVTT 1 00:00:01.200 --> 00:00:04.000 Καλώς ήρθατε και πάλι, σήμερα καλύπτουμε τα νούμερα του τρίτου τριμήνου. 2 00:00:04.300 --> 00:00:07.900 Ευχαριστώ για την πρόσκληση. Πάμε κατευθείαν στο θέμα. 3 00:00:08.100 --> 00:00:11.500 Τα έσοδα αυξήθηκαν κατά οκτώ τοις εκατό σε σχέση με πέρυσι.
Το κείμενο των υποτίτλων, ο χρονισμός, και ακόμα οι αριθμοί υποτίτλων περνάνε αμετάβλητα. Μόνο η κεφαλίδα WEBVTT προστίθεται και κάθε κόμμα πριν τα χιλιοστά γίνεται τελεία, ακριβώς οι δύο αλλαγές που χρειάζεται ένα πρόγραμμα περιήγησης για να δεχτεί το αρχείο.
Πριν και μετά
Είσοδος SRT: 1 00:00:09,400 --> 00:00:12,900 Τα έσοδα αυξήθηκαν κατά οκτώ τοις εκατό. Έξοδος VTT: WEBVTT 1 00:00:09.400 --> 00:00:12.900 Τα έσοδα αυξήθηκαν κατά οκτώ τοις εκατό.
Γιατί αυτό έχει σημασία για τους web developers
Το προσβάσιμο, υποτιτλισμένο βίντεο είναι τόσο απαίτηση ευχρηστίας όσο και συμμόρφωσης για τους περισσότερους δημόσιους ιστότοπους (το κριτήριο επιτυχίας 1.2.2 του WCAG 2.1 απαιτεί υπότιτλους για προηχογραφημένα μέσα), και το στοιχείο <track> είναι ο βασισμένος σε πρότυπο τρόπος να τους παραδώσετε χωρίς πλατφόρμα βίντεο τρίτου μέρους. Αν η ροή επεξεργασίας σας (ή ένας freelancer) σας δίνει μόνο αρχεία .srt, η μετατροπή εδώ σας επαναφέρει σε ένα έτοιμο για χρήση αρχείο WebVTT σε δευτερόλεπτα, χωρίς εγκατάσταση ffmpeg ή συγγραφή script μετατροπής.
Επεξεργασία εκεί που είστε, όχι στους διακομιστές μας
Επειδή αυτό είναι αναμόρφωση απλού κειμένου, κανένα αρχείο βίντεο δεν αγγίζεται ή μεταφορτώνεται ποτέ, μόνο το κείμενο των υποτίτλων, και μόνο μέσα στη δική σας καρτέλα προγράμματος περιήγησης. Αυτό έχει εξίσου σημασία για ένα εσωτερικό demo βίντεο προϊόντος όσο και για μια δημόσια σελίδα μάρκετινγκ.
Χρήση του αποτελέσματος σε ένα στοιχείο <track>
Αφού κατεβάσετε το μετατρεμμένο αρχείο, προσθέστε το στη σήμανση <video> σας με ένα θυγατρικό στοιχείο <track>:
<video controls>
<source src="demo.mp4" type="video/mp4">
<track
kind="captions"
src="/captions.vtt"
srclang="el"
label="Ελληνικά"
default>
</video>Το χαρακτηριστικό default λέει στο πρόγραμμα περιήγησης να ενεργοποιήσει αυτό το track αυτόματα· αφαιρέστε το αν προσφέρετε πολλά γλωσσικά tracks και θέλετε ο θεατής να επιλέξει. Τα προγράμματα περιήγησης επικυρώνουν αυστηρά την κεφαλίδα WEBVTT: μια κεφαλίδα που λείπει ή είναι λανθασμένα γραμμένη είναι η πιο συχνή αιτία για την οποία οι υπότιτλοι σιωπηλά δεν εμφανίζονται, ακόμα και όταν το υπόλοιπο αρχείο είναι καλά διαμορφωμένο.
Για ποιον είναι φτιαγμένος αυτός ο μετατροπέας
Οι front-end και full-stack developers που προσθέτουν υπότιτλους σε έναν αυτοφιλοξενούμενο video player είναι το κύριο κοινό, αλλά και οι ομάδες παραγωγής βίντεο που παραδίδουν υλικό σε έναν developer το χρησιμοποιούν για να δώσουν κάτι εγγυημένο να λειτουργεί, αντί να αφήνουν τη μετατροπή μορφής ως ανοιχτή εργασία στα χέρια κάποιου άλλου. Είναι εξίσου χρήσιμο για ιστότοπους τεκμηρίωσης ανοιχτού κώδικα που ενσωματώνουν screencasts, ομάδες εσωτερικών εργαλείων που υποτιτλίζουν εκπαιδευτικά βίντεο για συμμόρφωση με την προσβασιμότητα, και όποιον μεταφέρει μια βιβλιοθήκη βίντεο από μια πλατφόρμα που εξήγαγε SRT σε έναν προσαρμοσμένο player που περιμένει εγγενή υποτιτλισμό προγράμματος περιήγησης.
Τι διατηρεί και τι αφαιρεί αυτός ο μετατροπέας
Διατηρούνται:
- Κάθε λέξη του κειμένου διαλόγου, ακριβώς όπως είναι γραμμένη, συμπεριλαμβανομένων τυχόν ορθογραφικών λαθών στο αρχικό αρχείο.
- Ο χρονισμός με ακρίβεια χιλιοστού του δευτερολέπτου για κάθε υπότιτλο, μεταφερόμενος ακριβώς.
- Ένα μπλοκ ανά υπότιτλο, στην αρχική σειρά, με τους αριθμούς υποτίτλων αριθμημένους εκ νέου διαδοχικά ξεκινώντας από το 1.
- Τυχόν προθέματα ομιλητή ή ενσωματωμένες ετικέτες στο κείμενο του υποτίτλου, εκτός αν ενεργοποιήσετε το Αφαίρεση ετικετών ομιλητή ή το Αφαίρεση ετικετών μορφοποίησης.
Αλλάζουν ή αφαιρούνται:
- Το κόμμα πριν τα χιλιοστά γίνεται τελεία σε κάθε χρονοκωδικό, αφού το WebVTT απαιτεί
00:00:04.000, όχι το00:00:04,000του SRT. - Μια γραμμή κεφαλίδας
WEBVTTπροστίθεται στην κορυφή του αρχείου, αφού το WebVTT την απαιτεί και το SRT δεν έχει καμία. - Προθέματα ομιλητή σε απλό κείμενο όπως
ΟΜΙΛΗΤΗΣ 1:, αλλά μόνο αν είναι ενεργό το Αφαίρεση ετικετών ομιλητή· παραμένουν στη θέση τους από προεπιλογή. - Ετικέτες μορφοποίησης όπως
<i>ή<b>, αλλά μόνο αν είναι ενεργό το Αφαίρεση ετικετών μορφοποίησης· παραμένουν στη θέση τους από προεπιλογή.
Συνήθη προβλήματα και πώς να τα λύσετε
- Το πρόγραμμα περιήγησης εξακολουθεί να μην εμφανίζει υπότιτλους μετά τη μετατροπή: ελέγξτε ότι η ετικέτα μορφής πάνω από τον μετατροπέα όντως διάβασε SRT πριν τη μετατροπή· μια άσχημα κομμένη επικόλληση μπορεί να χαλάσει την ανίχνευση υποτίτλων και να παράγει κενή ή κακοδιαμορφωμένη έξοδο.
- Οι ετικέτες
<i>ή<b>εξακολουθούν να εμφανίζονται ως απλό κείμενο στους υπότιτλους: αυτό αναμένεται, το Αφαίρεση ετικετών μορφοποίησης είναι απενεργοποιημένο από προεπιλογή σε αυτή τη σελίδα αφού το WebVTT υποστηρίζει αυτές τις ετικέτες εγγενώς· ενεργοποιήστε το μόνο αν θέλετε απλό κείμενο αντ' αυτού. - Ονόματα ομιλητή όπως
ΟΜΙΛΗΤΗΣ 1:μεταφέρονται κατευθείαν στην έξοδο VTT: ενεργοποιήστε το Αφαίρεση ετικετών ομιλητή αν προτιμάτε να μην υπάρχουν εκεί· διατηρούνται από προεπιλογή αφού αυτός ο μετατροπέας υποθέτει ότι θέλετε μια πιστή δομική αναμόρφωση, όχι επεξεργασία περιεχομένου. - Η έξοδος εξακολουθεί να δείχνει κόμμα αντί για τελεία πριν τα χιλιοστά: ελέγξτε ξανά ότι κατεβάσατε την πραγματική έξοδο
.vttκαι όχι ένα αντίγραφο του αρχικού αρχείου.srt· η ετικέτα μορφής και η ετικέτα εξόδου πάνω από τον μετατροπέα επιβεβαιώνουν ποιο από τα δύο βλέπετε. - Οι υπότιτλοι δεν εμφανίζονται ακόμα κι αν το αρχείο φαίνεται σωστό: ανοίξτε το αρχείο
.vttσε έναν επεξεργαστή κειμένου και επιβεβαιώστε ότι η πρώτη γραμμή είναι ακριβώςWEBVTTχωρίς τίποτα πριν από αυτή, ούτε byte-order-mark ούτε κενή γραμμή· τα προγράμματα περιήγησης απορρίπτουν σιωπηλά το αρχείο αν αυτή η γραμμή δεν είναι πρώτη. - Τονισμένα γράμματα ή μη λατινικό κείμενο μετατρέπονται σε παραμορφωμένους χαρακτήρες όπως
éστο μετατρεμμένο αρχείο: το αρχικό.srtδεν αποθηκεύτηκε ως UTF-8· εξάγετέ το ή αποθηκεύστέ το εκ νέου ως UTF-8 πριν τη μετατροπή, αφού το WebVTT, όπως και το SRT, υποθέτει κείμενο UTF-8.
Τι δεν αλλάζει στη μετατροπή
Το κείμενο διαλόγου και ο χρονισμός με ακρίβεια χιλιοστού του δευτερολέπτου μεταφέρονται ακριβώς όπως είναι γραμμένα. Αυτή είναι μια δομική αναμόρφωση, όχι μια επαναμεταγραφή. Αν το αρχικό SRT σας έχει ορθογραφικά λάθη, αυτά τα λάθη θα βρίσκονται και στην έξοδο VTT· αυτό το εργαλείο διορθώνει τη συμμόρφωση με τη μορφή, όχι την ακρίβεια του περιεχομένου. Αν θέλετε επίσης να καθαρίσετε ετικέτες ομιλητή ή ενσωματωμένες ετικέτες μορφοποίησης ενώ μετατρέπετε, οι διακόπτες Αφαίρεση Ετικετών Ομιλητή και Αφαίρεση Ετικετών Μορφοποίησης παραπάνω εφαρμόζονται στο κείμενο του υποτίτλου πριν ξαναγραφτεί σε σύνταξη WebVTT, ώστε να μπορείτε να συνδυάσετε τη μετατροπή μορφής με καθαρισμό περιεχομένου σε ένα πέρασμα αντί να τρέξετε δύο ξεχωριστά εργαλεία.
Συχνές Ερωτήσεις
Γιατί το πρόγραμμα περιήγησής μου απορρίπτει ένα αρχείο .srt σε ένα στοιχείο <track>;
Το στοιχείο HTML5 <track> απαιτεί συγκεκριμένα WebVTT. Τα προγράμματα περιήγησης δεν αναλύουν εγγενώς το SRT για υποτιτλισμό βίντεο. Η μετατροπή σε .vtt είναι απαραίτητη για να χρησιμοποιήσετε καθόλου το εγγενές API υποτίτλων.
Τι ακριβώς προσθέτει ο μετατροπέας για να γίνει έγκυρο WebVTT;
Προσθέτει στην αρχή την απαιτούμενη γραμμή κεφαλίδας WEBVTT, αλλάζει τον διαχωριστή χιλιοστών του δευτερολέπτου κάθε χρονοκωδικού από κόμμα σε τελεία, και αριθμεί εκ νέου τα αναγνωριστικά υποτίτλων: τα τρία πράγματα που λείπουν από το SRT για να δεχτεί το αρχείο ένα πρόγραμμα περιήγησης.
Μπορώ να προσθέσω τοποθέτηση ή στυλ υποτίτλου μετά τη μετατροπή;
Ναι, αυτό το εργαλείο παράγει καθαρή, σύμφωνη με το πρότυπο έξοδο κειμένου WebVTT, την οποία μπορείτε να επεξεργαστείτε περαιτέρω με το χέρι για να προσθέσετε ρυθμίσεις υποτίτλου (όπως align ή position) ή ετικέτες φωνής <v> στη συνέχεια, αφού η βασική δομή είναι ήδη έγκυρη.
Θα παραμείνουν οι υπότιτλοι συγχρονισμένοι σωστά μετά τη μετατροπή;
Ναι, ο χρονισμός διατηρείται με ακρίβεια χιλιοστού του δευτερολέπτου, αλλάζει μόνο ο χαρακτήρας διαχωρισμού και η κεφαλίδα, ποτέ οι πραγματικές τιμές χρόνου.
Λειτουργεί αυτό για υπότιτλους που έχουν εξαχθεί από το Premiere ή το DaVinci Resolve;
Ναι. Και τα δύο εξάγουν τυπικό SRT, το οποίο αυτός ο αναλυτής διαβάζει εγγενώς ανεξάρτητα από το ποιο λογισμικό το δημιούργησε.
Υποστηρίζει κάποιο πρόγραμμα περιήγησης το .srt απευθείας, παρότι δεν συμφωνεί με το πρότυπο;
Το Chrome και το Firefox έχουν προσθέσει μη τυπική υποστήριξη για SRT μέσω του API TextTrack, αλλά είναι ασυνεπής και δεν είναι εγγυημένη σε όλα τα προγράμματα περιήγησης ή τις εκδόσεις. Η προδιαγραφή HTML5 απαιτεί μόνο WebVTT, οπότε η μετατροπή σε .vtt είναι ο μόνος τρόπος να εξασφαλίσετε ότι οι υπότιτλοι θα εμφανίζονται παντού.