Najważniejsze informacje
Plik SRT (SubRip Subtitle, rozszerzenie
.srt) to plik tekstowy z napisami: ponumerowane bloki, z których każdy ma czas początku i końca zapisany jakogodziny:minuty:sekundy,milisekundyoraz tekst do wyświetlenia. Nie zawiera ani obrazu, ani dźwięku, otwiera się w dowolnym edytorze tekstu i jest akceptowany przez prawie każdy odtwarzacz i platformę wideo. Możesz napisać go ręcznie, wygenerować ze zwykłego tekstu albo wyeksportować z transkrypcji, a przed wysłaniem sprawdzić walidatorem.
Jeśli kiedykolwiek włączałeś napisy w odtwarzaczu wideo, jest spora szansa, że pracował za to plik SRT. To jeden z najstarszych formatów napisów wciąż używanych na co dzień i jeden z najprostszych formatów plików w ogóle, i właśnie dlatego jest wszędzie.
Ta strona omawia cały format w jednym miejscu: co jest w środku pliku, dokładne zasady dla każdej części wraz z podstawowymi źródłami, jak utworzyć i naprawić taki plik oraz czym różni się od WebVTT.
Jak wygląda plik SRT w środku?
Plik SRT to lista napisów, a każdy napis ma te same cztery części: numer kolejny, linię czasu, jedną lub dwie linie tekstu i pustą linię. Otwórz dowolny plik .srt w Notatniku lub TextEdit, a zobaczysz bloki takie jak te:
1
00:00:01,600 --> 00:00:04,200
Witaj ponownie na kanale.
2
00:00:04,400 --> 00:00:07,900
Dziś zobaczymy, jak naprawdę
działają pliki z napisami.
3
00:00:08,100 --> 00:00:10,000
<i>(drzwi się zamykają)</i>Czytając od góry do dołu, drugi napis mówi: pokaż te dwie linie od 4,4 sekundy do 7,9 sekundy filmu. Nie ma nagłówków, sekcji stylów ani danych binarnych, więc plik pozostaje mały i przeżywa otwieranie, edycję i zapisywanie w prawie każdym programie.
Jakie są zasady formatu SRT?
Najbliższymi odpowiednikami specyfikacji SubRip są opisy prowadzone przez archiwa i formaty kontenerów. Opis formatu w Library of Congress podaje kod czasowy jako godziny:minuty:sekundy,milisekundy, zapisany 00:00:00,000, ze strzałką --> między początkiem a końcem, a dokumentacja napisów Matroska opisuje ten sam czteroczęściowy blok.
| Część | Reguła | Przykład |
|---|---|---|
| Numer kolejny | Liczba całkowita w osobnej linii, zaczynająca się od 1 i rosnąca | 2 |
| Linia czasu | Początek i koniec jako godziny:minuty:sekundy,milisekundy, oddzielone --> ze spacją po każdej stronie | 00:00:04,400 --> 00:00:07,900 |
| Separator milisekund | Przecinek, a nie kropka; kropka należy do WebVTT | ,400 |
| Tekst | Jedna lub więcej linii wyświetlanych razem; podział wiersza w pliku jest podziałem wiersza na ekranie | Dziś zobaczymy, jak naprawdę |
| Pusta linia | Kończy napis; następny numer zaczyna kolejny | (pusta linia) |
| Formatowanie | Proste znaczniki, takie jak <i>, <b> i <u>, respektowane przez wiele odtwarzaczy, a ignorowane przez inne | <i>(drzwi się zamykają)</i> |
Dwa szczegóły psują więcej plików niż wszystko inne razem wzięte. Pierwszy to przecinek: linia czasu zapisana z kropkami, 00:00:04.400, to nawyk z WebVTT, a niektóre narzędzia odrzucają ją w SRT. Drugi to pusta linia: napis bez pustej linii zlewa się z następnym, a odtwarzacz albo je scala, albo gubi jeden z nich.
Kodowanie
Zapisuj pliki SRT jako UTF-8. Obejmuje każde pismo, od łacińskich liter z akcentami po arabski, chiński i emoji, i tego oczekują obecne odtwarzacze. Pliki ze starszych narzędzi dla Windows bywają w regionalnym starym kodowaniu, dlatego litery z akcentami zamieniają się w znaki zapytania lub ciągi dziwnych symboli. Ponowny zapis pliku jako UTF-8 w edytorze tekstu to naprawia. Niektóre programy dodają też niewidoczny znacznik kolejności bajtów na początku pliku UTF-8; większość odtwarzaczy go ignoruje, ale jeśli restrykcyjne narzędzie odrzuca pierwszy napis, pierwszą rzeczą do wypróbowania jest zapis jako UTF-8 bez tego znacznika.
Długość wiersza to zasada czytelności, nie formatu
Sam format nie ogranicza długości wiersza; robią to przewodniki stylu. Opis Library of Congress wspomina o limicie 32 znaków na wiersz, BBC Subtitle Guidelines ustalają 37 znaków dla telewizji, a Netflix English (USA) Timed Text Style Guide dopuszcza 42 znaki w wierszu i najwyżej dwa wiersze. Odtwarzacz i tak pokaże dłuższy wiersz, zwykle go zawijając, więc limit dotyczy tego, czy ludzie zdążą przeczytać napis, co mierzy kontrola szybkości czytania w naszym walidatorze SRT względem wybranego przewodnika.
Do czego służą pliki SRT?
- Platformy wideo: prześlij SRT razem z filmem, a widzowie dostaną napisy, które mogą włączyć.
- Odtwarzacze na komputerze i w telewizorze: VLC i wiele innych odtwarzaczy wczytuje plik SRT leżący obok pliku wideo i mający tę samą nazwę.
- Tłumaczenie: tłumacze zastępują linie tekstu i zostawiają czas bez zmian, tworząc jeden SRT na język.
- Programy do montażu: popularne edytory wideo importują SRT jako ścieżkę napisów.
- Dostępność: napisy dla osób niesłyszących i słabosłyszących, z opisami dźwięków w nawiasach i nazwami mówców, mieszczą się w liniach tekstu zwykłego SRT.
Jak utworzyć plik SRT?
Automatycznie z filmu
W przypadku filmu z YouTube wklej link do narzędzia transkrypcji YouTube i naciśnij SRT na stronie transkrypcji: czas pochodzi z własnych napisów filmu. Dla własnych nagrań i plików aplikacja SozAI transkrybuje dźwięk w 99 językach i eksportuje napisy.
Z tekstu, który już masz
Jeśli masz scenariusz lub transkrypcję jako zwykły tekst, darmowy generator TXT do SRT zamienia każdy akapit w napis i nadaje mu czas trwania na podstawie długości, przy 150 słowach na minutę, nie krótszy niż 2 sekundy i nie dłuższy niż 8. Najpierw podziel długie akapity: napis z ponad 20 słowami trafia w limit 8 sekund i wychodzi zbyt szybki do czytania. Działa w przeglądarce i nic nie jest przesyłane.
Ręcznie
Dla krótkiego klipu napisanie SRT w edytorze tekstu jest zupełnie rozsądne: trzymaj się czteroczęściowego bloku, zapisz jako subtitles.srt w UTF-8 i gotowe. Przy filmie dłuższym niż minuta lub dwie ręczne ustalanie czasu staje się żmudne, a jedna z dwóch powyższych dróg jest szybsza.
Dlaczego mój plik SRT nie działa?
| Problem | Zwykła przyczyna | Rozwiązanie |
|---|---|---|
| Napisy w ogóle się nie wyświetlają | Złe rozszerzenie, złe kodowanie lub uszkodzona linia czasu | Przepuść plik przez walidator SRT, który wskaże uszkodzony blok |
| Napisy są za wcześnie lub za późno o tę samą wartość | Film ma wstęp lub cięcie, o którym plik nie wie | Przesuń wszystkie kody czasowe naraz za pomocą narzędzia do przesuwania czasu napisów |
| Napisy rozjeżdżają się coraz bardziej w trakcie odtwarzania | Plik był zsynchronizowany dla innej liczby klatek na sekundę, na przykład 23.976 zamiast 25 | Zobacz dlaczego napisy tracą synchronizację |
| Litery z akcentami są zniekształcone | Zapisano w starym kodowaniu | Zapisz ponownie jako UTF-8 |
| Platforma odrzuca plik | Oczekuje WebVTT | Przekonwertuj za pomocą konwertera VTT i SRT |
Czym SRT różni się od WebVTT i kodu czasowego opartego na klatkach?
WebVTT (.vtt) to format W3C używany przez odtwarzacze wideo HTML5. Specyfikacja W3C WebVTT zapisuje milisekundy po kropce trzema cyframi i czyni godziny opcjonalnymi, a plik zaczyna się od linii nagłówka WEBVTT; dodaje też pozycjonowanie i stylizację, których SRT nie ma. Czas jest tym samym momentem zapisanym inaczej, więc konwersja z jednego na drugi to kwestia interpunkcji i nagłówków, omówiona dokładniej w VTT a SRT.
Edytory wideo liczą czas w klatkach, a nie w milisekundach, jako kod czasowy SMPTE, HH:MM:SS:FF. SRT przechowuje czas rzeczywisty, więc gdy napisy powstają z kodu czasowego montażu, wynik zależy od liczby klatek na sekundę: przy 29.97 klatki na sekundę godzina kodu non-drop jest o 3,6 sekundy dłuższa w czasie rzeczywistym, niż mówi etykieta. Nasz konwerter kodów czasowych zamienia kod SMPTE, także drop-frame, na znaczniki czasu SRT i z powrotem.
Jeśli potrzebujesz samych słów bez żadnego czasu, narzędzie Napisy na tekst usuwa numery i kody czasowe z SRT lub VTT i zostawia czytelne akapity.

