← Bloga dön

M3U ve M3U8: Kodlama, HLS ve Liste Örnekleri

M3U ve M3U8 çalma listelerini açıklayan mavi bir kaplamayla gerçek bir çalışma alanında bir dizüstü bilgisayar, telefon ve dizüstü bilgisayar.
Bir dosyayı seçmeden veya düzenlemeden önce dosya adını, kodlamayı ve çalma listesi amacını ayırın.

M3U ve M3U8 arasındaki pratik fark, görüntü kalitesi değildir. .m3u8 uzantısı geleneksel olarak UTF-8 oynatma listesi metnini bildirirken .m3u hangi kodlamanın kullanıldığını tek başına size söylemez. Hiçbir uzantı, dosyanın bir kanallar dizini mi, yoksa bir HLS sunumunun parçası mı olduğunu söylemez.

Doğru girişi seçmek için iki soruyu yanıtlayın: Metin nasıl kodlanmıştır ve girişleri neyi temsil etmektedir? Bir kanal dizini akışların tamamlanmasına işaret edebilir. Bir HLS oynatma listesi, bir sunumun varyantlarını veya medya segmentlerini tanımlayabilir. Bu işleri karıştırmak, tanıdık iki son ek arasında seçim yapmaktan daha fazla soruna neden olur.

M3U ve M3U8 arasındaki pratik fark

Uzantıyı bir zarfın üzerindeki etiket gibi düşünün. Yazılımın ne bekleyeceğine karar vermesine yardımcı olur, ancak içeriği yeniden yazmaz. Bir dosya makul bir ada sahip olabilir ve yine de bozuk metin, hata sayfası veya alıcı uygulamanın kabul etmediği bir yapı içerebilir.

Soru Ne kontrol edilmeli Sonek neyi kanıtlayamaz
Adlar doğru şekilde görüntülenecek mi? Dosyanın metin kodlaması Gerçek baytların adla eşleştiğini
Bu bir kanal dizini mi? Girişlerinin anlamı Her M3U8 dosyasının kanalları listelemesi
Medya oyunu oynayacak mı? Akış erişimi ve medya desteği Kaynağın mevcut veya uyumlu olması

Yetkili kaynağınızın oynatıcınız için önerdiği dosyayla başlayın. Başka bir kılavuz bir uzantının her zaman daha iyi olduğunu söylüyor diye onu yeniden adlandırmayın. Sonuç kötüleşirse değişikliklerinizi karşılaştırabilmek için orijinali koruyun.

Mavi grafik açıklayıcı: Adından fazlasını okuyun. Uzantı: Tanımlama. Kodlama: Metin karakterleri. İçerik: Gerçek yapı.
Uzantı: Tanımlama; Kodlama: Metin karakterleri; İçerik: Gerçek yapı.

Kodlama ve kanal adları

Metin kodlaması, depolanan baytların karakterleri nasıl temsil ettiğini açıklar. UTF-8, aksanlı adları ve birçok yazı sistemini tek bir dosyada temsil edebilir. "Kafe Radyosu" gibi bir ad beklenmedik semboller olarak görünüyorsa akışı değiştirmeden önce dosyanın kodlamasını ve kaydedilme şeklini inceleyin.

Kodlama sorunu, satırın başvurduğu ortam adresini değiştirmeden etiketleri etkileyebilir. Bunun tersi de mümkündür: Her akış URL'sinin süresi dolduğunda kanal adları mükemmel görünebilir. Okunabilir bir listenin erişimin çalıştığını kanıtladığını varsaymak yerine, neyin yanlış olduğunu teşhis edin.

Sahip olduğunuz bir oynatma listesini düzenlerseniz, kaydetme kodlamasını ortaya çıkaran bir düz metin düzenleyici kullanın. UTF-8'i seçin ve amaçlanan satır sonlarını koruyun. Bir kelime işlemcinin görsel olarak düzenli belgesi, bir metin oynatma listesi için uygun olmayan biçimlendirme içerebilir.

Dosya adı bir kodlama dönüşümü değildir

channels.m3u'u channels.m3u8 olarak yeniden adlandırmak dosya adını değiştirir. Orijinal baytların kodunu çözmez ve bunları tekrar UTF-8 olarak yazmaz. Dönüştürme gerekiyorsa metni doğru orijinal kodlamasını kullanarak açın ve ayrı bir UTF-8 kopyası kaydedin.

Kaydettikten sonra İngilizce olmayan birkaç adı, özellikle de halihazırda hasar görmüş karakterleri kontrol edin. Okunamayan metni farklı bir kodlamayla kaydetmek, amaçlanan kelimeleri yeniden oluşturmak yerine hasarı koruyabilir. Adları karakter karakter tahmin etmek yerine, mümkün olduğunda orijinal kaynağı kurtarın.

Yönetilen bir oynatma listesi için kaynak sahibinden UTF-8 dışa aktarımını isteyin. Oluşturulan bir dosyayı kendiniz düzenlemek bir kopya için işe yarayabilir ancak bir sonraki indirişinizde kaybolabilir. Oluşturma sürecini düzeltmek, dışa aktarılan etiketleri tekrar tekrar onarmaktan daha dayanıklıdır.

Onarım sırasında kodlama değişikliklerini ve etiket düzenlemelerini ayrı tutun. Öncelikle amaçlanan kodlamanın bir kopyasını kaydedin ve adları değiştirmeden inceleyin. Daha sonra bilinen etiketleme hatalarını başka bir adımda düzeltin. Her ikisini de aynı anda değiştirirseniz orijinal dosya ile içe aktarılan koleksiyon arasında karakterlerin neden değiştiğini açıklamak için gereken kanıtları kaybedebilirsiniz.

Kanal dizini ve HLS oynatma listesi

Basit bir dizin, okunabilir adları medya adresleriyle ilişkilendirir. Bu icat edilen örnek, çalışan kanalları değil şekli gösterir:

#EXTM3U
#EXTINF:-1,Studio Camera
https://media.example.com/studio/master.m3u8
#EXTINF:-1,Training Session
https://media.example.com/training/session.mp4

Her adres, izleyicinin seçebileceği bir öğeyi temsil eder. Birincisi bir HLS sunumuna yol açabilir, ikincisi ise bir medya dosyasını adlandırır. Dizin, bu medya kaynaklarının bir katman üzerindedir. Videoyu içermiyor veya örnek adresleri sunmuyor.

Live365'in basit M3U örneği üstbilgiyi, ekran bilgilerini ve akış adresi modelini gösterir. Bunu, her isteğe bağlı IPTV özelliğinin her oynatıcıda çalıştığının kanıtı olarak değil, temel düzenlemeyi anlamak için kullanın.

HLS ana ve medya oynatma listelerinin farklı görevleri vardır

RFC 8216 kapsamında, bir HLS ana oynatma listesi, değişken medya oynatma listelerine işaret eder; bir medya çalma listesi sırayla oynatılan bölümleri tanımlar. İlki, müşterinin sunumun bir versiyonunu seçmesine yardımcı olurken ikincisi, sunumu oynatmak için kullanılan parçaları açıklar.

Tam kurallar için 4. ve 4.1. bölümlerdeki HLS oynatma listesi gereksinimlerini okuyun. Bu bir Bilgilendirici RFC'dir. Bayt sırası işareti olmadan UTF-8 gerektirir ve .m3u8 veya .m3u URI yolu veya belirtilen HTTP içerik türü aracılığıyla tanımlamaya izin verir. HLS her zaman bir .m3u8 sonekini gerektirmez.

Mavi grafik açıklayıcı: Üç çalma listesi yapısı. Kanal dizini: Bir akış seçin. HLS master: Bir değişken seçin. HLS ortamı: Bölümleri oynatın.
Kanal dizini: Bir akış seçin; HLS master: Bir değişken seçin; HLS ortamı: Bölümleri oynatın.

İçe aktarmadan önce amacı öğrenin

Ana oynatma listesinde #EXT-X-STREAM-INF veya medya oynatma listesinde #EXT-X-TARGETDURATION gibi etiketlerle karşılaşabilirsiniz. Bunlar HLS yapısına dair ipuçları. Bir kanal dizinine benzemesi için akış bildirimindeki tanıdık olmayan etiketleri çıkarmayın.

Bir oynatıcı, bildirimin tüm bölümlerini ayrı kanallar olarak sunmadan, bir dizin girişinin medya hedefi olarak bir HLS adresini kullanabilir. Yararlı ayrım da budur: İzleyici programı seçer ve oynatma sistemi dahili dağıtım yapısını yönetir.

Bir içe aktarma işlemi beklenmedik segment adları veya tanıdık olmayan bir öğe üretirse, amaçlanan dizini mi yoksa tek bir akışın bildirimini mi sağladığınızı sorun. Uygulamanın medyayı açmak ve kanal koleksiyonlarını içe aktarmak için ayrı yolları olabilir. Bunların varlığı ve etiketleri söz konusu uygulamada doğrulanmalıdır.

HLS ana oynatma listesinin ilgisiz televizyon kanallarından oluşan düzenlenebilir bir menü olduğunu varsaymayın. Varyantları aynı sunumun alternatif kodlamalarını temsil edebilir. İlişkileri anlaşılmadan bunların silinmesi veya yeniden düzenlenmesi, kullanıcı arayüzünü basitleştirmek yerine oynatmaya zarar verebilir.

Yeniden adlandırma neleri değiştirir ve neleri değiştirmez

Yeni bir uzantı, cihazın dosyayı açmak için hangi uygulamayı sunduğunu etkileyebilir. Ayrıca, bir belgeyi barındırdığınızda sunucunun işleyişini de etkileyebilir. Bu etkiler, yeniden adlandırmanın uyumsuz içerikleri onardığının kanıtı değil, doğru adların kullanılmasının nedenleridir.

Yeniden adlandırma, kimlik bilgilerini yenilemez, codec bileşenini dönüştürmez, eksik medya segmentleri oluşturmaz veya bir web sitesini akışa dönüştürmez. İndirilen bir dosya bir HTML oturum açma sayfası içeriyorsa .m3u8 eklendiğinde, bu dosya farklı bir adla aynı oturum açma sayfası olarak kalır.

Değiştirmek Neleri etkileyebilir? Ayrı olarak doğrulamanız gerekenler
Uzantıyı yeniden adlandırın Dosya tanımlama ve ilişkilendirme Gerçek kodlama ve yapı
UTF-8 kullanarak kaydet Karakter gösterimi Doğru etiketler ve geçerli söz dizimi
Akış adresini değiştirme Talep edilen kaynak Yetkilendirme ve oynatma desteği
Görünen adı düzenleme Bir girişi nasıl tanımlarsınız? Medyasının hâlâ çalışıp çalışmadığı

Yanlışlıkla çift uzantılardan kaçının

Bazı düzenleyiciler .txt'yi otomatik olarak ekler. Dosya yöneticisinde channels.m3u8 olarak görüntülenen bir belgenin aslında başka bir gizli son eki olabilir. İçe aktarma seçicinin kabul etmemesi durumunda tam adı inceleyin, ardından gelecekteki dışa aktarma işlemleri için kaydetme seçeneklerini düzeltin.

Ayrıca yerel bir dosyayı uzak yanıttan ayırın. Bir URL, yolu yabancı görünse bile oynatma listesi metnini döndürebilir. Bunun tersine, oynatma listesi uzantısıyla biten bir URL, bir hata belgesi döndürebilir. Gerçek yanıt ve alıcı oyuncunun desteklenen girdileri ne olacağını belirler.

Düzenlenmiş bir dizini dağıtmadan önce, onu alıcıların alacağı biçimde kontrol edin. Düzenleyici önizlemesi içe aktarılan sonuç değildir ve önbelleğe alınmış eski bir kopya da yeni dosya değildir. Deneme kopyasına net bir ad verin ve içeriğini yerel olarak doğrulayın. Bu, yalnızca uzantının değiştiğine inanarak iki farklı sürümü karşılaştırmanın önüne geçer.

Hangi dosyayı kullanmalısınız?

Oynatıcınız için kaynak sahibinin desteklediği dışa aktarmayı kullanın ve kendi dizininizi düzenlerken UTF-8 metnini olduğu gibi koruyun. Yetkili akış adreslerinden küçük bir koleksiyon oluşturmanız gerekiyorsa kendi M3U dosyanızı oluşturmak için ayrı kılavuzu izleyin.

Mavi grafik açıklayıcı: Seçilen dosyayı kontrol edin. Okunabilir adlar: Doğru karakterler. Desteklenen yapı: Beklenen öğeler. Başarılı içe aktarma: Ardından oynatmayı test edin.
Okunabilir adlar: Doğru karakterler; Desteklenen yapı: Beklenen öğeler; Başarılı içe aktarma: Ardından oynatmayı test edin.

Biçim seçimini başarılı olarak adlandırmadan önce üç şeyi kontrol edin. İsimler amaçlandığı gibi görüntülenmeli, oynatıcı beklenen yapıyı tanımalı ve seçilen giriş gerçekten oynatılmalıdır. Bu kontroller farklı katmanları test eder; birini geçmek diğerlerinin yerine geçmez.

Örneğin, okunabilir adlar ve boş bir oynatma ekranı, normalde çalışan bir koleksiyondaki okunamayan adlardan farklı bir inceleme yapılmasını önerir. Arızayı daraltırken çalışan parçaları koruyun. Tek bir kaynak adresi değişti diye tüm dizini yeniden oluşturmanın bir anlamı yok.

Bir oynatma listesini içe aktarmaya hazır olduğunuzda, söz konusu uygulama için belgelenen URL'yi veya dosya yolunu seçin. Orijinalin temiz bir kopyasını saklayın ve değiştirdiğiniz şeyleri kaydedin. Kaynak her iki biçimi de sağlıyorsa, bir uzantının doğası gereği daha hızlı olduğunu varsaymak yerine, bunları aynı koşullar altında karşılaştırın.

Dosyayla birlikte kısa bir değişiklik notu bulundurun: neyi değiştirdiniz, neden değiştirdiniz ve daha sonra hangi girişi kontrol ettiniz. Biçim onarımının, oynatma listesini daha uyumlu hale getirmek gibi belirsiz bir hedef yerine, vurgulu adların korunması gibi belirli bir amacı olduğunda tekrarlanması daha kolaydır.

Kendi desteklenen çalma listenizle iPhone için APTV'yi kullanın, ardından hem okunabilir girişleri hem de oynatmayı doğrulayın. Bir uzantıyı değiştirmek veya bir uygulama özelliği satın almak, kullanılamayan bir kaynağı geri yükleyemez.

Sık sorulan sorular

M3U ile M3U8 arasındaki temel fark nedir?

M3U bir metin çalma listesi biçimidir; M3U8 uzantısı geleneksel olarak UTF-8 metnini tanımlar. Uzantı tek başına size içeriklerin bir kanal dizini mi yoksa bir HLS oynatma listesi mi olduğunu söylemez. Yapıyı inceleyin ve oynatıcınız tarafından desteklenen girişi kullanın.

Her M3U8 dosyası IPTV kanallarının bir listesi midir?

Hayır. Bir M3U8 kaynağı, ayrı olarak adlandırılmış kanallardan oluşan bir dizin yerine bir akış için HLS varyantlarını veya medya bölümlerini tanımlayabilir. Dosyayı içe aktarmadan veya düzenlemeden önce dosyanın ne içerdiğini kontrol edin. Benzer uzantılar bu yapıları birbirinin yerine kullanılabilir hale getirmez.

Sadece dosyayı yeniden adlandırarak M3U'yu M3U8'e dönüştürebilir miyim?

Yeniden adlandırma, metin kodlamasını veya çalma listesi yapısını değil, dosya adını değiştirir. UTF-8 kodlaması gerekiyorsa metni bu kodlamayla kaydedin ve içeriğini doğrulayın. Uzantıyı değiştirmek bozuk akış adreslerini onaramaz veya bir HTML hata sayfasını geçerli bir oynatma listesine dönüştüremez.

M3U8 daha iyi video kalitesi anlamına mı geliyor?

Hayır. Bir oynatma listesinin metin kodlaması, video çözünürlüğünü, sıkıştırma kalitesini veya dağıtım güvenilirliğini belirlemez. Bunlar başvurulan medyaya ve oynatma yoluna aittir. Dikkatlice adlandırılmış bir oynatma listesi yine de zayıf bir kaynağa, sade bir dizin ise mükemmel medyaya işaret edebilir.

Bir oynatma listesi çevrimdışı çalışabilir mi?

Yalnızca başvuruda bulunduğu medyanın ağ olmadan da mevcut olması ve oynatıcının bu düzenlemeyi desteklemesi durumunda. Çevrimiçi bir dizini yerel olarak kaydetmek, videoları adreslerinin arkasına indirmez. Test olarak yerel bir dosyanın varlığını kullanmak yerine medya konumlarını kontrol edin.