Jak wypalić napisy w wideo (bez wysyłania go nigdzie)
Wypalanie napisów w wideo na własnym komputerze: cztery metody porównane, sprawdzone komendy FFmpeg i jak uniknąć spadku jakości przy ponownym kodowaniu.
Wypalanie napisów w wideo znaczy rysowanie tekstu prosto w obrazie i kodowanie na nowo, więc napisy podróżują z plikiem jako piksele. Potrzebujesz tego dla TikToka, Reels i Shorts, które w ogóle nie przyjmują plików z napisami, i zawsze wtedy, gdy napisy są częścią projektu, a nie tylko opcją dostępności.
Nie musisz niczego wysyłać, żeby to zrobić. FFmpeg robi to jedną komendą, HandBrake i Subtitle Edit — z poziomu okna, a desktopowa aplikacja do napisów, taka jak Sablate, najpierw tworzy jeszcze same napisy. Wszystkie działają na twoim komputerze, bez limitu rozmiaru pliku i bez czekania na wysyłkę.
Poniżej: kiedy narzędzie online nadal jest dobrym wyborem, cztery sposoby wypalania napisów, jak to zrobić bez linii komend, co zmienia się przy długich nagraniach i dwie rzeczy, które faktycznie szkodzą jakości.
Narzędzie online czy offline: które wybrać?
Większość wyszukiwań na ten temat trafia najpierw na edytor w przeglądarce i przy krótkim klipie to w porządku. Różnica wychodzi przy długości, rozmiarze pliku i prywatności.
| Edytor online | Offline (FFmpeg, HandBrake, aplikacja desktopowa) | |
|---|---|---|
| Twoje wideo jest wysyłane | Tak, cały plik | Nie |
| Rozmiar pliku | Ograniczony planem | Ogranicza go tylko dysk |
| Długie nagrania | Czas wysyłki rośnie z długością | Czas zajmuje tylko kodowanie |
| Materiał poufny | Opuszcza twój komputer | Zostaje na nim |
| Wymaga instalacji | Nie | Tak |
| Tworzy też napisy | Zwykle tak | Aplikacje desktopowe tak, FFmpeg i HandBrake nie |
Limity są realne, a w darmowych planach niskie. Zasady przechowywania plików w Kapwing pozwalają na przykład na 250 MB na plik w planie darmowym i 6 GB w płatnych. Przy typowym bitrate 1080p około 8 Mbps 250 MB mieści nieco ponad cztery minuty wideo.
Edytora online używaj więc wtedy, gdy klip jest krótki, nic w nim nie jest poufne, a na komputerze przed tobą nie możesz instalować oprogramowania. Przy wszystkim dłuższym niż kilka minut, przy materiale klientów lub firmowym i przy wsadzie plików wypalaj lokalnie. Porównanie generatorów napisów offline opisuje aplikacje desktopowe, które też tworzą napisy.
Kiedy wypalanie jest dobrym wyborem
| Wypalone (hardsub) | Plik lub ścieżka z napisami (softsub) | |
|---|---|---|
| Widz może to wyłączyć | Nie | Tak |
| Działa na TikToku, Reels, Shorts | Tak | Nie, brak wsparcia |
| Działa na YouTube, Vimeo | Tak | Tak, i można w tym szukać |
| Liczy się do zgodności z dostępnością | Zwykle nie | Tak |
| Indeksowane przez wyszukiwarki | Nie | Tak |
| Poprawa literówki później | Ponowny render wideo | Edycja pliku tekstowego |
| Wiele języków w jednym pliku | Nie, jeden render na język | Tak, jedna ścieżka na język |
| Stylizacja zachowana dokładnie | Tak | Tylko w ścieżkach ASS |
Praktyczna odpowiedź dla większości osób to obie metody naraz: wypalaj dla wertykalnych platform społecznościowych, gdzie nic innego nie działa, i wysyłaj plik z napisami wszędzie, gdzie taki plik jest odczytywany, bo plik można przeszukać, przełączyć i poprawić. Jeśli chcesz obu wyników z jednego zadania, dostawa w wielu językach opisuje, jak oba wyniki powstają z tej samej osi czasu.
Cztery sposoby wypalania napisów
| FFmpeg | HandBrake | Narzędzia w przeglądarce | Desktopowe aplikacje do napisów | |
|---|---|---|---|---|
| Cena | Darmowe | Darmowe | Darmowy poziom, potem subskrypcja | Jednorazowo albo subskrypcja |
| Wysyła twoje wideo | Nie | Nie | Tak, cały plik | Nie |
| Limit rozmiaru / długości pliku | Brak | Brak | Tak, zwykle ścisły | Brak |
| Tworzy napisy | Nie | Nie | Tak | Tak |
| Kontrola stylizacji | Przez ASS albo force_style | Ograniczona | Szablony | Pełna, z podglądem na żywo |
| Krzywa uczenia | Linia komend | Umiarkowana | Brak | Niska |
Dwie szczere uwagi. FFmpeg i HandBrake są w tym darmowe i świetne, a jeśli masz już gotowy plik z napisami, FFmpeg to jedna komenda — nie ma powodu, żeby za coś płacić. Czego żadne z nich nie robi, to tworzenie napisów: wypalają plik, który już masz, zaczasowany i poprawiony gdzie indziej. Narzędzia w przeglądarce faktycznie je tworzą, ale wysyłka pliku nie jest opcjonalna, co wyklucza je dla materiału poufnego i dla wszystkiego dłuższego niż ich limit.
Wypalanie napisów w FFmpeg
Dla zwykłego SRT:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4
Dla stylizowanego pliku ASS użyj filtra ass, żeby stylizacja została zachowana, a nie spłaszczona:
ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:a copy output.mp4
Aby jawnie kontrolować jakość, zamiast przyjmować wartość domyślną:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" \
-c:v libx264 -crf 18 -preset slow -c:a copy output.mp4
Aby zmienić styl SRT bez konwertowania go najpierw:
ffmpeg -i input.mp4 \
-vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,Outline=2'" \
-c:a copy output.mp4
Pułapka Windows. Ścieżkę wewnątrz filtra parsuje filtr, nie shell, więc dwukropek litery dysku i backslashe trzeba escapować. To najczęstsza przyczyna błędu „plik nie znaleziony” dla komendy, mimo że plik ewidentnie istnieje:
ffmpeg -i input.mp4 -vf "subtitles='C\:/Videos/subs.srt'" -c:a copy output.mp4
Trzymaj plik z napisami w katalogu roboczym i zawsze, kiedy możesz, podawaj samą nazwę pliku — to całkowicie omija ten problem.
Wypalanie napisów bez linii komend
Jeśli terminal to nie twoja bajka, to samo z poziomu okna zrobią trzy rodzaje narzędzi. Dwa pierwsze są darmowe i wypalają plik z napisami, który już masz; trzecie plik także tworzy.
HandBrake
HandBrake to darmowy konwerter wideo dla systemów Windows, Mac i Linux. Otwórz wideo, przejdź na kartę Subtitles, przez Tracks dodaj zewnętrzny plik SRT, ustaw dla tej ścieżki wypalanie w wideo i uruchom kodowanie. Warto znać dwa ograniczenia: dokumentacja HandBrake zaznacza, że MP4 może zawierać tylko jedną wypaloną ścieżkę, a stylizacja ogranicza się do tego, co niesie zwykły SRT.
Subtitle Edit
Subtitle Edit, darmowy edytor napisów, ma w menu Video eksport z wypalonymi napisami, który uruchamia FFmpeg za ciebie, a jeśli FFmpeg brakuje, proponuje jego pobranie. To naturalny wybór, gdy i tak poprawiasz tam czasowanie.
Desktopowa aplikacja do napisów
Jeśli nie masz jeszcze poprawionego pliku z napisami, wypalanie jest ostatnim krokiem dłuższego zadania: transkrybuj, popraw, stylizuj, renderuj. Sablate robi to od początku do końca na twoim komputerze — lokalną transkrypcję Whisperem, edytor z retimowaniem na osi czasu i ostrzeżeniami o prędkości czytania, 13 presetów napisów i wypalanie, które zgadza się z podglądem. Jeśli montujesz w DaVinci Resolve, darmowa wersja potrafi zamiast tego zaimportować SRT i wypalić go przy eksporcie.
Wypalanie jest dostępne w planie Darmowym, z małym oznaczeniem w rogu, dla wideo do 10 minut. Pro usuwa oznaczenie i limit długości oraz dodaje eksport .ass, wielościeżkowego .mkv oraz wsadowy, za jedną płatność $29. Pobierz albo przeczytaj stronę cennika, by zobaczyć pełny podział.
Wypalanie napisów w długich i dużych wideo
Długość zmienia dwie rzeczy: dostarczenie pliku do narzędzia i samo kodowanie.
Wysyłka. Dwugodzinne nagranie 1080p przy około 8 Mbps to około 7 GB. Przy łączu z wysyłaniem 20 Mbps to blisko 50 minut, zanim narzędzie online w ogóle zacznie pracę, a gotowy plik trzeba jeszcze pobrać z powrotem. Wypalanie lokalne całkowicie pomija ten krok.
Kodowanie. Wypalanie koduje na nowo każdą klatkę, więc dwugodzinny plik na każdym komputerze chwilę zajmie. Zanim zaczniesz pełne kodowanie, wyrenderuj pierwszą minutę i sprawdź tam font, rozmiar i pozycję, zamiast robić to po godzinie czekania:
ffmpeg -i input.mp4 -t 60 -vf "subtitles=subs.srt" -c:v libx264 -crf 18 -preset slow -c:a copy test.mp4
Szybkość a rozmiar. -preset medium jest wyraźnie szybszy od slow i daje nieco większy plik przy tym samym CRF. Koder sprzętowy (h264_nvenc na kartach NVIDIA, h264_videotoolbox na Macu) jest jeszcze szybszy, ale przy tej samej jakości obrazu wymaga wyższego bitrate. W obu przypadkach zostaw -c:a copy: ponowne kodowanie audio długiego pliku kosztuje czas i drugą generację strat bez żadnego pożytku.
Sablate w Pro nie ma limitu długości, a render działa lokalnie z paskiem postępu i przyciskiem anulowania, więc nagranie pełnometrażowe to kwestia czekania, a nie dzielenia pliku na kawałki.
Co faktycznie kosztuje cię jakość
Dwie rzeczy, i żadna z nich to samo wypalanie.
Ponowne kodowanie już skompresowanego pliku. Wypalanie wymaga ponownego kodowania, a to jest stratne. Zrobienie tego na materiale kosztuje praktycznie nic widocznego. Zrobienie tego na pliku, który platforma już skompresowała, oznacza kompresowanie artefaktów kompresji, i właśnie tam pojawia się blokowość i rozmazanie. Zawsze zaczynaj od wersji o najwyższej jakości, jaką masz, i nigdy nie wypalaj napisów w pliku, który już raz był wypalony.
Przyjmowanie domyślnych ustawień kodera. -crf 18 z x264 jest wizualnie prawie niezauważalne dla większości materiału; domyślna wartość 23 jest zauważalnie mniej wyraźna na szczegółowym materiale. -preset slow daje mniejszy plik przy tej samej jakości w zamian za czas. A -c:a copy zostawia strumień audio nietknięty — nie ma powodu kodować dźwięku na nowo, kiedy zmieniasz tylko obraz.
Czemu render nie zgadza się z podglądem
Dwie przyczyny, obie do naprawienia, zanim wydasz czas na kodowanie.
Fonty. Renderer rysuje fontem, jaki jest w stanie znaleźć. Jeśli wybrany font nie jest zainstalowany albo nie umie narysować danego pisma — większość ozdobnych fontów do napisów obejmuje łacinkę, cyrylicę i grekę, i nic poza tym — użyty zostaje zastępnik, a arabski, tajski, hangul albo CJK mogą wyjść jako puste prostokąty. Sprawdź font, zanim wyrenderujesz dwanaście języków, nie po.
Rozmiar płótna. Pozycje i rozmiary fontów w ASS są względne wobec wirtualnego płótna zadeklarowanego w pliku, nie wobec wymiarów wideo w pikselach. Ten sam rozmiar fontu daje inny tekst na ekranie na źródle 1080p i 4K, o ile płótno nie jest ustalone na sztywno. Sablate ustala płótno napisów na wirtualną ramkę o wysokości 1080 i wylicza szerokość z rzeczywistych proporcji źródła, wliczając metadane obrotu, więc rozmiar fontu znaczy to samo niezależnie od tego, w jakiej rozdzielczości nagrywałeś — a podgląd w edytorze skaluje się względem dokładnie tego samego płótna, którego używa renderer.
To także powód, czemu jakość wypalania tak bardzo różni się między narzędziami. Wiele edytorów online składa napisy jako płaską nakładkę tekstową; wypalanie w Sablate renderuje libass, ten sam mechanizm, którego odtwarzacze multimedialne używają do napisów ASS, więc obrysy, cienie, czasowanie karaoke słowo po słowie i fonty poprawne dla danego pisma wychodzą jako prawdziwa typografia napisów, a nie przybliżona grafika.
Wideo wertykalne i kwadratowe
Jeśli wideo trafia na Reels, Shorts albo TikTok, konwertuj proporcje obrazu podczas renderu, a nie przycinaj go po fakcie. Przycięcie gotowego wypalenia 16:9 do 9:16 odcina boki napisów razem z obrazem.
Sablate renderuje w 16:9 (1920×1080), 9:16 (1080×1920) albo 1:1 (1080×1080), przycinając do docelowej kadry albo dopełniając ją rozmytą kopią źródła, i rozplanowuje napisy pod finalną kadrę. Trzymaj napisy powyżej dolnej jednej trzeciej kadru wertykalnego: wytyczne Meta dla Reels każą zostawić wolne dolne 35%, bo zakrywa je własny tekst i przyciski platformy. Gdzie umieścić napisy na Reels, TikToku i Shorts opisuje bezpieczną strefę każdej platformy.
W skrócie
Narzędzi online używaj tylko do krótkich klipów, w których nic nie jest poufne; wszystko inne wypalaj lokalnie, bo nie ma wtedy wysyłki, limitu rozmiaru ani limitu długości. Wypalaj, kiedy platforma nie czyta żadnego pliku z napisami albo kiedy napisy są częścią wyglądu — a wszędzie indziej wysyłaj plik z napisami, bo tekst, który można edytować, bije piksele, których nie można. Renderuj z materiału, nie z kopii przygotowanej do wysyłki. Użyj CRF 18 i kopiuj audio. Przetestuj pierwszą minutę długiego pliku przed pełnym kodowaniem. I sprawdź font oraz płótno, zanim wydasz czas na to kodowanie, bo to właśnie te dwie rzeczy sprawiają, że idealny plik z napisami wychodzi źle.
Najczęściej zadawane pytania
Co właściwie robi wypalanie napisów w wideo?
Rysuje tekst prosto w obrazie i koduje wideo na nowo, więc napisy stają się pikselami, a nie osobną ścieżką. Nikt nie może ich wyłączyć, żaden odtwarzacz nie musi wspierać formatu napisów, a platformy, które ignorują pliki z napisami, wyświetlają je poprawnie. Cena tego to trwałość rozwiązania i jedno dodatkowe kodowanie.
Czy wypalanie napisów pogarsza jakość wideo?
Koduje wideo na nowo, więc pewna strata jest nieunikniona, ale można ją zrobić niewidoczną. Koduj z materiału o najwyższej jakości, a nie z już skompresowanego eksportu, użyj ustawienia celującego w jakość, takiego jak CRF 18 z x264, i kopiuj strumień audio, zamiast go kodować od nowa. To dwukrotne wypalenie tego samego pliku widocznie pogarsza jakość.
Czy mogę wypalić napisy bez wysyłania wideo nigdzie?
Tak. FFmpeg, HandBrake i desktopowe aplikacje do napisów działają wyłącznie na twoim komputerze, bez wysyłania czegokolwiek i bez limitu rozmiaru pliku. Narzędzia działające w przeglądarce muszą najpierw wysłać całe wideo na serwer, dlatego ograniczają rozmiar i długość plików i dlaczego dwugodzinne nagranie zwykle im się nie udaje.
Jaka jest komenda FFmpeg do wypalenia napisów w wideo?
Dla zwykłego SRT: ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:a copy output.mp4. Dla stylizowanego pliku ASS użyj filtra ass zamiast subtitles. Na Windows ścieżka w filtrze wymaga escapowania, co jest najczęstszą przyczyną błędu „plik nie znaleziony”.
Czemu wypalone napisy wyglądają inaczej niż w podglądzie?
Zwykle przez fonty albo rozmiar płótna. Renderer podstawia inny font, jeśli wybrany jest niedostępny albo nie umie narysować danego pisma, a rozmiary fontów są względne wobec wirtualnego płótna, więc ta sama liczba daje inny rozmiar tekstu na źródle 1080p i 4K. Podgląd i render muszą używać tego samego fontu i tego samego płótna, żeby się zgadzały.
Czy muszę wypalać napisy dla TikToka, Reels i Shorts?
Tak. Żadna z tych platform nie przyjmuje pliku z napisami razem z uploadem, więc napisy są tam albo wypalone w wideo, albo generowane przez samą platformę. Napisy generowane przez platformę są darmowe, ale stylizowane przez nią i często błędne w nazwach i żargonie, dlatego większość twórców wypala własne.
Jak wypalić napisy w długim wideo?
Zrób to lokalnie. Dwugodzinne nagranie 1080p to kilka GB, więcej, niż przyjmuje większość narzędzi w przeglądarce, i mniej więcej godzina wysyłania na typowym łączu. FFmpeg, HandBrake albo aplikacja desktopowa kodują je na twoim komputerze. Wyrenderuj pierwszą minutę na próbę, zanim zaczniesz pełne kodowanie, i kopiuj audio zamiast kodować je od nowa.