Hardsub vs softsub: który naprawdę powinieneś wysłać?
Hardsub vs softsub: jeden jest wypalony w pikselach i nie da się go wyłączyć, a drugi to osobna ścieżka. Sprawdź, którą formę akceptuje każda platforma.
Hardsub jest narysowany w pikselach wideo i nie da się go wyłączyć. Softsub to osobna ścieżka, którą odtwarzacz nakłada na obraz — widz może ją ukryć, zmienić jej styl albo podmienić na inny język. Wysyłaj hardsub, gdy miejsce docelowe nie czyta plików z napisami, a softsub w każdym innym przypadku.
To decyzja o sposobie dostawy, a nie o jakości. Lista miejsc, które faktycznie odmawiają, jest krótsza, niż wmówiły ci platformy społecznościowe, a błędne zgadnięcie kosztuje pełne ponowne kodowanie.
Hardsub vs softsub, obok siebie
| Właściwość | Hardsub | Softsub |
|---|---|---|
| Gdzie znajduje się tekst | W pikselach każdej klatki | W osobnej ścieżce albo pliku |
| Widz może go wyłączyć | Nie | Tak |
| Widz może zmienić język | Nie, jeden film na język | Tak, jeśli ścieżki tam są |
| Stylizacja przetrwa | Zawsze, dokładnie jak wyrenderowano | Tylko gdy wspiera to odtwarzacz |
| Wymaga ponownego kodowania | Tak | Nie |
| Można poprawić po eksporcie | Nie, trzeba renderować od nowa z mastera | Tak, edytuj plik tekstowy |
| Działa w każdym odtwarzaczu | Tak | Zależy od odtwarzacza |
| Czytelne maszynowo i indeksowalne | Nie | Tak |
| Co wysyłasz | Jeden film na język | Jeden film plus małe pliki tekstowe |
Wiersz, który rozstrzyga większość sporów, to siódmy. Hardsub po prostu nie może zawieść: jeśli wideo w ogóle się odtwarza, tekst tam jest, w rozmiarze i kolorze, jaki wybrałeś — na dziesięcioletnim smart TV, w wyciszonym feedzie z autoodtwarzaniem, w miniaturce podglądu. Każdy inny wiersz tej tabeli faworyzuje softsub, i to właśnie ten jeden wiersz sprawia, że hardsuby wciąż nie znikają.
Dlaczego jedno kosztuje ponowne kodowanie, a drugie nie
Narysowanie tekstu w klatce oznacza zdekodowanie klatki, naniesienie na nią tekstu i ponowne zakodowanie. Ten ostatni krok jest nieunikniony — zmienione piksele trzeba zapisać na nowo, a kodery wideo są stratne.
Softsub niczego nie wymaga od kodera. Muxing kopiuje istniejące strumienie wideo i audio bez zmian i dodaje obok nich trzeci strumień:
ffmpeg -i input.mp4 -i subs.srt -c copy output.mkv
Wypalanie musi dotknąć każdej klatki, a skrót -c copy nie jest dostępny dla strumienia wideo:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4
Pierwsza komenda kończy się mniej więcej w czasie, jaki zajmuje odczytanie pliku z dysku. Druga przepycha całe wideo przez koder, co przy dwugodzinnym nagraniu oznacza długie czekanie i mierzalny koszt jakości. Ten koszt da się kontrolować, nie jest żadną tajemnicą — to decyzja o CRF, a wypalanie napisów w wideo opisuje ustawienia, które utrzymują tę stratę niewidoczną.
Ta asymetria narasta, gdy w grę wchodzi więcej niż jeden język. Osiem języków jako softsuby to osiem małych plików tekstowych albo osiem ścieżek w jednym .mkv. Osiem języków wypalonych to osiem pełnych kodowań, osiem plików do przechowania i osiem uploadów — dlatego dostawa w wielu językach zwykle oznacza softsuby dla większości języków i wypalenie tylko dla jednego lub dwóch, na których najbardziej zależy.
Czy softsub naprawdę dociera do widza?
Tu prosta odpowiedź się rozpada i warto powiedzieć to wprost: między poprawnym plikiem napisów a widzem, który go czyta, może zepsuć się pięć rzeczy.
- Plik odłącza się od wideo. Plik
.srtleżący obok wideo podróżuje jako drugi załącznik, a drugie załączniki giną w komunikatorach, dyskach współdzielonych i przy ponownym wgrywaniu. Ścieżka zmuxowana do kontenera nie ma tego problemu. - MP4 ledwo obsługuje napisy. Kontener niesie je jako
mov_text— zwykły format czasowanego tekstu, bez fontów, kolorów i pozycjonowania. Odtwarzacze Apple go czytają; wiele innych po cichu ignoruje tę ścieżkę. To najczęstszy powód, dla którego.mp4z softsubem nie pokazuje zupełnie nic. - Stylizacja zależy od łaski odtwarzacza. Ścieżka
.assniesie obrysy, pozycje, fonty i czasowanie karaoke. mpv, VLC i Plex rysują to wszystko, a tania aplikacja telewizora wyrzuca to i pokazuje zwykły biały tekst. Porównanie formatów opisuje, które funkcje przetrwają którą konwersję. - Platformy kodują na nowo to, co wgrywasz. Platforma społecznościowa rozkłada twój plik na części i buduje go od nowa według własnej specyfikacji. Cokolwiek nie było tym, czego szukała — łącznie ze strumieniem napisów — nie przetrwa tej przebudowy.
- Wyciszone autoodtwarzanie. Feedy uruchamiają wideo bezgłośnie, z domyślnie wyłączonymi napisami, więc napis, który widz musi sam włączyć, to napis, którego większość widzów nigdy nie zobaczy.
Nic z tego nie sprawia, że softsub to zły wybór domyślny. To po prostu wyjaśnia, czemu „działa u mnie w VLC” to zupełnie inne stwierdzenie niż „działa dla widzów”.
Które platformy akceptują plik z napisami?
Sprawdzone we własnej dokumentacji każdej platformy, we wrześniu 2026:
| Miejsce docelowe | Akceptuje plik z napisami | Co wysłać |
|---|---|---|
| YouTube | Tak, .srt, .vtt, .ttml i więcej | Softsub |
| Vimeo | Tak, .srt i .vtt | Softsub |
Tak, .srt z kodem lokalizacji w nazwie pliku | Softsub | |
Tak, .srt | Softsub | |
| TikTok | Nie | Hardsub |
| Instagram Reels | Nie | Hardsub |
| X | Nie | Hardsub |
| Twoja własna strona | Tak, .vtt w elemencie <track> | Softsub |
| VLC, mpv, Plex, Jellyfin | Tak, .srt albo .ass, jako osobny plik albo w .mkv | Softsub |
Trzy wiersze mają swoje zastrzeżenia. Lista formatów wspieranych przez YouTube liczy około dwudziestu pozycji, a .ass nie ma wśród nich, więc stylizacja z pliku .ass znika w chwili wgrania. Facebook odrzuca plik z napisami, którego nazwa nie niesie kodu lokalizacji w dokładnej formie video.en_US.srt. A YouTube w ogóle nie wymienia .mkv jako akceptowanego kontenera do wgrywania, co czyni wielościeżkowy .mkv formatem dostawy dla odtwarzaczy, a nie dla platform.
Trzy wiersze z „Nie” zasługują na wyjaśnienie. TikTok, Instagram i X generują napisy we własnej aplikacji, a to nie to samo, co akceptowanie twoich. Dostajesz ich transkrypcję, ich stylizację, ich podział linijek i ich pomysł na to, jak szybko można przeczytać linijkę — bez żadnej kontroli nad czymkolwiek z tego.
Kiedy wysyłać hardsub, softsub, albo oba
„Wgrywam na YouTube albo Vimeo”. Softsub. Jeden .srt albo .vtt na język. Tekst zostaje zaindeksowany, widzowie sami przełączają język, a literówkę poprawiasz w dziesięć sekund, nie dotykając wideo.
„Publikuję na TikToku, Reels albo X”. Hardsub, bo nic innego nie przetrwa. Projektuj styl pod wyciszony, pionowy feed przewijany kciukiem, nie pod salon.
„Wysyłam montaż klientowi do sprawdzenia”. Hardsub. Nie wysyłasz mastera — wysyłasz coś, co musi wyglądać dobrze za pierwszym otwarciem, w czymkolwiek akurat kliknie recenzent.
„Dostarczam film, bibliotekę kursu albo archiwum”. Softsub w .mkv, jedna ścieżka na język, z dołączonymi fontami. To jedyna forma dostawy, która trzyma każdy język w jednym pliku i wciąż pozwala widzowi wybierać.
„Publikuję to samo wideo w pięciu językach”. Oba. Softsuby dla wszystkich pięciu, wypalone kopie dla jednego albo dwóch z największą publicznością.
„Nie mam pojęcia, gdzie to ostatecznie trafi”. Trzymaj czysty master i pliki napisów obok niego, a kopie wypalaj na żądanie. Odwrócenie tej kolejności to błąd, który kosztuje całe popołudnie: softsub zawsze można później wypalić, a hardsuba nigdy nie da się z powrotem wyjąć.
Jak uzyskać oba z jednego transkryptu
Praktyczne pytanie rzadko brzmi, który wariant jest lepszy. Brzmi ono, jak wyciągnąć oba z tej samej pracy — bo transkrypt, czasowanie i stylizacja są identyczne w obu przypadkach, a różni się tylko finalny eksport.
Tak właśnie zbudowany jest Sablate. Zadanie niesie jedną transkrypcję plus warstwę tłumaczenia na język, a każda warstwa ma własny styl i własny font dla swojego pisma — rozdzielenie następuje dopiero na etapie eksportu: pliki napisów dla platform, które je czytają, wypalone .mp4 dla tych, które ich nie czytają, albo jeden .mkv ze ścieżką na język do lokalnego odtwarzania. Między tymi trzema niczego nie transkrybuje się dwa razy, a wideo nigdy nie opuszcza komputera. Plan Darmowy obejmuje filmy do dziesięciu minut, trzy zadania miesięcznie i wypalone .mp4 z małym oznaczeniem w rogu; eksport .ass i wielościeżkowy .mkv są częścią Pro za $29 jednorazowo — zobacz cennik.
Dla jednego pliku w jednym języku szczera odpowiedź brzmi jednak, że aplikacja może w ogóle nie być potrzebna:
| Zadanie | FFmpeg i mkvmerge | Subtitle Edit | Sablate |
|---|---|---|---|
| Wypalić plik z napisami w obrazie | Tak | Tak | Tak |
Zmuxować ścieżkę napisów do .mkv | Tak | Nie | Tak, Pro |
| Transkrybować mowę do pliku z napisami | Nie | Tak | Tak |
| Jedna transkrypcja, wiele warstw językowych | Nie | Częściowo | Tak |
| Stylizacja i fonty pisma dla każdego języka | Nie | Nie | Tak |
| Cena | Darmowe | Darmowe | $29 jednorazowo |
FFmpeg i mkvmerge muxują i wypalają za darmo, a Subtitle Edit czyta więcej formatów napisów, niż Sablate kiedykolwiek będzie. Jeśli praca przed tobą to jeden język i chirurgia formatu, te narzędzia są lepsze i nic nie kosztują.
W skrócie
Domyślnie softsub, hardsub tam, gdzie miejsce docelowe nie zostawia wyboru, a czysty master trzymaj w obu przypadkach. Wypalanie to jedyny nieodwracalny krok w pracy z napisami, więc rób je na końcu i dla każdego miejsca docelowego osobno, a nie raz na cały projekt. Jeśli w grę wchodzi więcej niż jeden język, najpierw zbuduj softsuby, a każdą wypaloną kopię traktuj jak osobny cel renderowania — tak samo, jak pionowe kadrowanie albo skróconą wersję pod social media.