FMUSER Kablosuz Video ve Sesi Daha Kolay İletin!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Arnavutça
ar.fmuser.org -> Arapça
hy.fmuser.org -> Ermeni
az.fmuser.org -> Azerice
eu.fmuser.org -> Bask Dili
be.fmuser.org -> Beyaz Rusça
bg.fmuser.org -> Bulgar
ca.fmuser.org -> Katalanca
zh-CN.fmuser.org -> Çince (Basitleştirilmiş)
zh-TW.fmuser.org -> Çince (Geleneksel)
hr.fmuser.org -> Hırvatça
cs.fmuser.org -> Çekçe
da.fmuser.org -> Danca
nl.fmuser.org -> Hollandalı
et.fmuser.org -> Estonca
tl.fmuser.org -> Filipinli
fi.fmuser.org -> Fince
fr.fmuser.org -> Fransızca
gl.fmuser.org -> Galiçyaca
ka.fmuser.org -> Gürcüce
de.fmuser.org -> Almanca
el.fmuser.org -> Yunanca
ht.fmuser.org -> Haiti Kreyolu
iw.fmuser.org -> İbranice
hi.fmuser.org -> Hintçe
hu.fmuser.org -> Macar
is.fmuser.org -> İzlandaca
id.fmuser.org -> Endonezya
ga.fmuser.org -> İrlandalı
it.fmuser.org -> İtalyan
ja.fmuser.org -> Japonca
ko.fmuser.org -> Korece
lv.fmuser.org -> Letonca
lt.fmuser.org -> Litvanya
mk.fmuser.org -> Makedonca
ms.fmuser.org -> Malayca
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Farsça
pl.fmuser.org -> Lehçe
pt.fmuser.org -> Portekizce
ro.fmuser.org -> Romen
ru.fmuser.org -> Rusça
sr.fmuser.org -> Sırpça
sk.fmuser.org -> Slovakça
sl.fmuser.org -> Slovence
es.fmuser.org -> İspanyolca
sw.fmuser.org -> Svahili
sv.fmuser.org -> İsveççe
th.fmuser.org -> Tay
tr.fmuser.org -> Türkçe
uk.fmuser.org -> Ukraynaca
ur.fmuser.org -> Urduca
vi.fmuser.org -> Vietnamca
cy.fmuser.org -> Galce
yi.fmuser.org -> Yidiş
HLS ve Http Live Streaming, Apple tarafından tanımlanan gerçek zamanlı akış protokolleridir. HLS, HTTP protokolüne göre uygulanır. Aktarım içeriği, biri M3U8 açıklama dosyası ve diğeri TS medya dosyası olmak üzere iki bölümden oluşur.
1. M3U8 dosyası
Medya dosyası, bir dizi etiketten oluşan metin olarak tanımlanır.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Her M3U8 dosyasının ilk satırı bu etiket olmalıdır.
# EXT-X-TARGETDURATION: Maksimum medya segmenti süre uzunluğunu (saniye) belirtin. #EXTINF içinde belirtilen zaman uzunluğu bu maksimum değerden küçük veya ona eşit olmalıdır. Bu değer yalnızca bir kez görünebilir.
#EXTINF: Tek bir medya dosyasının uzunluğunu tanımlayın. Bunu ./0.ts gibi medya dosyaları takip eder
İOS cihazı ve mac üzerinde HTTP ile dağıtılabilir. Çalma listesi standardı, m3u tarafından genişletilen m8u3 dosyasıdır ve medya dosyası MPEG2-TS veya AAC dosyasıdır (yalnızca ses).
M3u8 dosyaları için iki uygulama senaryosu vardır:
Çok oranlı adaptasyon akışı,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 1280000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 2560000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Tek oranlı adaptasyon akışı
#EXTM3U
# EXT-X-TARGETDURATION: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
Uluslararası Standartlar Organizasyonu bu rfc belgesini tanımlar:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
M3u8 dosyası, m3u dosyasının bir uzantısıdır. Genişletilmiş anahtar sözcükler rfc'de tanımlanmıştır:
onların arasında:
# EXT-X-TARGETDURATION
Her TS'nin maksimum süresini tanımlayın.
# EXT-X-MEDIA-SIRALI
Geçerli m3u8 dosyasındaki ilk dosyanın seri numarasını tanımlayın. Her ts dosyasının m3u8 dosyasında sabit ve benzersiz bir seri numarası vardır. Seri numarası, MBR sırasında hizalama için kod oranını değiştirmek için kullanılır.
# EXT-X-KEY
Ts dosyasının kodunu çözmek için 16 bayt anahtar dosyasını elde etmek için kullanılan şifreleme yöntemini ve anahtar dosyasının url'sini tanımlayın.
Özellikler:
YÖNTEM
URL
# EXT-X-PROGRAM-DATE-TIME
İlk dosyanın mutlak zamanı
# EXT-X-ALLOW-CACHE
Önbelleğe izin verilip verilmeyeceği.
# EXT-X-ENDLIST
M3u8 dosyasının sonunu gösterir. Canlı m3u8 bu etikete sahip değil.
# EXT-X-STREAM-INF
Özellikler:
BANDWIDTH bit oranını belirtir
PROGRAM-ID benzersiz kimliği
CODECS, akışın kodlama türünü belirtir
# EXT-X-DEVAMSIZLIK
Etiketle karşılaşıldığında, aşağıdaki öznitelikler değişmiştir:
dosya formatı
parça sayısı ve türü
kodlama parametreleri
kodlama dizisi
zaman damgası dizisi
# EXT-X-VERSION Bu öznitelik kullanılabilir veya kullanılamaz, hiçbirine sahip olamazsınız
M3U8, üst düzey M3U8 ve ikinci düzey M3U8'e bölünmüştür. En üst düzey M3U8, esas olarak çoklu hız adaptasyonu için kullanılır. İkinci düzey M3U8 gerçek dilim dosyasıdır.
Varsayılan olarak, istemci ilk olarak en yüksek bit hızına sahip isteği seçecektir. Bit hızına ulaşılamadığını tespit ederse, düşük bit hızına sahip bir akış isteyecektir.
Gerçek kullanımda olan bir üst düzey M3U8 dosyası aşağıdaki gibidir:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 972800
22.m3u8
Yukarıdaki en üst düzey M3U8 dosyası, 11.m3u8 ve 22.m3u8 olmak üzere iki ikinci düzey dosyayı tanımlar ve istemci, içeriğini almak için bunlardan birini seçecektir.
İkincil M3U8 dosyasının içeriği aşağıdaki gibidir:
#EXTM3U
# EXT-X-VERSION: 1
# EXT-X-TARGETDURATION: 10
# EXT-X-MEDIA-SIRA: 0
#EXTINF: 3,
1-4.ts
#EXTINF: 8,
1-6.ts
#EXTINF: 8,
1-8.ts
#EXTINF: 8,
1-10.ts
#EXTINF: 8,
1-12.ts
#EXTINF: 8,
1-14.ts
#EXTINF: 8,
1-16.ts
#EXTINF: 9,
1-18.ts
#EXTINF: 6,
1-20.ts
#EXTINF: 8,
1-22.ts
#EXTINF: 9,
1-24.ts
#EXTINF: 3,
1-26.ts
# EXT-X-ENDLIST
İstemci yukarıdaki ikincil M3U8 dosyasını aldıktan sonra, içerideki dosyayı istemeye devam edecek ve ardından çalınabilir.
Yukarıdakiler isteğe bağlı durum ve canlı yayın durumuyla ilgilidir, M3U8 dosyasında canlı olduğunu söyleyen özellikler olacaktır ve müşteri periyodik olarak yeni M3U8 dosyaları talep edecektir.
// HLS, isteğe bağlı ve canlı yayın gerçekleştirdiğinde, M3U8 dosyasının farkı
1. Sorunun açıklaması
Kısa süre önce, canlı yayın yapmak için HLS (HTTP Canlı Akışı) kullanarak çapraz kodlanmış bir dilim oynatma testi yaptım. Her TS segmentasyon süresi 10 saniyedir ve aşağıdaki canlı m3u8 dosyaları TS segmentasyon dosyalarına göre oluşturulur
Kodu kopyala
#EXTM3U
# EXT-X-MEDIA-SIRA: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
#EXTINF: 10
hls / 4.ts
#EXTINF: 10
hls / 5.ts
#EXTINF: 10
hls / 6.ts
#EXTINF: 10
hls / 7.ts
#EXTINF: 10
hls / 8.ts
#EXTINF: 10
hls / 9.ts
#EXTINF: 10
hls / 10.ts
Kodu kopyala
Yukarıdaki m3u8 dosyasını live.m3u8 olarak kaydedin, Apache belge dizinine koyun ve aşağıdaki URL'yi VLC ile oynatın:
http://localhost/live.m3u8
Test, çalmaya başlayan ilk dosyanın 1.ts olmadığını buldu. Birkaç testten sonra şu bulundu:
Listede üçten fazla dosya olduğu sürece, listedeki son üç dosya her zaman oynatılır
2. Problem çözme
İnternette arama yaptıktan sonra etkili bir bilgi bulamamam çok üzücü. Bir arkadaş aynı durumla karşılaştı, çözdükten sonra deneyimini paylaştı mı?
Bir meslektaş ile görüştükten sonra meslektaş, canlı m3u8 dosya listesinin gerçek zamanlı olarak güncellenmesi gerektiğinden bunun mümkün olduğunu söyledi. Bir test yaparsak, önce sonuna # EXT-X-ENDLIST ekleyebiliriz. Bu yöntem test edildi Çalışıyor, ancak bu artık canlı m3u8 modu değil
İnterneti tekrar aradıktan sonra nihayet canlı bir m3u8 açıklaması bulduğumu doğruladım
Canlı Oynatma Listesi (Kayan Pencere)
Canlı oturumlar için dizin dosyası, yeni medya dosyaları oluşturulup kullanılabilir hale getirildikçe dosyadan medya URI'leri kaldırılarak güncellenir.
Önemli: EXT-X-ENDLIST etiketi, Canlı çalma listesinde mevcut değildir, bu da yeni ortam dosyalarının kullanılabilir olduklarında dizin dosyasına ekleneceğini belirtir.
Bir oturumun başında görüneceği şekliyle örnek bir canlı oynatma listesi için Liste 3'e bakın.
Bir oturumun başında 3 Canlı Oynatma Listesi Listeleme.
Kodu kopyala
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SIRA: 1
#EXTINF: 10,
dosyaSıra1.ts
#EXTINF: 10,
dosyaSıra2.ts
#EXTINF: 10,
dosyaSıra3.ts
#EXTINF: 10,
dosyaSıra4.ts
#EXTINF: 10,
dosyaSıra5.ts
Kodu kopyala
EXT-X-MEDIA-SEQUENCE etiket değeri, çalma listesi dosyasından kaldırılan her medya URI'si için 1 artırılmalıdır ZORUNLU. Medya URI'leri, çalma listesinde göründükleri sırayla çalma listesi dosyasından kaldırılmalıdır. Güncellenmiş indeks dosyası, sürekli bir akışa hareket eden bir pencere sunar. Bu tür bir oturum, sürekli yayınlar için uygundur.
Yeni medya URI'leriyle güncellendikten sonra aynı oynatma listesi aşağıda verilmiştir:
Medya URI'larını güncelledikten sonra 4 Canlı Oynatma Listesi Listeleme.
Kodu kopyala
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SIRA: 2
#EXTINF: 10,
dosyaSıra2.ts
#EXTINF: 10,
dosyaSıra3.ts
#EXTINF: 10,
dosyaSıra4.ts
#EXTINF: 10,
dosyaSıra5.ts
#EXTINF: 10,
dosyaSıra6.ts
Kodu kopyala
3. canlı m3u8 güncelleme kuralları
Canlı m3u8 dosyalarının listesinin sürekli güncellenmesi gerekiyor, kuralları güncelleyin:
Bir dosya oynatma listesindeki en üstteki (oynatıldığını düşündüğünüz) dosyayı kaldırın
EXT-X-MEDIA-SEQUENCE etiketini 1 artırarak sürekli güncelleyin
4. Deney
Test için canlı m3u8 oluşturmak için küçük bir program yazın
Kullanımı:
m3u8_gen.exe başlangıç_sayısı list_count süre dosyaadı.m3u8 [önek]
Kullanım örneği:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Live.m3u8 dosyasını şu şekilde oluştur
Kodu kopyala
#EXTM3U
# EXT-X-MEDIA-SIRA: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
Kodu kopyala
Live.m3u8 dosyasını her 10 saniyede bir güncellemek için bir BAT komut dosyası yazın
Kodu kopyala
@ Echo off
f
|
Sürpriz almak için e-posta girin
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Arnavutça
ar.fmuser.org -> Arapça
hy.fmuser.org -> Ermeni
az.fmuser.org -> Azerice
eu.fmuser.org -> Bask Dili
be.fmuser.org -> Beyaz Rusça
bg.fmuser.org -> Bulgar
ca.fmuser.org -> Katalanca
zh-CN.fmuser.org -> Çince (Basitleştirilmiş)
zh-TW.fmuser.org -> Çince (Geleneksel)
hr.fmuser.org -> Hırvatça
cs.fmuser.org -> Çekçe
da.fmuser.org -> Danca
nl.fmuser.org -> Hollandalı
et.fmuser.org -> Estonca
tl.fmuser.org -> Filipinli
fi.fmuser.org -> Fince
fr.fmuser.org -> Fransızca
gl.fmuser.org -> Galiçyaca
ka.fmuser.org -> Gürcüce
de.fmuser.org -> Almanca
el.fmuser.org -> Yunanca
ht.fmuser.org -> Haiti Kreyolu
iw.fmuser.org -> İbranice
hi.fmuser.org -> Hintçe
hu.fmuser.org -> Macar
is.fmuser.org -> İzlandaca
id.fmuser.org -> Endonezya
ga.fmuser.org -> İrlandalı
it.fmuser.org -> İtalyan
ja.fmuser.org -> Japonca
ko.fmuser.org -> Korece
lv.fmuser.org -> Letonca
lt.fmuser.org -> Litvanya
mk.fmuser.org -> Makedonca
ms.fmuser.org -> Malayca
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Farsça
pl.fmuser.org -> Lehçe
pt.fmuser.org -> Portekizce
ro.fmuser.org -> Romen
ru.fmuser.org -> Rusça
sr.fmuser.org -> Sırpça
sk.fmuser.org -> Slovakça
sl.fmuser.org -> Slovence
es.fmuser.org -> İspanyolca
sw.fmuser.org -> Svahili
sv.fmuser.org -> İsveççe
th.fmuser.org -> Tay
tr.fmuser.org -> Türkçe
uk.fmuser.org -> Ukraynaca
ur.fmuser.org -> Urduca
vi.fmuser.org -> Vietnamca
cy.fmuser.org -> Galce
yi.fmuser.org -> Yidiş
FMUSER Kablosuz Video ve Sesi Daha Kolay İletin!
İletişim
Adres:
No.305 Oda HuiLan Binası No. 273 Huanpu Yolu Guangzhou Çin 510620
Kategoriler
Kaydolun