Altyazıyı Bir Videoya Nasıl Gömersin (Hiçbir Yere Yüklemeden)
Altyazıyı kendi makinende videoya göm: dört yöntemin karşılaştırması, işe yarayan FFmpeg komutları ve yeniden kodlamanın kalite kaybını nasıl önlersin.
Altyazıyı videoya gömmek, metni görüntünün içine çizip videoyu yeniden kodlamak demektir; böylece altyazılar dosyayla birlikte piksel olarak taşınır. Hiç altyazı dosyası kabul etmeyen TikTok, Reels ve Shorts için buna ihtiyacın var; ayrıca altyazılar bir erişilebilirlik seçeneği değil, tasarımın bir parçası olduğunda da gerekir.
Bunu yapmak için hiçbir şey yüklemen gerekmez. FFmpeg tek bir komutla yapar, HandBrake ve Subtitle Edit bir pencereden yapar; Sablate gibi bir masaüstü altyazı uygulaması ise altyazıları önce üretir de. Hepsi kendi bilgisayarında çalışır: dosya boyutu sınırı yok, yükleme beklemek yok.
Bu yazı, çevrimiçi bir aracın hâlâ ne zaman doğru seçim olduğunu, altyazıyı videoya gömmenin dört yolunu, bunu komut satırı olmadan nasıl yapacağını, uzun kayıtlarda nelerin değiştiğini ve kaliteyi gerçekten bozan iki şeyi ele alıyor.
Çevrimiçi araç mı, çevrimdışı mı: hangisini kullanmalısın?
Bu aramaların çoğu önce bir tarayıcı editörüne çıkar ve kısa bir klip için bu sorun değil. Fark; uzunlukta, dosya boyutunda ve gizlilikte ortaya çıkar.
| Çevrimiçi editör | Çevrimdışı (FFmpeg, HandBrake, masaüstü uygulaması) | |
|---|---|---|
| Videon yüklenir | Evet, dosyanın tamamı | Hayır |
| Dosya boyutu | Plana göre sınırlı | Yalnızca diskinle sınırlı |
| Uzun kayıtlar | Yükleme süresi uzunlukla artar | Yalnızca kodlama zaman alır |
| Gizli görüntüler | Makinenden çıkar | Makinende kalır |
| Kurulum gerekir | Hayır | Evet |
| Altyazıyı da oluşturur | Genellikle | Masaüstü uygulamaları evet, FFmpeg ve HandBrake hayır |
Sınırlar gerçek ve ücretsiz planlarda düşük. Örneğin Kapwing'in depolama politikası, ücretsiz planda dosya başına 250 MB'a, ücretli planlarda 6 GB'a izin veriyor. 1080p için tipik, yaklaşık 8 Mbps'lik bir bit hızında 250 MB, dört dakikanın biraz üzerinde video tutar.
Bu yüzden klip kısaysa, içinde gizli hiçbir şey yoksa ve önündeki makineye yazılım kuramıyorsan çevrimiçi bir editör kullan. Birkaç dakikadan uzun her şey için, müşteri veya şirket içi görüntüler için ve çok sayıda dosya için yerelde göm. Çevrimdışı altyazı üreticilerinin karşılaştırması, altyazıyı da üreten masaüstü uygulamalarını ele alıyor.
Videoya gömme ne zaman doğru seçimdir
| Videoya gömülü (hardsub) | Altyazı dosyası veya izi (softsub) | |
|---|---|---|
| İzleyici kapatabilir | Hayır | Evet |
| TikTok, Reels, Shorts'ta çalışır | Evet | Hayır, desteklenmez |
| YouTube, Vimeo'da çalışır | Evet | Evet, hem de aranabilir |
| Erişilebilirlik uyumluluğu için sayılır | Genellikle sayılmaz | Evet |
| Arama motorları tarafından dizinlenir | Hayır | Evet |
| Sonradan bir yazım hatasını düzeltmek | Videoyu yeniden render al | Bir metin dosyasını düzenle |
| Tek dosyada birden fazla dil | Hayır, her biri için ayrı render | Evet, her biri için ayrı iz |
| Stil birebir korunur | Evet | Sadece ASS izlerinde |
Çoğu kişi için pratik cevap ikisi birdendir: başka hiçbir şeyin işe yaramadığı dikey sosyal platformlar için videoya göm, bir dosyayı okuyan her yere de bir altyazı dosyası gönder; çünkü dosya aranabilir, değiştirilebilir ve düzeltilebilirdir. Tek bir işten ikisini birden istiyorsan, çok dilli teslim bu iki çıktının aynı zaman çizelgesinden nasıl geldiğini ele alıyor.
Altyazıyı videoya gömmenin dört yolu
| FFmpeg | HandBrake | Tarayıcı araçları | Masaüstü altyazı uygulamaları | |
|---|---|---|---|---|
| Fiyat | Ücretsiz | Ücretsiz | Ücretsiz kademe, sonra abonelik | Tek seferlik veya abonelik |
| Videonu yükler | Hayır | Hayır | Evet, dosyanın tamamını | Hayır |
| Dosya boyutu / süre sınırı | Yok | Yok | Var, genellikle sıkı | Yok |
| Altyazıyı oluşturur | Hayır | Hayır | Evet | Evet |
| Stil kontrolü | ASS veya force_style ile | Sınırlı | Şablonlarla | Canlı önizlemeyle tam |
| Öğrenme eğrisi | Komut satırı | Orta | Yok | Düşük |
İki dürüst not. FFmpeg ve HandBrake bu işte ücretsiz ve mükemmeldir; elinde bitmiş bir altyazı dosyası varsa FFmpeg tek bir komuttur — bir şey satın almanın bir gerekçesi yoktur. İkisinin de yapmadığı şey altyazıyı üretmektir: elinde zaten olan, başka bir yerde zamanlanmış ve düzeltilmiş bir dosyayı videoya gömerler. Tarayıcı araçları altyazıyı üretir, ama yükleme zorunludur; bu da onları gizli malzemeler ve sınırlarından daha uzun her şey için elemeye yeter.
FFmpeg ile videoya gömme
Düz bir SRT için:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4
Stilli bir ASS dosyası için, stilin düzleştirilmek yerine olduğu gibi uygulanması için ass filtresini kullan:
ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:a copy output.mp4
Varsayılanı kabul etmek yerine kaliteyi açıkça kontrol etmek için:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" \
-c:v libx264 -crf 18 -preset slow -c:a copy output.mp4
Bir SRT'yi önce dönüştürmeden yeniden stillendirmek için:
ffmpeg -i input.mp4 \
-vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,Outline=2'" \
-c:a copy output.mp4
Windows tuzağı. Filtrenin içindeki yol, shell tarafından değil filtrenin kendisi tarafından ayrıştırılır; bu yüzden sürücü harfinin iki noktası ve ters eğik çizgiler kaçış karakteriyle yazılmalıdır. Açıkça var olan bir dosyada komutun dosya-bulunamadı hatasıyla başarısız olmasının en yaygın tek sebebi budur:
ffmpeg -i input.mp4 -vf "subtitles='C\:/Videos/subs.srt'" -c:a copy output.mp4
Mümkün olduğunda altyazı dosyasını çalışma dizininde tut ve sade bir dosya adı geçir — bu, sorunu tamamen ortadan kaldırır.
Komut satırı olmadan altyazıyı videoya gömmek
Terminal sana göre değilse, üç tür araç aynı işi bir pencereden yapar. İlk ikisi ücretsizdir ve elindeki bir altyazı dosyasını videoya gömer; üçüncüsü dosyayı da üretir.
HandBrake
HandBrake; Windows, Mac ve Linux için ücretsiz bir video dönüştürücüdür. Videoyu aç, Subtitles sekmesine git, Tracks ile harici SRT dosyanı ekle, o izi videoya gömülecek şekilde ayarla ve kodlamayı başlat. Bilmeye değer iki sınır var: HandBrake'in belgeleri, bir MP4'e yalnızca tek bir iz gömülebildiğini belirtiyor; stil de düz bir SRT'nin taşıdığıyla sınırlı.
Subtitle Edit
Ücretsiz altyazı editörü Subtitle Edit'in Video menüsünde, senin yerine FFmpeg'i çalıştıran bir videoya gömme dışa aktarması var; FFmpeg eksikse indirmeyi de öneriyor. Zamanlamayı zaten orada düzeltiyorsan doğal tercih budur.
Masaüstü altyazı uygulaması
Elinde düzeltilmiş bir altyazı dosyası henüz yoksa, videoya gömme daha uzun bir işin son adımıdır: transkript çıkar, düzelt, stillendir, render al. Sablate bunu baştan sona kendi makinende yapar — yerelde Whisper ile transkripsiyon, timeline üzerinde yeniden zamanlama ve okuma hızı uyarıları olan bir editör, 13 altyazı preset'i ve önizlemeyle eşleşen bir videoya gömme. Kurguyu DaVinci Resolve'da yapıyorsan, ücretsiz sürüm bunun yerine bir SRT'yi içe aktarıp dışa aktarma sırasında videoya gömebilir.
Videoya gömme, küçük bir köşe işaretiyle ücretsiz planda, 10 dakikaya kadar olan videolar için kullanılabilir; Pro ise tek seferlik 29 $'lık ödemeyle işareti ve uzunluk sınırını kaldırır ve .ass, çoklu izli .mkv ile toplu dışa aktarma ekler. Tam ayrıntı için indir veya fiyatlandırma sayfasını oku.
Uzun veya büyük videolara altyazı gömmek
Uzunluk iki şeyi değiştirir: dosyanın araca ulaşması ve kodlamanın kendisi.
Yükleme. Yaklaşık 8 Mbps'lik iki saatlik bir 1080p kayıt yaklaşık 7 GB eder. 20 Mbps'lik bir yükleme bağlantısında, çevrimiçi bir araç daha başlayamadan neredeyse 50 dakika geçer; bitmiş dosyanın da geri inmesi gerekir. Yerelde gömmek bu adımı tamamen atlar.
Kodlama. Videoya gömme her kareyi yeniden kodlar, bu yüzden iki saatlik bir dosya hangi makinede olursa olsun biraz sürer. Tam kodlamaya girişmeden önce ilk dakikayı render al ve fontu, boyutu ve konumu bir saatlik beklemenin sonunda değil, burada kontrol et:
ffmpeg -i input.mp4 -t 60 -vf "subtitles=subs.srt" -c:v libx264 -crf 18 -preset slow -c:a copy test.mp4
Hız ve boyut. -preset medium, slow'dan belirgin biçimde daha hızlıdır ve aynı CRF'de biraz daha büyük bir dosya üretir. Bir donanım kodlayıcı (NVIDIA kartlarda h264_nvenc, Mac'te h264_videotoolbox) daha da hızlıdır, ama aynı görsel kalite için daha yüksek bit hızı ister. Her iki durumda da -c:a copy kullan: uzun bir dosyanın sesini yeniden kodlamak boşuna zamana ve ikinci bir nesil kayba mal olur.
Sablate'in Pro planında uzunluk sınırı yok, render yerelde bir ilerleme çubuğu ve bir iptal düğmesiyle çalışır; yani uzun metrajlı bir kayıt, dosyayı parçalara bölmek değil, beklemek meselesidir.
Kaliteyi gerçekte ne bozar
İki şey; ikisi de videoya gömme işleminin kendisi değil.
Zaten sıkıştırılmış bir dosyayı yeniden kodlamak. Videoya gömme bir yeniden kodlama gerektirir ve bu kayıplıdır. Bunu ana dosyana yapmak gözle görülür hemen hemen hiçbir şeye mal olmaz. Bunu bir platformun zaten sıkıştırdığı bir dosyaya yapmak ise sıkıştırma artefaktlarını sıkıştırmak demektir; bloklanma ve bulanıklık tam da orada ortaya çıkar. Her zaman elindeki en yüksek kaliteli sürümden başla ve altyazıyı zaten bir kez gömülmüş bir dosyaya asla gömme.
Varsayılan kodlayıcı ayarlarını kabul etmek. X264 ile -crf 18, çoğu içerik için görsel olarak neredeyse fark edilmezdir; varsayılan değer olan 23 ise detaylı görüntülerde belirgin şekilde daha yumuşaktır. -preset slow, zaman karşılığında aynı kalitede daha küçük bir dosya kazandırır. -c:a copy ise ses akışına dokunmaz — sadece görüntüyü değiştirirken sesi yeniden kodlamanın bir gerekçesi yoktur.
Render neden önizlemeyle eşleşmiyor
İki sebep var; ikisi de bir render'a zaman harcamadan önce düzeltilebilir.
Fontlar. Render motoru bulabildiği fontla çizer. Seçtiğin font kurulu değilse veya o alfabeyi çizemiyorsa — altyazı için tasarlanmış gösterim fontlarının çoğu yalnızca Latin, Kiril ve Yunan alfabelerini kapsar, başka hiçbir şeyi kapsamaz — yerine bir başka font kullanılır ve Arapça, Tayca, Hangıl veya CJK metni boş kutular olarak çıkabilir. Fontu on iki dili render almadan önce kontrol et, sonra değil.
Tuval boyutu. ASS'teki konumlar ve font boyutları, videonun piksel boyutlarına değil, dosyada tanımlanmış sanal bir tuvale göre orantılıdır. Tuval sabitlenmemişse aynı font boyutu bir 1080p kaynakla bir 4K kaynakta ekranda farklı metinler üretir. Sablate, altyazı tuvalini 1080 yükseklikte sanal bir kareye sabitler ve genişliği, döndürme meta verisi dahil kaynağın gerçek en-boy oranından türetir; böylece bir font boyutu, hangi çözünürlükte çektiğinden bağımsız olarak her zaman aynı şeyi ifade eder — editör önizlemesi de render motorunun kullandığı tam olarak aynı tuvale göre ölçeklenir.
Videoya gömme kalitesinin araçlar arasında bu kadar farklı olmasının sebebi de bu. Çevrimiçi editörlerin çoğu altyazıyı düz bir metin katmanı olarak bindirir; Sablate'teki videoya gömme ise medya oynatıcıların ASS altyazıları için kullandığı motor olan libass ile render edilir, bu yüzden dış hatlar, gölgeler, kelime bazlı karaoke zamanlaması ve alfabeye uygun fontlar yaklaşık bir grafik değil, gerçek altyazı tipografisi olarak çıkar.
Dikey ve kare çıktı
Video Reels, Shorts veya TikTok'a gidiyorsa, en-boy oranını sonradan kırpmak yerine render sırasında dönüştür. Bitmiş bir 16:9 videoya gömme işlemini 9:16'ya kırpmak, altyazıların kenarlarını görüntüyle birlikte keser.
Sablate; 16:9 (1920×1080), 9:16 (1080×1920) veya 1:1 (1080×1080) oranında render alır, hedef kareye kırpar veya kaynağın bulanıklaştırılmış bir kopyasıyla doldurur ve altyazıları son kareye göre yerleştirir. Altyazıyı dikey bir karenin alt üçte birinin üstünde tut: Meta'nın Reels yönergesi alttaki %35'i boş bırakmaktır, çünkü orayı platformun kendi metni ve butonları kaplar. Reels, TikTok ve Shorts'ta altyazı nereye konur yazısında her platformun güvenli alanı var.
Kısacası
Çevrimiçi bir editörü yalnızca içinde gizli hiçbir şey olmayan kısa klipler için kullan; geri kalan her şey için yerelde göm, çünkü yükleme yok, boyut sınırı yok, uzunluk sınırı yok. Platform hiçbir altyazı dosyası okumuyorsa veya altyazılar görünümün bir parçasıysa videoya göm; diğer her yerde bir altyazı dosyası gönder, çünkü düzenleyebildiğin metin, düzenleyemediğin piksellere karşı kazanır. Render'ı ana dosyandan al, bir yükleme kopyasından değil. CRF 18 kullan ve sesi kopyala. Uzun bir dosyanın ilk dakikasını tam kodlamadan önce test et. Ve o kodlamaya zaman harcamadan önce fontu ve tuvali kontrol et, çünkü kusursuz bir altyazı dosyasını yanlış çıkaran iki şey tam olarak bunlardır.
Sık sorulan sorular
Altyazıyı videoya gömmek gerçekte ne yapar?
Metni doğrudan görüntünün içine çizer ve videoyu yeniden kodlar; böylece altyazılar ayrı bir iz olmaktan çıkıp piksel haline gelir. Kimse onları kapatamaz, hiçbir oynatıcının bir altyazı formatını desteklemesine gerek kalmaz ve altyazı dosyalarını görmezden gelen platformlar bile onları doğru şekilde gösterir. Bunun karşılığında ödenen bedel, işlemin kalıcı olması ve bir yeniden kodlamaya mal olmasıdır.
Altyazıyı videoya gömmek video kalitesini düşürür mü?
Videoyu yeniden kodladığı için biraz kayıp kaçınılmazdır, ama bu kayıp görünmez hale getirilebilir. Zaten sıkıştırılmış bir dışa aktarım yerine en yüksek kaliteli ana dosyandan kodla, x264 ile CRF 18 gibi kaliteyi hedefleyen bir ayar kullan ve ses akışını yeniden kodlamak yerine kopyala. Aynı dosyayı iki kez videoya gömmek, kaliteyi gözle görülür şekilde düşüren şeydir.
Videomu yüklemeden altyazıyı videoya gömebilir miyim?
Evet. FFmpeg, HandBrake ve masaüstü altyazı uygulamaları tamamen kendi makinende çalışır; ne yükleme ne de dosya boyutu sınırı vardır. Tarayıcı tabanlı araçlar ise önce videonun tamamını bir sunucuya yüklemek zorundadır; dosya boyutunu ve süreyi bu yüzden sınırlarlar, iki saatlik bir kaydın onlarda genellikle başarısız olmasının sebebi de budur.
Altyazıyı videoya gömmek için FFmpeg komutu nedir?
Düz bir SRT için: ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:a copy output.mp4. Stilli bir ASS dosyası için subtitles yerine ass filtresini kullan. Windows'ta filtrenin içindeki yolun kaçış karakterleriyle yazılması gerekir; komutun dosya-bulunamadı hatasıyla başarısız olmasının en yaygın sebebi de budur.
Videoya gömülen altyazılarım neden önizlemeden farklı görünüyor?
Genellikle fontlardan veya tuval boyutundan kaynaklanır. Seçtiğin font eksikse veya o alfabeyi çizemiyorsa render motoru başka bir fontla değiştirir; font boyutları da sanal bir tuvale göre orantılıdır, bu yüzden aynı sayı bir 1080p kaynakla bir 4K kaynakta farklı metin boyutları üretir. Önizleme ile render'ın birbiriyle örtüşmesi için aynı fontu ve aynı tuvali kullanması gerekir.
TikTok, Reels ve Shorts için altyazıyı videoya gömmem gerekir mi?
Evet. Bu platformların hiçbiri bir yüklemenin yanında altyazı dosyası kabul etmez, o yüzden oradaki altyazılar ya videoya gömülür ya da platformun kendisi tarafından üretilir. Platformun ürettiği altyazılar ücretsizdir, ama platformun kendi stiliyle gelir ve isimlerde ve jargonda sık sık hata yapar; bu yüzden çoğu içerik üreticisi kendi altyazısını gömer.
Uzun bir videoya altyazıyı nasıl gömerim?
Yerelde yap. İki saatlik bir 1080p kayıt birkaç GB tutar; bu, çoğu tarayıcı aracının kabul ettiğinden büyüktür ve tipik bir bağlantıda yaklaşık bir saatlik yükleme demektir. FFmpeg, HandBrake veya bir masaüstü uygulaması videoyu kendi makinende yeniden kodlar. Tam kodlamaya girişmeden önce ilk dakikayı test olarak render al ve sesi yeniden kodlamak yerine kopyala.