CORS hatası nasıl anlaşılır?
| Kontrol etmek | Belirti | Anlam |
|---|---|---|
| Bildirim engellendi | .m3u8 isteği, oynatma başlamadan önce başarısız olur. | Kökenin Access-Control-Allow-Origin'a ihtiyacı var veya oynatıcının bir proxy'ye ihtiyacı var. |
| Anahtar engellendi | Bildiri yükleniyor ancak şifreli oynatma başarısız oluyor. | AES-128 anahtarı URL ayrıca CORS'e izin vermeli veya aynı proxy üzerinden yönlendirme yapmalıdır. |
| Segmentler engellendi | Oynatma başlar, ardından ara belleğe alınır veya durur. | Her .ts veya .m4s segment isteği aynı CORS yoluna ihtiyaç duyar. |
| VLC çalışıyor, tarayıcı başarısız oluyor | Masaüstü oynatma çalışıyor ancak web oynatma çalışmıyor. | Bu genellikle bozuk bir akışı değil, bir tarayıcı CORS sorununu doğrular. |
| Ön kontrol başarısız oluyor | Özel başlıklar, kaynağın reddettiği bir OPTIONS isteğini tetikler. | Gereksiz başlıklardan kaçının veya proxy'yi/orijini SEÇENEKLERİ işleyecek şekilde yapılandırın. |
HLS CORS hatası nasıl düzeltilir veya test edilir
- 1
Bildirimin yüklenip yüklenmediğini kontrol edin
M3U8 URL öğesini açın veya oynatıcıya yapıştırın. Bildirim isteği CORS tarafından engellenirse oynatma başlatılamaz bile.
- 2
VLC ile karşılaştırın
VLC aynı URL'i oynatabiliyor ancak tarayıcı oynatamıyorsa, akışa muhtemelen erişilebilirdir ve sorun tarayıcı erişim kontrolünden kaynaklanmaktadır.
- 3
Akıllı CORS proxy'yi etkinleştirin
Proxy'yi açarak bildirimlerin, şifreleme anahtarlarının ve medya bölümlerinin tamamının tarayıcının okuyabileceği bir yanıt üzerinden geçmesini sağlayın.
- 4
Durum raporunu çalıştırın
Segmentlerin yalnızca CORS tarafından engellenmek yerine gerçekten canlı olup olmadığını kontrol etmek için proxy aracılığıyla doğrulayıcıyı kullanın.
- 5
Referer'ı yalnızca gerektiğinde ekleyin
Kaynak, hotlink korumasını kullanıyorsa, orijinal sayfa URL'i Referer olarak ayarlayın. Kaynak gerektirmedikçe özel başlıklar eklemeyin.
Neden HLS birden fazla URL için CORS'a ihtiyaç duyuyor?
Bir HLS oynatıcısı yalnızca bir dosya getirmez. Bir ana bildirimi, bir veya daha fazla medya oynatma listesini, AES-128 akışları için şifreleme anahtarlarını ve birçok URL segmentini getirir. Bu kaynakların herhangi birinde eksik olan tek bir CORS başlığı, oynatmayı kesintiye uğratabilir; dolayısıyla yalnızca ilk .m3u8 yanıtını test etmek yeterli değildir.
Access-Control-Allow-Origin ne yapmalı
Herkese açık akışlarda, kaynak, oynatıcıyı barındıran site için Access-Control-Allow-Origin gönderebilir veya kimlik bilgileri söz konusu olmadığında joker karakter kullanabilir. Özel akışlar için kaynağı kilitli tutun ve test için kontrollü bir proxy uç noktası kullanın. Aynı HLS oturumunda doğrudan ve vekil URL'leri karıştırmaktan kaçının.
Hata ayıklama için proxy neden faydalıdır?
Proxy, tarayıcının kendi izin verilen kaynağınızdan HLS varlıklarını talep etmesine izin verirken, proxy gerçek bildirimi, anahtarı ve segment URL'leri getirir. Bu, bir akışın bozuk mu yoksa yalnızca tarayıcı politikası tarafından mı engellendiğinin anlaşılmasını mümkün kılar. Ayrıca, kaynak gerektirdiğinde Referer veya User-Agent'ı ekleyebileceğiniz tek bir yer sağlar.
İlgili akış hata ayıklama araçları
- M3U8 bağlantı sorunlarını giderme CORS, Referer, ölü segmentler, codec limitleri ve DRM'yi kapsar.
- Özel Referer M3U8 oynatıcı yönlendirilmiş başlıklara ihtiyaç duyan hotlink korumalı akışları açıklar.
Sık sorulan sorular
HLS CORS hatasına ne sebep olur?
Kaynak, çapraz kaynak erişimine izin vermediği için tarayıcı M3U8 bildirimini, şifreleme anahtarını veya medya bölümlerini okuyamazsa HLS CORS hatası oluşur. VLC hala akışı oynatabiliyor çünkü CORS tarayıcılar tarafından zorunlu tutuluyor.
M3U8 akışım neden VLC'te oynatılıyor ancak Chrome'da oynatılmıyor?
VLC tarayıcının CORS kontrolleri tarafından kısıtlanmaz. VLC çalışırsa ve Chrome başarısız olursa, akışa genellikle erişilebilir olur ancak tarayıcı, CORS başlıkları veya proxy olmadan bir veya daha fazla HLS isteğini okuyamaz.
Bir CORS proxy'si M3U8 oynatmayı düzeltebilir mi?
Evet, test etmek ve hata ayıklamak için. Proxy manifest'i, medya çalma listelerini, anahtarları ve bölümleri her HLS isteğinin tarayıcının okumasına izin verilen bir kaynaktan gelmesini sağlayacak şekilde yönlendirmelidir.
HLS bölümlerinin CORS başlıklarına ihtiyacı var mı?
Evet. Bildirinin, alt çalma listelerinin, anahtarların ve her medya bölümünün tarayıcı tarafından okunabilmesi gerekir. Üst düzey .m3u8 dosyası doğru CORS başlıklarına sahip olsa bile akış başarısız olabilir.
Bu, hotlink korumasıyla aynı mı?
No. CORS bir tarayıcı erişim kuralıdır. Hotlink koruması, belirli bir Referer veya User-Agent gerektirebilecek bir kaynak kuralıdır. Bazı akışlarda her iki sorun da vardır, dolayısıyla bir proxy'ye ve eşleşen bir Referer'ye ihtiyacınız olabilir.