Wróć do bloga

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.

11 września 2026
Sablate Team

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, HandBrake i desktopowe aplikacje do napisów robią to lokalnie, bez limitu rozmiaru pliku, jaki mają narzędzia w przeglądarce.

Poniżej cztery sposoby, jak to zrobić, sprawdzone komendy i dwie rzeczy, które faktycznie szkodzą jakości.

Kiedy wypalanie jest dobrym wyborem

Wypalone (hardsub)Plik lub ścieżka z napisami (softsub)
Widz może to wyłączyćNieTak
Działa na TikToku, Reels, ShortsTakNie, brak wsparcia
Działa na YouTube, VimeoTakTak, i można w tym szukać
Liczy się do zgodności z dostępnościąZwykle nieTak
Indeksowane przez wyszukiwarkiNieTak
Poprawa literówki późniejPonowny render wideoEdycja pliku tekstowego
Wiele języków w jednym plikuNie, jeden render na językTak, jedna ścieżka na język
Stylizacja zachowana dokładnieTakTylko 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

FFmpegHandBrakeNarzędzia w przeglądarceDesktopowe aplikacje do napisów
CenaDarmoweDarmoweDarmowy poziom, potem subskrypcjaJednorazowo albo subskrypcja
Wysyła twoje wideoNieNieTak, cały plikNie
Limit rozmiaru / długości plikuBrakBrakTak, zwykle ścisłyBrak
Tworzy napisyNieNieTakTak
Kontrola stylizacjiPrzez ASS albo force_styleOgraniczonaSzablonyPełna, z podglądem na żywo
Krzywa uczeniaLinia komendUmiarkowanaBrakNiska

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.

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 tekst poza dolną jedną piątą kadry wertykalnej — ten obszar na większości telefonów zakrywa interfejs samej platformy.

Jak to zrobić bez linii komend

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.

Wypalanie jest dostępne w planie Darmowym, z małym oznaczeniem w rogu; Pro usuwa to oznaczenie i dodaje eksport .ass, wielościeżkowego .mkv oraz wsadowy, za jedną płatność $29. Pobierz albo przeczytaj stronę cennika, by zobaczyć pełny podział.

W skrócie

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. I sprawdź font oraz płótno, zanim wydasz czas na kodowanie, bo to właśnie te dwie rzeczy sprawiają, że idealny plik z napisami wychodzi źle.