Dodawanie / wyodrębnianie napisów

Dodawanie lub wyodrębnianie napisów online — dodaj napisy do wideo na dwa sposoby: miękkie osadzenie (dodaje napisy jako osobną ścieżkę wewnątrz pliku MKV, dzięki czemu odtwarzacze mogą je włączać i wyłączać) albo twarde wypalenie (renderuje napisy w pikselach wideo WebM, na stałe). Można też wyodrębnić osadzone ścieżki napisów z plików MKV/MP4/WebM i pobrać je jako SRT, WebVTT lub ASS. Całe przetwarzanie odbywa się lokalnie w przeglądarce, więc pliki nigdy nie są wysyłane na żaden serwer, a prywatność jest w pełni zachowana.
Obsługiwane wejście: wideo używające otwartych kodeków wolnych od opłat licencyjnych, np. VP8/VP9/AV1/MPEG-4/FFV1 (kontenery WebM, MKV, MP4, MOV, AVI). Pliki napisów w formacie SRT / WebVTT / ASS (UTF-8 lub GBK). Miękkie osadzanie daje MKV; twarde wypalanie daje WebM (VP8 + Vorbis).
Pierwsze użycie ładuje do bieżącej przeglądarki silnik przetwarzania wideo (ok. 30 MB). Jest on zapisywany w pamięci podręcznej i używany ponownie, więc prosimy o cierpliwość.
🎥
Kliknij lub przeciągnij tutaj wideo (WebM / MKV / MP4 / MOV / AVI)
📝
Kliknij lub przeciągnij tutaj plik napisów (SRT / VTT / ASS)

Opcje

Napisy miękkie a twarde: osadzone czy wypalone?

Napisy mogą żyć w wideo dokładnie na dwa sposoby i od tego, który z nich się ma, zależą wszystkie decyzje w procesie. Napisy miękkie to ścieżka tekstowa przechowywana obok strumienia wideo — klatki są nietknięte, a odtwarzacz renderuje tekst podczas odtwarzania. Napisy twarde są namalowane w pikselach podczas kodowania: litery są częścią obrazu, na zawsze. Miękkie napisy można wyłączyć, przełączać między językami, zmieniać ich styl i wyodrębnić jako tekst; twarde odtwarzają się identycznie na dosłownie wszystkim, co odtwarza wideo, kosztem trwałości. Jedne są danymi obok obrazu, drugie są obrazem.

Pięć faktów, na których opiera się reszta strony:
• miękkie = ścieżka tekstowa zapisana w kontenerze (SRT/VTT/ASS); twarde = napisy wypalone w klatkach
• miękkie osadzanie to remux — sekundy, zero utraty jakości; twarde wypalanie to przekodowanie — każda klatka jest renderowana i kompresowana na nowo
• miękkie napisy ważą kilobajty; twarde nie zwiększają rozmiaru, ale nie da się ich usunąć
• wyodrębnianie działa na napisach miękkich (to tekst); wypalony tekst to piksele — to wymaga OCR i jakość nigdy nie jest gwarantowana
• znaczniki czasu SRT mają postać HH:MM:SS,mmm — np. 00:01:22,480 → 00:01:25,120 to linia o długości 2640 ms
Miękkie osadzanie: dodanie ścieżki tekstowej

Miękkie osadzanie zapisuje plik napisów do kontenera jako dodatkową ścieżkę, obok ścieżek wideo i dźwięku — sam strumień wideo jest kopiowany bajt po bajcie. Dlatego kończy się w sekundach i niczego nie traci: to ta sama operacja „remux”, co zmiana kontenera (zob. stronę MP4, podstawy kontenerów). Haczyk to obsługa: kontener musi przyjmować ścieżki napisów (MKV i MP4 tak; niektóre urządzenia i tak je ignorują), a odtwarzacz musi je renderować — telewizory Smart TV i wbudowane odtwarzacze w telefonach są notorycznie niespójne, dlatego twarde wypalanie wciąż istnieje.

Twarde wypalanie: malowanie tekstu w klatkach

Wypalanie napisów renderuje każdą klatkę wideo z tekstem nałożonym na wierzch, a następnie kompresuje wynik na nowo — to pełne przekodowanie ze wszystkim, co z tego wynika: trwa tyle co kodowanie, a każda klatka przechodzi przez drugą generację kompresji. Czcionki są wbudowane (bez niespodzianek „brakującej czcionki” na komputerze odbiorcy), pozycjonowanie i styl są dokładne, a zgodność odtwarzania jest pełna, bo wynik to zwykłe wideo. Kompromisem jest ostateczność: tekst jest nierozłączny z obrazem, a poprawienie literówki oznacza ponowne przekodowanie od oryginalnego źródła.

SRT, VTT i ASS: trzy formaty napisów

SRT (SubRip) to uniwersalne minimum: ponumerowane wiersze, znaczniki czasu początku → końca, zwykły tekst. Każdy odtwarzacz na świecie go czyta. VTT (WebVTT) to jego rodzimy odpowiednik dla sieci — ta sama idea, milisekundy oddzielone . zamiast ,, plus punkty zaczepienia dla stylów i pozycjonowania, z których korzysta element <track> w HTML5. ASS (Advanced SubStation Alpha) to format entuzjastów: czcionki, kolory, obrysy, obrót, animacja znak po znaku — format stojący za stylizowanymi napisami do anime — i to właśnie dlatego MKV może dołączyć w pliku czcionki potrzebne ścieżce (zob. stronę MKV). Wypalanie stylizacji ASS wymaga, by czcionki były dostępne w chwili kodowania; odtwarzanie jej jako miękkiej wymaga ich w chwili odtwarzania.

Wyodrębnianie: dlaczego naprawdę działa tylko przy napisach miękkich

Wyodrębnienie miękkiej ścieżki napisów to wypakowanie tekstu z kontenera — idealnie, bo tak został zapisany. Odzyskiwanie napisów z wideo z wypalonymi napisami to problem wizji komputerowej (OCR na każdej klatce, zgadywanie, gdzie jest obszar tekstu, czyszczenie tła za literami); działa sensownie na czystym, statycznym tekście i szybko się psuje przy stylizowanych czcionkach, ruchu i ziarnie. Jeśli później potrzebny będzie tekst, zachowaj (albo zamów) wersję miękką.

Typowe nieporozumienia
  • „Napisy dołączone do pliku zawsze można wyłączyć.” Tylko miękkie. Jeśli nie da się ich wyłączyć, są wypalone w pikselach i żaden odtwarzacz ich nie usunie.
  • „Osadzanie napisów przekodowuje wideo.” Miękkie osadzanie to remux — natychmiastowe i bezstratne. Przekodowuje tylko twarde wypalanie.
  • „Pliki z napisami znacznie powiększają wideo.” Miękka ścieżka to tekst: napisy całego filmu to od kilkudziesięciu do kilkuset kilobajtów, czyli ułamek megabajtów wideo.
  • „Twarde wypalanie jest po prostu bezpieczniejsze, więc zawsze wypalaj.” Jest bezpieczniejsze pod kątem zgodności odtwarzania, ale na stałe gorsze do późniejszej edycji, tłumaczenia i dostępności. Wypalaj przy dystrybucji na nieznane urządzenia; osadzaj, gdy tekst ma pozostać danymi.

Powiązane narzędzia: Konwerter SRT/VTT/ASS do przenoszenia tekstu napisów między trzema formatami, Mowa na napisy, aby wygenerować plik napisów z dźwięku, Wideo na MKV dla kontenera z najlepszą obsługą wielościeżkowych napisów, oraz Wideo na MP4 dla podstaw remuxu.