MPEG-DASH Nedir? HLS ile Farkları, Uyumluluk ve CMAF Rehberi
Kısa cevap: MPEG-DASH, videoyu HTTP üzerinden parçalar halinde ileten ve kaliteyi bağlantı hızına göre değiştiren, ISO/IEC 23009-1 olarak standartlaşmış bir yayın teknolojisidir. HLS ile aynı fikre dayanır; fark, DASH'in XML tabanlı .mpd manifestosu, HLS'nin ise .m3u8 oynatma listesi kullanmasıdır. Apple cihazları HLS'yi, birçok başka platform ise DASH'i de oynatır.
Öne çıkanlar
- MPEG-DASH ve HLS aynı fikre dayanır: video parçalara bölünür, HTTP ile iletilir, kalite bağlantıya göre değişir.
- DASH, XML tabanlı bir .mpd manifestosu ve uluslararası bir ISO/IEC standardı kullanır; HLS ise metin tabanlı .m3u8 listeleri ve Apple kökenli bir belirtim kullanır.
- DASH codec'ten bağımsızdır; Apple'ın sistem oynatıcıları ise DASH'i yerleşik olarak oynatmaz.
- CMAF, aynı parçaların hem HLS hem DASH tarafından kullanılmasını sağlayan ortak bir parça biçimidir.
- İzleyici olarak hangisinin kullanıldığını seçmezsiniz; hangi biçimleri oynatabildiği oynatıcınıza bağlıdır.
MPEG-DASH nedir sorusu, çoğunlukla "HLS ile farkı ne?" sorusuyla birlikte gelir. İkisi de bugün video yayınlarının büyük bölümünü taşır ve ilk bakışta birbirine çok benzer. Bu yazıda MPEG-DASH'in ne olduğunu, manifestosunun nasıl göründüğünü, HLS ile farklarını bir tabloda ve CMAF'ın bu iki dünyayı nasıl yaklaştırdığını anlatıyoruz.
https://alpayazilim.com tarafından geliştirilen ücretsiz medya oynatıcı Alpa Player'ın hangi biçimleri oynattığını da yazının sonunda açıkça belirtiyoruz.
MPEG-DASH nedir?
MPEG-DASH (Dynamic Adaptive Streaming over HTTP), videoyu küçük parçalara bölüp HTTP üzerinden ileten ve oynatıcının kaliteyi bağlantı hızına göre değiştirmesine izin veren, uluslararası bir standarttır. Standart, ISO/IEC 23009-1 numarasıyla yayımlanmıştır ve 2012'de ilk kez kabul edilmiştir.
DASH'i HLS'den ayıran önemli bir nokta, özel bir şirketin değil MPEG çalışma grubunun standardı olmasıdır. Bir diğeri, codec'ten bağımsız tasarlanmasıdır: belirtim hangi codec'in kullanılacağını dayatmaz, yalnızca parçaların nasıl sunulacağını tarif eder. Büyük video hizmetlerinin bir kısmı DASH kullanır; YouTube ve Netflix bunlar arasında sayılır.
Temelleri öğrenmek için HLS tarafını HLS nedir yazısında okuyabilirsiniz; bu yazıda iki teknolojiyi birlikte ele alıyoruz.
MPEG-DASH nasıl çalışır?
DASH'te video ve ses ayrı ayrı kodlanıp parçalara bölünür, tüm parçalar ve kaliteler MPD adı verilen bir XML dosyasında tarif edilir ve oynatıcı bu dosyaya bakarak uygun parçaları indirir. Mantık HLS'ninkiyle neredeyse aynıdır; değişen, dosyanın biçimidir.
MPD (Media Presentation Description) dosyasının hiyerarşisi şöyledir: bir MPD, bir ya da daha fazla Period (dönem) içerir; her dönemde AdaptationSet (video, ses, altyazı gibi bir tür) bulunur; her AdaptationSet içinde de farklı bit hızlarında Representation (kalite) yer alır. Aşağıdaki sade örnek, iki video kalitesi ve bir ses akışı sunan bir MPD'dir:
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static"
mediaPresentationDuration="PT10M" minBufferTime="PT4S"
profiles="urn:mpeg:dash:profile:isoff-live:2011">
<BaseURL>https://cdn.example.com/video/</BaseURL>
<Period>
<AdaptationSet contentType="video" mimeType="video/mp4" segmentAlignment="true">
<SegmentTemplate timescale="90000" duration="360000" startNumber="1"
initialization="$RepresentationID$/init.mp4"
media="$RepresentationID$/seg-$Number$.m4s"/>
<Representation id="360p" bandwidth="800000" width="640" height="360" codecs="avc1.42c01e"/>
<Representation id="720p" bandwidth="2800000" width="1280" height="720" codecs="avc1.4d401f"/>
</AdaptationSet>
<AdaptationSet contentType="audio" mimeType="audio/mp4" lang="en">
<SegmentTemplate timescale="48000" duration="192000" startNumber="1"
initialization="$RepresentationID$/init.mp4"
media="$RepresentationID$/seg-$Number$.m4s"/>
<Representation id="audio" bandwidth="128000" codecs="mp4a.40.2"/>
</AdaptationSet>
</Period>
</MPD>
Örnekte SegmentTemplate, parça adreslerinin bir şablonla üretileceğini söyler. Video için süre 360000 bölü 90000, yani 4 saniyedir. Oynatıcı bu şablonu doldurarak 720p/seg-1.m4s, 720p/seg-2.m4s gibi adresleri kendisi oluşturur. Kalite seçimi de HLS'dekiyle aynı mantıkla yapılır; ayrıntı için adaptif bit hızı yazısına bakabilirsiniz.
MPD ile M3U8 manifestosu nasıl karşılaştırılır?
MPD karmaşık bir XML belgesi, M3U8 ise satır satır okunan düz metindir; ikisi de aynı işi görür: hangi parçanın nerede olduğunu söyler. HLS'nin liste biçimi için M3U8 nedir yazısına bakabilirsiniz.
| Özellik | HLS (.m3u8) | MPEG-DASH (.mpd) |
|---|---|---|
| Biçim | Düz metin, etiket satırları | XML belgesi |
| Kalite listesi | Ana listede #EXT-X-STREAM-INF satırları | Representation öğeleri |
| Parça adresleri | Medya listesinde tek tek yazılır | Çoğunlukla bir şablonla üretilir |
| Dosya sayısı | Ana liste + her kalite için bir liste | Genellikle tek MPD |
| Okunabilirlik | Elle okuması kolay | Daha ayrıntılı, daha kalabalık |
MPEG-DASH ile HLS arasındaki temel farklar nelerdir?
DASH ile HLS arasındaki temel farklar kökenleri, standart statüleri, manifesto biçimleri ve hangi cihazlarda yerleşik çalıştıklarıdır. İkisi de HTTP üzerinden parça parça iletir ve kaliteyi kendiliğinden değiştirir.
| Özellik | HLS | MPEG-DASH |
|---|---|---|
| Köken | Apple, 2009 | MPEG, ISO/IEC standardı, 2012 |
| Belge statüsü | RFC 8216, bilgilendirme belgesi | ISO/IEC 23009-1, uluslararası standart |
| Manifesto | .m3u8 metin | .mpd XML |
| Parça biçimi | MPEG-2 TS ve parçalı MP4 (fMP4) | Ağırlıklı olarak parçalı MP4; TS profili de var |
| Codec | Cihaz desteği belirleyici | Belirtim codec'ten bağımsız; sınırı oynatıcı koyar |
| Apple cihazlarında | Yerleşik | Yerleşik değil, oynatıcı kitaplığı gerekir |
| Telif koruma (DRM) | FairPlay ve AES-128 şifreleme | Genellikle Widevine ve PlayReady |
| Düşük gecikme | Low-Latency HLS | Düşük gecikmeli DASH, CMAF parçalı aktarım |
Yani teknik olarak aralarında üstünlük sıralaması yoktur. Seçimi çoğunlukla "hedef cihazlar hangisini oynatıyor?" sorusu belirler. Codec konusunda genel bilgi için H.264, H.265 ve AV1 yazısı faydalıdır.
CMAF nedir ve iki teknolojiyi nasıl yaklaştırır?
CMAF (Common Media Application Format), HLS ve DASH'in aynı video parçalarını kullanabilmesini sağlayan, parçalı MP4'e dayalı ortak bir parça biçimidir. Tek tek her teknoloji için ayrı dosyalar üretmek yerine, aynı parçaları bir kez üretip iki farklı manifesto ile sunmak mümkün hale gelir.
- Tek parça seti: Aynı .m4s dosyaları hem .m3u8 hem .mpd tarafından kullanılır.
- Depolama ve CDN tasarrufu: Aynı içerik iki kez saklanmaz ve önbelleğe iki kez alınmaz.
- Şifreleme: Ortak şifreleme (CENC) ile aynı şifreli parçalar farklı DRM sistemleriyle açılabilir.
- Düşük gecikme: Parçaların daha küçük "chunk"lara bölünmesine imkân verir.
Apple'ın 2016'da HLS'ye parçalı MP4 desteği eklemesi, bu ortaklığın önünü açan adımlardan biri oldu. Sonuç olarak yayıncılar için fark giderek manifesto dosyasına inmektedir. Parçalı MP4 ve MP4 kavramı için MP4 ve MKV farkı yazısı bir ön bilgi sağlar.
Hangi cihaz hangisini oynatır?
Hangi teknolojinin oynayacağı cihaza ve oynatıcıya bağlıdır; izleyici olarak seçim yapmazsınız. Genel tablo şöyledir:
| Platform | HLS | DASH |
|---|---|---|
| iPhone, iPad, Apple TV, Safari | Yerleşik | Yerleşik değil, kitaplıkla |
| Android (ExoPlayer / Media3) | Destekli | Destekli |
| Masaüstü tarayıcılar | Kitaplıkla (örneğin hls.js) | Kitaplıkla (örneğin dash.js) |
| Akıllı TV'ler | Platforma göre değişir | Platforma göre değişir |
Android'in ExoPlayer (Media3) kitaplığı hem HLS'yi hem DASH'i destekler. Bir sitenin ya da hizmetin hangisini sunduğu sizin ekranınızda görünmez; oynatıcı gelen manifestoya bakıp kendisi karar verir.
Yayıncı hangisini seçmeli?
Yayıncı için seçim, hedef kitlenin cihazlarına ve telif koruma gereksinimlerine bağlıdır; bu yüzden pek çok hizmet iki biçimi birden sunar. Karar verirken şu sorulara bakılır:
- İzleyicilerin çoğu Apple cihazı kullanıyorsa: HLS yerleşik oynatıldığı için kaçınılmazdır.
- Android ve web ağırlıklı bir kitle varsa: DASH ya da HLS, oynatıcı desteğine göre seçilebilir.
- Telif korumalı içerik sunuluyorsa: hangi DRM sistemlerinin hangi cihazda çalıştığı belirleyicidir.
- Etkileşimli, düşük gecikmeli yayın gerekiyorsa: Low-Latency HLS ya da düşük gecikmeli DASH değerlendirilir.
- Depolama maliyeti önemliyse: CMAF ile tek parça seti iki manifestoya hizmet eder.
İzleyici olarak bu kararların hiçbirini siz vermezsiniz; yalnızca oynatıcınızın gelen manifestoyu anlayabilmesi gerekir. Bu yüzden iki biçimi de tanıyan bir oynatıcı, daha az "oynatılamadı" hatası demektir.
Alpa Player DASH ve HLS konusunda ne yapar?
Alpa Player'ın belgelenmiş desteği M3U ve M3U8 oynatma listeleri, HLS yayınları, MP4, MKV ve RTSP'yi ve daha fazlasını kapsar. DASH (.mpd) bu listede ayrıca adı geçen bir biçim değildir; dolayısıyla bir .mpd kaynağını kullanmadan önce kendi cihazınızda kısa bir deneme yapmanız en sağlıklısıdır.
Alpa Player, Android telefon ve tablet, Android TV ve Google TV, Samsung TV (Tizen 2020 ve sonrası), LG TV (webOS 2020 ve sonrası) ve Windows'ta çalışır. Android'de varsayılan motor ExoPlayer (Media3) tabanlıdır; VLC motoru ve harici oynatıcı da seçilebilir. Motor farkları için ExoPlayer ve VLC yazısına bakın. Alpa Player'ı ücretsiz indirin.
Uygulamada hazır kanal, film, dizi ya da liste yoktur; Alpa Player bir yayın hizmeti değildir. Eklediğiniz kaynakların içeriğini kullanma hakkına sahip olmak sizin sorumluluğunuzdadır. Eklenen adres ve şifreler cihazın güvenli deposunda AES-256 ile şifreli tutulur, ekranda gösterilmez ve Alpa Yazılım'a gönderilmez. Ayrıntılar için yasal uyarı sayfasına bakın. Bu yazı hukuki tavsiye değildir.
Yayın kalitesi ve internet hızı: hangisi daha verimli?
Kalite ve verimlilik açısından DASH ile HLS arasında köklü bir fark yoktur; belirleyici olan kodlama kalitesi ve ağdır. Aynı codec ve aynı bit hızıyla kodlanmış içerik, hangi manifestoyla sunulursa sunulsun benzer görüntü verir.
Pratikte kaliteyi asıl etkileyen, kullandığınız bağlantının hızı ve istikrarıdır. Her kalitenin gerektirdiği hızlar için video izlemek için internet hızı yazısına bakabilir, genel bir oynatıcı tanıtımı için medya oynatıcı nedir yazısını okuyabilirsiniz.
Sık sorulan sorular
MPEG-DASH ne demek?
MPEG-DASH, "Dynamic Adaptive Streaming over HTTP" ifadesinin kısaltmasıdır. Videoyu küçük parçalara bölüp HTTP üzerinden ileten ve oynatıcının kaliteyi bağlantı hızına göre değiştirmesini sağlayan, ISO/IEC 23009-1 olarak standartlaşmış bir yayın teknolojisidir.
DASH ile HLS arasındaki fark nedir?
İkisi de videoyu parçalara bölüp HTTP ile iletir ve kaliteyi otomatik değiştirir. Farklar kökende ve biçimde toplanır: HLS, Apple kökenlidir ve .m3u8 metin listeleri kullanır; DASH ise uluslararası bir standarttır ve XML tabanlı .mpd manifestosu kullanır. Apple cihazları HLS'yi yerleşik oynatır.
DASH mi HLS mi daha iyi?
Biri diğerinden genel olarak üstün değildir. Görüntü kalitesini kodlama ve ağ belirler. Seçim, hedef cihazlara bağlıdır: Apple cihazları için HLS gerekir, birçok diğer platformda ikisi de kullanılabilir. İzleyici olarak hangisinin kullanıldığını siz seçmezsiniz.
CMAF nedir?
CMAF (Common Media Application Format), parçalı MP4'e dayanan ortak bir parça biçimidir. HLS ve DASH aynı video parçalarını kullanabilir; yalnızca manifesto dosyaları (.m3u8 ve .mpd) farklıdır. Bu, depolama ve önbellek maliyetini düşürür.
Alpa Player DASH oynatır mı?
Alpa Player'ın belgelenmiş desteği M3U/M3U8 oynatma listeleri, HLS, MP4, MKV, RTSP ve daha fazlasıdır. DASH ayrıca adı geçen bir biçim değildir, bu yüzden bir .mpd kaynağını kullanmadan önce kendi cihazınızda kısa bir deneme yapmanızı öneririz.
.mpd dosyası nedir?
.mpd, DASH'in manifesto dosyasıdır. Media Presentation Description sözcüklerinin kısaltması olan bu XML belgesi, videonun kalitelerini, ses akışlarını ve parçaların adres şablonlarını tarif eder. İçinde video verisi yoktur; oynatıcı bu dosyaya bakarak parçaları indirir.