Bloga dön

MKV ve MP4'e Yeniden Kodlamadan Altyazı Nasıl Eklenir

MKV ve MP4'e yeniden kodlamadan altyazı ekle: MKVToolNix ve FFmpeg adımları, tek dosyada çok dil, varsayılan ve zorunlu bayraklar, izlerin neden görünmediği.

3 Ekim 2026
Sablate Team

MKV'ye yeniden kodlamadan altyazı eklemek için altyazıyı ayrı bir iz olarak mux'larsın: MKVToolNix bunu grafik arayüzden yapar, FFmpeg tek bir komutla; ikisi de videoya dokunmaz ve işi dosyayı kopyalamakla aşağı yukarı aynı sürede bitirir. MP4 de altyazı izi taşıyabilir, ama yalnızca düz metin olarak.

Aşağıda: iki aracın adım adım kullanımı, doğru dil etiketleriyle tek dosyada birden çok dil, varsayılan ve zorunlu bayrakların izleyici için ne değiştirdiği ve mux'lanmış bir izin hiç görünmemesinin olağan nedenleri.

MKV'ye altyazı eklemek neden yeniden kodlama gerektirmez

Bir video dosyası, ayrı akışları bir arada tutan bir konteynerdir ve altyazı eklemek, içine yalnızca bir akış daha katmak demektir. Görüntü ve ses, video üretilirken bir kez sıkıştırıldı. Mux'lama — multiplexing'in kısaltması — konteynerin içinde zaten olan hiçbir şeyi çözmeden araya fazladan bir akış yerleştirir; böylece çıktı, yanında bir altyazı izi olan, bit bit aynı videodur.

Altyazıyı videoya gömmek bunun tam tersidir. Metnin her kareye çizilmesi gerekir; bu yüzden her kare çözülür, üzerine boyanır ve yeniden sıkıştırılır. Bu, zamana ve biraz da kaliteye mal olur; yine de bir platform altyazı izlerini yok sayıyorsa doğru karar budur. O yolu videoya gömme rehberi anlatıyor. İkisinden hangisine ihtiyacın olduğuna henüz karar vermediysen, hardsub mu softsub mu yazısı bu kararın kısa özetidir.

Matroska (.mkv) softsub yolu için tasarlandı. İstediğin sayıda video, ses ve altyazı izini, bir de font gibi dosya eklerini barındırır; her iz kendi meta verisini taşır:

  • Dil — eng ya da spa gibi bir kod; oynatıcılar izleri etiketlemek ve otomatik olarak birini seçmek için bunu kullanır.
  • Ad — oynatıcının menüsünde görünen serbest metin; örneğin “English” ya da “English (SDH)”.
  • Varsayılan bayrak — izleyici seçim yapmadığında oynatıcının kendiliğinden açtığı iz.
  • Zorunlu bayrak — izleyici altyazıları kapatmış olsa bile gösterilen iz; yabancı dildeki diyalog satırları için tasarlanmıştır.

Bu dördünü doğru ayarlamak işin büyük kısmıdır. Mux'lamanın kendisi işin kolay kısmıdır.

MP4'e altyazı izi eklenebilir mi?

Evet, ama MP4 altyazıları yalnızca düz bir zamanlanmış metin formatı olan mov_text olarak taşır. FFmpeg bir SRT'yi içeri alırken bu biçime dönüştürür; fontlar, renkler ve konumlandırma ise korunmaz. Bu da konteyneri bir tercih değil, gerçek bir karar haline getirir:

MKVMP4
Depoladığı altyazı biçimleriSRT, ASS, PGS ve diğerleriYalnızca mov_text
Stil (font, renk, konum)ASS izlerinde korunurDüşürülür
Videoya eklenen font dosyalarıEvetHayır
Tek dosyada birden çok dilEvetEvet, düz metin olarak
Apple'ın yerleşik oynatıcılarında açılır mıGüvenilir değilEvet
VLC ve mpv'de açılır mıEvetEvet
İz eklemek için yeniden kodlama gerekir miHayırHayır

Kararı genellikle belirleyen satır Apple'dır. QuickTime MKV'yi hiç açmaz, iPhone'un kendi uygulamaları da onu güvenilir biçimde işleyemez; ikisi de mov_text izlerini ise sorunsuz gösterir. Bu yüzden Apple cihazlar için hazırlanan dosya, altyazıları düz metin kalsa bile MP4 olmalıdır. VLC, mpv, Plex ve Kodi MKV'yi stil ve eklenmiş fontlar bozulmadan oynatır. Üçüncü durum tarayıcılardır: video oynatıcıları gömülü altyazı izlerini genellikle yok sayar ve ayrı bir WebVTT dosyası bekler; format karşılaştırması da bu yüzden VTT'yi web formatı olarak ele alır.

Altyazı izi eklemenin üç yolu

  1. MKVToolNix — ücretsiz, arayüzlü; Windows, macOS ve Linux için. Altyazı dosyaları zaten varsa en iyi araç.
  2. FFmpeg — ücretsiz, tek komut ve üçü arasında MP4 yazabilen tek araç. Betikler ve toplu işlemler için en iyi araç.
  3. Sablate — altyazılar henüz yoksa: transkript çıkar, çeviriyi katman katman yap ve dil başına bir iz taşıyan tek bir MKV dışa aktar.

Subtitle Edit de mux'lama işini Video → Add/remove embedded subtitles menü yoluyla yapabilir ve bunun için arka planda FFmpeg'i çalıştırır.

Yöntem 1: MKVToolNix ile MKV'ye altyazı ekleme

MKVToolNix, Matroska dosyaları için referans araç setidir ve grafik arayüzü bütün işi dört adıma indirir:

  1. MKVToolNix'i mkvtoolnix.download adresinden kur. 102.0 sürümü 14 Eylül 2026'da çıktı; macOS sürümü macOS 13 Ventura veya daha yenisini gerektirir.
  2. MKVToolNix GUI uygulamasını aç, Multiplexer sekmesinde kal ve videoyla birlikte her altyazı dosyasını Source files alanına sürükle. Her altyazı dosyası kendi izi olarak görünür.
  3. Her altyazı izine tıkla ve Language ile Track name alanlarını doldur. İlk açılması gereken tek izde Default track bayrağını işaretle, diğerlerinde kaldır. Forced display seçeneğini ancak iz yalnızca yabancı dildeki satırları kapsıyorsa aç; aksi halde kapalı bırak.
  4. Altta hedef dosya adını belirle ve Start multiplexing düğmesine tıkla.

Hiçbir şey kodlanmaz, bu yüzden iki saatlik bir film bile dosyayı kopyalamakla aşağı yukarı aynı sürede biter. Aynı işin komut satırı karşılığı şöyle; toplu işlemek istersen bu yolu kullanırsın:

mkvmerge -o film.subtitled.mkv film.mp4 \
  --language 0:eng --track-name 0:English --default-track-flag 0:yes en.srt \
  --language 0:spa --track-name 0:Spanish --default-track-flag 0:no es.srt

Seçenekler kendilerini izleyen dosyaya uygulanır; 0 ise her SRT'nin içindeki iz kimliğidir, çünkü bir SRT her zaman yalnızca tek bir iz barındırır. Aksanlı harfler bozuk çıkıyorsa SRT UTF-8 değildir: o dosyanın önüne --sub-charset 0:windows-1252 ekle (ya da dosyanın gerçek kodlamasını kullan) veya önce dosyayı UTF-8 olarak yeniden kaydet.

Bayrakları sonradan yeniden mux'lamadan değiştirmek için mkvpropedit mevcut dosyayı yerinde düzenler:

mkvpropedit film.subtitled.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1

track:s1 ilk altyazı izidir. Yeni bir dosya yazmak yerine dosyanın başlık bilgisini değiştirdiği için büyük bir filmde bile neredeyse anında biter.

Yöntem 2: FFmpeg ile altyazı izi ekleme (MKV ve MP4)

FFmpeg aynı mux'lamayı tek komutla yapar; çıktının MP4 olması gerektiğinde kullanılacak araç da odur. İngilizce ve İspanyolca izleri olan bir MKV için:

ffmpeg -i film.mp4 -i en.srt -i es.srt \
  -map 0:v -map 0:a -map 1 -map 2 -c copy \
  -metadata:s:s:0 language=eng -metadata:s:s:0 title=English \
  -metadata:s:s:1 language=spa -metadata:s:s:1 title=Spanish \
  -disposition:s:0 default -disposition:s:1 0 \
  film.subtitled.mkv

Soldan sağa oku: üç girdi var; -map önce filmden video ve sesi, sonra her altyazı dosyasını sırayla alır; -c copy her akışı kodlamak yerine kopyalar; -metadata:s:s:0 çıktıdaki ilk altyazı akışını etiketler; iki -disposition seçeneği de İngilizceyi varsayılan olarak işaretler ve İspanyolcadaki bayrağı kaldırır.

Açık -map listesi önemlidir. Yalın bir -map 0, kaynağın zaten taşıdığı her altyazı izini de içeri çeker; bir MP4'ün mov_text izi ise MKV'ye kopyalanamaz, bu yüzden komut hiçbir şey yazmadan hata vererek durur.

MP4 için altyazıları mov_text'e dönüştür, geri kalan her şeyi kopyala:

ffmpeg -i film.mp4 -i en.srt -i es.srt \
  -map 0:v -map 0:a -map 1 -map 2 \
  -c:v copy -c:a copy -c:s mov_text \
  -metadata:s:s:0 language=eng -metadata:s:s:1 language=spa \
  film.subtitled.mp4

Video ve ses yine dokunulmadan kalır; yalnızca altyazı metni MP4'ün biçimine yeniden yazılır. Girdi dosyan stilli bir .ass ise, stilin kaybolduğu adım budur.

Stilli ASS altyazıların yeri MKV'dir; fontu da dosyaya ekle ki oynatıcı altyazıyı yedek olarak bulduğu herhangi bir fontla değil, seçtiğin fontla çizsin:

ffmpeg -i film.mp4 -i en.ass \
  -map 0:v -map 0:a -map 1 -c copy \
  -attach Montserrat-ExtraBold.ttf -metadata:s:t:0 mimetype=application/x-truetype-font \
  -metadata:s:s:0 language=eng \
  film.subtitled.mkv

FFmpeg belgeleri, Matroska eklerinin bu mimetype etiketine ihtiyaç duyduğunu açıkça söyler. mpv ve VLC, ASS'i çizerken eklenmiş fontları yükler; böylece stil dosyayla birlikte taşınır. Hangi fontun ekleneceği ayrı bir soru — altyazı fontu rehberi neyin iyi okunduğunu ve hangi popüler altyazı fontlarının hangi yazı sistemlerini çizemediğini anlatıyor.

Yöntem 3: Altyazıları ve MKV'yi tek seferde oluşturma

MKVToolNix ve FFmpeg, altyazı dosyalarının zaten var olduğunu varsayar. Çoğu zaman yoktur: elinde bir kayıt var, İngilizce ve üç çeviriye ihtiyacın var ve mux'lama çok daha uzun bir işin son birkaç saniyesinden ibaret. Sablate tam bu durum için yapıldı ve bütün süreç tek bir uygulamada kalıyor:

  1. Videonun transkriptini kendi makinende Whisper ile çıkar.
  2. Transkripti editörde düzelt.
  3. Her dili aynı zamanlamalar üzerinde bir çeviri katmanı olarak ekle.
  4. Seçilebilir altyazılı video (.mkv) olarak dışa aktar.

Dosyada ortaya çıkan, Yöntem 2'de elle kurduğun yapının aynısıdır. Video ve ses akışları olduğu gibi kopyalanır, bu yüzden dışa aktarma dosyayı kopyalamakla aşağı yukarı aynı sürede biter. Her dil katmanı, altyazı stilinle kendi ASS izi olur; font da o dilin yazı sistemini çizebilen bir fontla değiştirilir. Her iz bir dil etiketi ve okunaklı bir ad alır, ilk iz varsayılan olarak işaretlenir ve stil Sablate'in uygulamayla birlikte gelen altyazı fontlarından birini kullanıyorsa o font dosyası da eklenir; böylece stil başka bir makinede de korunur.

Üç sınır, lafı dolandırmadan. MKV dışa aktarma, tek seferlik 29 $'lık ödemeyle gelen Pro'nun bir parçasıdır; ayrıntılar fiyatlandırma sayfasında. Sablate MP4'e altyazı izi yazmaz, çünkü mov_text stili silip atar — MP4 gerekiyorsa .srt dosyalarını dışa aktar ve yukarıdaki FFmpeg MP4 komutunu çalıştır. Ayrıca dışa aktarma, kaynak dosyada zaten bulunan altyazı izlerini korumaz, onların yerini alır; bunlar senin için önemliyse MKVToolNix ile geri ekle.

İşin transkripsiyon ve çeviri yarısı için çok dilli iş akışı yazısı adım adım ilerliyor.

Hangi yöntemi kullanmalısın?

Elindekine göre — altyazı dosyaları ya da yalnızca video — ve dosyanın nerede oynaması gerektiğine göre seç:

MKVToolNixFFmpegSablate
FiyatÜcretsizÜcretsiz29 $, tek seferlik (Pro)
PlatformlarWindows, Mac, LinuxWindows, Mac, LinuxWindows ve Mac
ArayüzGrafik arayüz ve komut satırıKomut satırıGrafik arayüz
Elindeki altyazı dosyalarını mux'larEvetEvetKısmen, bir işe içe aktarma yoluyla
Konuşmayı altyazıya dönüştürürHayırHayırEvet
Altyazı izli MP4 yazarHayırEvetHayır
Dil etiketleri ve varsayılan bayrakEvetEvetEvet, otomatik ayarlanır
Zorunlu bayrakEvetEvetHayır
Font eklerEvetEvetEvet, birlikte gelen altyazı fontları
Bayrakları yeniden mux'lamadan değiştirirEvet, mkvpropedit ileHayırHayır

“Altyazı dosyalarım zaten var.” MKVToolNix. Ücretsiz, bir şey yazmadan önce her izi ve bayrağı gösterir, iş de iki dakika sürer.

“Elimde işlenecek bir sezonluk bölüm var.” Bir döngüde mkvmerge veya FFmpeg. Dosya adları bir düzene uyduğunda yukarıdaki iki komut da başında durmana gerek kalmadan çalışır.

“Dosyanın iPhone'da ya da QuickTime'da oynaması gerekiyor.” FFmpeg ile MP4 yap ve altyazıların düz metin olacağını kabul et.

“Altyazılarım stilli ASS.” Fontu eklenmiş MKV. MP4 stili içeri alırken siler.

“Elimde yalnızca video var.” Transkripsiyon, çeviri ve çoklu izli MKV tek yerde olsun istiyorsan Sablate. Adımları kendin birleştirmeye razıysan ücretsiz yol Subtitle Edit.

“Video YouTube'a gidecek.” Konteynerlerin hiçbiri. YouTube gibi platformlar .srt ya da .vtt dosyasını ayrı bir yükleme olarak alır.

MKV altyazılarım neden görünmüyor?

İz neredeyse her zaman oradadır; bir şey onu göstermemeyi seçiyordur. Önce dosyanın gerçekte neler içerdiğini listele:

ffprobe -v error -select_streams s -show_entries stream=index,codec_name:stream_tags=language,title:stream_disposition=default,forced -of compact=p=0 film.subtitled.mkv

Her altyazı izi için kodeği, dili, adı ve varsayılan ile zorunlu bayrakları içeren tek bir satır yazdırılır. İzler listeleniyorsa şu listeyi sırayla kontrol et:

  1. Hiçbir iz varsayılan olarak işaretlenmemiş. Oynatıcının kendiliğinden açacağı bir şey yok. Bayrağı Yöntem 1'deki gibi mkvpropedit ile ayarla.
  2. Oynatıcının kendi tercihi geçerli olur. VLC, Plex ve birçok TV, tercih edilen bir altyazı dilini ya da altyazıyı kapalı tutan bir ayarı saklar ve bu, dosyadaki bayrakları geçersiz kılar. Dosyadan önce oynatıcıyı kontrol et.
  3. Tam bir iz zorunlu olarak işaretlenmiş. Altyazıyı kapatan izleyiciler yine de her satırı görür. Zorunlu bayrak yalnızca kısmi izlere konur.
  4. MP4'teki iz yok sayılıyor. Birçok oynatıcı mov_text'i sessizce atlar. Dosyanın MP4 olması şart değilse MKV'ye yeniden mux'la.
  5. Aksanlı harfler bozuk karakter yığınına dönüşüyor. Kaynak SRT eski bir kodlamayla kaydedilmiş. UTF-8 olarak yeniden kaydedip tekrar mux'la ya da kodlamayı mkvmerge'de --sub-charset ile, FFmpeg'de altyazı girdisinin önüne konan -sub_charenc ile belirt.
  6. Stilli metin sade bir fontla görünüyor. ASS izi, oynatan makinede bulunmayan bir fontu ad olarak belirtiyor. Font dosyasını son FFmpeg komutundaki gibi ekle.

Mux'lama, altyazı teslim sürecinin ucuz kısmıdır: MKVToolNix'te bir dakika, FFmpeg'de tek satır, hiçbir şey yeniden kodlanmaz. Pahalı kısım ise en başta her dilde iyi altyazı dosyalarına sahip olmaktır. Onlar zaten elindeyse yukarıdaki ücretsiz araçlar sana yeter. Elinde yalnızca kayıt varsa Sablate'i Windows veya Mac için indir, kaydın transkriptini çıkarıp çevir ve izleri, etiketleri ve bayrakları dışa aktarmanın senin yerine yazmasına izin ver.