M3U8 Nedir? HLS Oynatma Listeleri İçin Dostça Kılavuz
M3U8 oynatma listelerinin HLS içinde nasıl çalıştığı, nasıl oynatılacağı, MP4'e nasıl dönüştürüleceği ve sorunların nasıl giderileceği hakkında pratik bir izlenecek yol.
M3U8 nedir? HLS oynatma listeleri için dostça bir kılavuz (nasıl çalışır, oynat, dönüştür, düzelt)
Özet (TL;DR)
- M3U8, HLS yayını tarafından kullanılan bir UTF‑8 metin oynatma listesidir. Oynatıcıya küçük .ts video parçalarını nereden alacağını söyler. Bunu videonun kendisi değil, bir rota haritası olarak düşünün.
- Oynatmak için: .m3u8 bağlantısını VLC’de (Masaüstü/Mobil) açın. Web’de, Chrome/Firefox/Edge için hls.js kullanın (Safari, HLS’yi yerel olarak oynatır).
- MP4’e dönüştürmek için: önce akış kopyalamayı deneyin (yeniden kodlama yok), ardından gerekirse FFmpeg ile yeniden kodlayın. DRM korumalı akışlar dönüştürülemez.
1) M3U8 tam olarak nedir?
M3U8, HTTP Canlı Akış (HLS) için medya segmentlerini listeleyen düz bir metin dosyasıdır (UTF‑8). HLS, büyük bir dosya yerine videoyu birçok küçük .ts parçasına böler ve bunları bu oynatma listesinde tanımlar. Oynatıcılar listeyi okur, segmentleri sırayla getirir ve ağ hızı değiştiğinde bile sorunsuz bir şekilde oynatmaya devam eder.
Küçük bir örnek:
#EXTM3U
#EXTINF:6,
segment1.ts
#EXTINF:6,
segment2.ts
Ana oynatma listeleri birden fazla kaliteyi de listeleyebilir; oynatıcı en iyisini otomatik olarak seçer.
2) HLS, M3U8 ile nasıl çalışır?
- Videoyu kodla -> kısa segmentlere kes (örneğin, 6 sn) -> M3U8 yaz.
- Oynatıcı oynatma listesini indirir, ardından segmentleri HTTP üzerinden tek tek çeker.
- Bant genişliği düşerse, oynatıcı bir ana oynatma listesinde listelenen daha düşük bit hızlı bir varyanta geçebilir. Bu tasarım HLS’yi dayanıklı ve mobil uyumlu hale getirir.
3) Bir .m3u8 bağlantısı nasıl oynatılır
- Masaüstü: VLC Media Player → Medya → Ağ Akışı Aç → URL’yi yapıştırın.
- Mobil: iOS/Android için VLC, birçok halka açık akış için de çalışır.
- Web: Safari, HLS’yi yerel olarak oynatır; diğer tarayıcılar için HLS’yi bir HTML5 video öğesine eklemek üzere hls.js kullanın. Oynatma başarısız olursa, URL’nin halka açık olup olmadığını, kimlik doğrulamanın arkasında olmadığını ve DRM korumalı olmadığını kontrol edin.
4) M3U8’i MP4’e Dönüştür (FFmpeg)
Hızlı, kayıpsız bir remux ile başlayın (yeniden kodlama yok):
ffmpeg -i "https://example.com/stream.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4
Yukarıdakiler başarısız olursa (karışık kodekler, ADTS ses vb.), güvenli bir şekilde yeniden kodlayın:
ffmpeg -i "https://example.com/stream.m3u8" -c:v libx264 -c:a aac -movflags +faststart output.mp4
Notlar:
- Özel/kimliği doğrulanmış/DRM akışları dönüştürülmez.
- Siyah video veya ses yoksa, yukarıdaki gibi yeniden kodlayın.
5) Yaygın sorunlar ve düzeltmeler
- 403/401 (Yasak/Yetkisiz): Sunucu başlıklar (Referer, User‑Agent, Cookies) veya oturum açma bekler. Orijinal siteyi veya yetkili bir oynatıcıyı kullanın.
- 404 (Bulunamadı): Oynatma listesi veya segmentler taşındı/süresi doldu. Sayfayı yenileyin veya en son URL’yi kullanın.
- CORS (web): Sayfanız oynatma listesini alanlar arasında getiremiyor. Sunucuda CORS’u etkinleştirin veya proxy kullanın.
- DRM/Şifreleme: Birçok ücretli akış, kısıtlı erişime sahip DRM veya AES‑128 anahtarları kullanır. Haklar olmadan oynatamaz/dönüştüremezsiniz.
- Takılma/arabelleğe alma: Daha düşük bir varyant (bit hızı) veya daha iyi bir ağ deneyin.
6) Yasal ve etik not
Yalnızca kullanma hakkınız olan içeriği oynatın/indirin. Site şartlarına, DRM’ye ve yerel yasalara saygı gösterin.
7) Hızlı özet
M3U8, HLS yayını için “harita”dır. Oynatmak için VLC (uygulamalar) veya hls.js (web) kullanın. Yasal olarak yapabildiğinizde remux yapmak veya yeniden kodlamak için FFmpeg kullanın. Bir şeyler bozulursa, önce kimlik doğrulamayı, CORS’u ve DRM’yi kontrol edin.
SSS
- M3U8 bir video dosyası mıdır? Hayır, birçok küçük video segmentini işaret eden bir oynatma listesidir.
- Bağlantı neden Safari’de çalışıyor da Chrome’da çalışmıyor? Safari, HLS’yi yerel olarak destekler; Chrome, JavaScript oynatımına (hls.js) ihtiyaç duyar.
- Tüm segmentleri tek bir MP4’te birleştirebilir miyim? Evet — FFmpeg kullanın (yukarıdaki komutlara bakın). Akış kopyalama başarısız olursa yeniden kodlayın.