FMUSER Wireless Video- und Audioübertragung einfacher!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanisch
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenisch
az.fmuser.org -> Aserbaidschanisch
eu.fmuser.org -> Baskisch
be.fmuser.org -> Weißrussisch
bg.fmuser.org -> Bulgarisch
ca.fmuser.org -> Katalanisch
zh-CN.fmuser.org -> Chinesisch (vereinfacht)
zh-TW.fmuser.org -> Chinesisch (traditionell)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tschechisch
da.fmuser.org -> Dänisch
nl.fmuser.org -> Niederländisch
et.fmuser.org -> Estnisch
tl.fmuser.org -> Philippinisch
fi.fmuser.org -> Finnisch
fr.fmuser.org -> Französisch
gl.fmuser.org -> Galizisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Deutsch
el.fmuser.org -> Griechisch
ht.fmuser.org -> Haitianisches Kreol
iw.fmuser.org -> Hebräisch
hi.fmuser.org -> Hindi
hu.fmuser.org -> Ungarisch
is.fmuser.org -> Isländisch
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Irisch
it.fmuser.org -> Italienisch
ja.fmuser.org -> Japanisch
ko.fmuser.org -> Koreanisch
lv.fmuser.org -> Lettisch
lt.fmuser.org -> Litauisch
mk.fmuser.org -> Mazedonisch
ms.fmuser.org -> Malaiisch
mt.fmuser.org -> Malteser
no.fmuser.org -> Norwegisch
fa.fmuser.org -> Persisch
pl.fmuser.org -> Polnisch
pt.fmuser.org -> Portugiesisch
ro.fmuser.org -> Rumänisch
ru.fmuser.org -> Russisch
sr.fmuser.org -> Serbisch
sk.fmuser.org -> Slowakisch
sl.fmuser.org -> Slowenisch
es.fmuser.org -> Spanisch
sw.fmuser.org -> Suaheli
sv.fmuser.org -> Schwedisch
th.fmuser.org -> Thai
tr.fmuser.org -> Türkisch
uk.fmuser.org -> Ukrainisch
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisch
cy.fmuser.org -> Walisisch
yi.fmuser.org -> Jiddisch
HLS und Http Live Streaming sind von Apple definierte Protokolle für Echtzeit-Streaming. HLS wird basierend auf dem HTTP-Protokoll implementiert. Der Übertragungsinhalt besteht aus zwei Teilen, einer ist die M3U8-Beschreibungsdatei und der andere ist die TS-Mediendatei.
1. M3U8-Datei
Die Mediendatei wird im Text beschrieben, der aus einer Reihe von Tags besteht.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Die erste Zeile jeder M3U8-Datei muss dieses Tag sein.
# EXT-X-TARGETDURATION: Geben Sie die maximale Zeitdauer des Mediensegments (Sekunden) an. Die in #EXTINF angegebene Zeitdauer muss kleiner oder gleich diesem Maximalwert sein. Dieser Wert kann nur einmal angezeigt werden.
#EXTINF: Beschreiben Sie die Länge einer einzelnen Mediendatei. Es folgen Mediendateien wie ./0.ts
Es kann über HTTP auf iOS-Geräten und Macs verteilt werden. Der Standard für die Wiedergabeliste ist die um m3u erweiterte m8u3-Datei, und die Mediendatei ist eine MPEG2-TS- oder AAC-Datei (nur Audio).
Es gibt zwei Anwendungsszenarien für m3u8-Dateien:
Anpassungsstrom mit mehreren Raten,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAMM-ID = 1, BANDBREITE = 1280000
# EXT-X-STREAM-INF: PROGRAMM-ID = 1, BANDBREITE = 2560000
# EXT-X-STREAM-INF: PROGRAMM-ID = 1, BANDBREITE = 7680000
# EXT-X-STREAM-INF: PROGRAMM-ID = 1, BANDBREITE = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Single Rate Adaptation Stream
#EXTM3U
# EXT-X-TARGETDURATION: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
Die International Standards Organization definiert dieses RFC-Dokument:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
Die m3u8-Datei ist eine Erweiterung der m3u-Datei. Die erweiterten Schlüsselwörter werden im rfc definiert:
darunter:
# EXT-X-TARGETDURATION
Definieren Sie die maximale Dauer jedes TS.
# EXT-X-MEDIA-SEQUENCE
Definieren Sie die Seriennummer der ersten Datei in der aktuellen m3u8-Datei. Jede ts-Datei hat eine feste und eindeutige Seriennummer in der m3u8-Datei. Die Seriennummer wird verwendet, um die Coderate für die Ausrichtung während des MBR umzuschalten.
# EXT-X-KEY
Definieren Sie die Verschlüsselungsmethode und die URL der Schlüsseldatei, mit der die 16-Byte-Schlüsseldatei zum Dekodieren der ts-Datei abgerufen wird.
Attributes:
METHODE
URL
# EXT-X-PROGRAMM-DATUM-ZEIT
Absolute Zeit der ersten Datei
# EXT-X-ALLOW-CACHE
Gibt an, ob der Cache zugelassen werden soll.
# EXT-X-ENDLIST
Zeigt das Ende der m3u8-Datei an. Live m3u8 hat dieses Tag nicht.
# EXT-X-STREAM-INF
Attributes:
BANDWIDTH gibt die Bitrate an
PROGRAM-ID eindeutige ID
CODECS gibt den Codierungstyp des Streams an
# EXT-X-DISCONTINUITY
Wenn das Tag angetroffen wird, haben sich die folgenden Attribute geändert:
Datei Format
Anzahl und Art der Tracks
Codierungsparameter
Codierungssequenz
Zeitstempelfolge
# EXT-X-VERSION Dieses Attribut kann verwendet werden oder nicht, Sie können keines haben
M3U8 ist in M3U8 der obersten Ebene und M3U8 der zweiten Ebene unterteilt. Der M3U8 der obersten Ebene wird hauptsächlich für die Anpassung mehrerer Raten verwendet. Der M3U8 der zweiten Ebene ist die echte Slice-Datei.
Standardmäßig wählt der Client zuerst die Anforderung mit der höchsten Bitrate aus. Wenn festgestellt wird, dass die Bitrate nicht erreicht werden kann, wird ein Stream mit einer niedrigen Bitrate angefordert
Eine M3U8-Datei der obersten Ebene, die derzeit verwendet wird, lautet wie folgt:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAMM-ID = 201273221265, BANDBREITE = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAMM-ID = 201273221265, BANDBREITE = 972800
22.m3u8
Die obige M3U8-Datei der obersten Ebene definiert zwei Dateien der zweiten Ebene, 11.m3u8 und 22.m3u8, und der Client wählt eine davon aus, um den Inhalt abzurufen.
Der Inhalt der sekundären M3U8-Datei lautet wie folgt:
#EXTM3U
# EXT-X-VERSION: 1
# EXT-X-TARGETDURATION: 10
# EXT-X-MEDIA-SEQUENZ: 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
Nachdem der Client die oben genannte sekundäre M3U8-Datei erhalten hat, fordert er die darin enthaltene Datei weiterhin an und kann dann abgespielt werden.
Das Obige bezieht sich auf die On-Demand-Situation und die Situation der Live-Übertragung. Die M3U8-Datei enthält Attribute, die angeben, dass sie live ist, und der Client fordert regelmäßig neue M3U8-Dateien an.
// Wenn HLS On-Demand- und Live-Übertragungen realisiert, ist der Unterschied der M3U8-Datei
1. Problembeschreibung
Kürzlich habe ich einen transkodierten Slice-Wiedergabetest mit HLS (HTTP Live Streaming) für die Live-Übertragung durchgeführt. Jede TS-Segmentierungszeit beträgt 10 Sekunden, und die folgenden Live-m3u8-Dateien werden gemäß den TS-Segmentierungsdateien generiert
Code kopieren
#EXTM3U
# EXT-X-MEDIA-SEQUENZ: 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.
Code kopieren
Speichern Sie die obige m3u8-Datei als live.m3u8, legen Sie sie im Apache-Dokumentverzeichnis ab und spielen Sie die folgende URL mit VLC ab:
http://localhost/live.m3u8
Der Test ergab, dass die erste Datei, die abgespielt wurde, nicht 1.ts war. Nach mehreren Tests wurde festgestellt, dass:
Solange die Liste mehr als drei Dateien enthält, werden immer die letzten drei Dateien in der Liste abgespielt
2. Probleme lösen
Es ist sehr traurig, dass ich nach dem Durchsuchen des Internets keine wirksamen Informationen gefunden habe. Ein Kumpel ist auf die gleiche Situation gestoßen. Hat er seine Erfahrungen geteilt, nachdem er sie gelöst hat?
Nach Rücksprache mit einem Kollegen sagte der Kollege, dass dies möglich sei, da die Liste der Live-m3u8-Dateien in Echtzeit aktualisiert werden müsse. Wenn wir einen Test durchführen, können wir zuerst am Ende # EXT-X-ENDLIST hinzufügen. Diese Methode wurde getestet. Es funktioniert, aber dies ist kein Live-M3U8-Modus mehr
Nachdem ich erneut im Internet gesucht hatte, bestätigte ich, dass ich endlich eine Live-Beschreibung von m3u8 gefunden hatte
Live-Wiedergabeliste (Schiebefenster)
Bei Live-Sitzungen wird die Indexdatei aktualisiert, indem Medien-URIs aus der Datei entfernt werden, wenn neue Mediendateien erstellt und verfügbar gemacht werden.
Wichtig: Das EXT-X-ENDLIST-Tag ist in der Live-Wiedergabeliste nicht vorhanden. Dies zeigt an, dass neue Mediendateien zur Indexdatei hinzugefügt werden, sobald sie verfügbar sind.
In Listing 3 finden Sie eine Beispiel-Live-Wiedergabeliste, wie sie zu Beginn einer Sitzung angezeigt wird.
Listing 3: Live-Wiedergabeliste zu Beginn einer Sitzung.
Code kopieren
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SEQUENZ: 1
#EXTINF: 10,
fileSequence1.ts
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
Code kopieren
Der EXT-X-MEDIA-SEQUENCE-Tag-Wert MUSS für jeden Medien-URI, der aus der Wiedergabelistendatei entfernt wird, um 1 erhöht werden. Medien-URIs müssen aus der Wiedergabelistendatei in der Reihenfolge entfernt werden, in der sie in der Wiedergabeliste angezeigt werden. Die aktualisierte Indexdatei zeigt ein sich bewegendes Fenster in einen kontinuierlichen Stream. Diese Art von Sitzung eignet sich für kontinuierliche Sendungen.
Hier ist dieselbe Wiedergabeliste, nachdem sie mit URIs für neue Medien aktualisiert wurde:
Listing 4: Live-Wiedergabeliste nach Aktualisierung der Medien-URIs.
Code kopieren
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SEQUENZ: 2
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
#EXTINF: 10,
fileSequence6.ts
Code kopieren
3.Leben Sie die m3u8-Aktualisierungsregeln
Die Liste der Live-m3u8-Dateien muss kontinuierlich aktualisiert werden. Aktualisierungsregeln:
Entfernen Sie die oberste Datei (denken Sie abgespielt) in einer Datei-Wiedergabeliste
Aktualisieren Sie das EXT-X-MEDIA-SEQUENCE-Tag kontinuierlich und erhöhen Sie es um 1
4. Experimentieren
Schreiben Sie ein kleines Programm, um Live-m3u8 zum Testen zu generieren
Verwendung:
m3u8_gen.exe start_num list_count duration filename.m3u8 [Präfix]
Anwendungsbeispiel:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Generieren Sie die Datei live.m3u8 als
Code kopieren
#EXTM3U
# EXT-X-MEDIA-SEQUENZ: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts.
#EXTINF: 10
hls / 2.ts.
#EXTINF: 10
hls / 3.ts.
Code kopieren
Schreiben Sie alle 3 Sekunden ein BAT-Skript, um die Datei live.m8u10 zu aktualisieren
Code kopieren
@ Echo off
f
|
Geben Sie eine E-Mail-Adresse ein, um eine Überraschung zu erhalten
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanisch
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenisch
az.fmuser.org -> Aserbaidschanisch
eu.fmuser.org -> Baskisch
be.fmuser.org -> Weißrussisch
bg.fmuser.org -> Bulgarisch
ca.fmuser.org -> Katalanisch
zh-CN.fmuser.org -> Chinesisch (vereinfacht)
zh-TW.fmuser.org -> Chinesisch (traditionell)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tschechisch
da.fmuser.org -> Dänisch
nl.fmuser.org -> Niederländisch
et.fmuser.org -> Estnisch
tl.fmuser.org -> Philippinisch
fi.fmuser.org -> Finnisch
fr.fmuser.org -> Französisch
gl.fmuser.org -> Galizisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Deutsch
el.fmuser.org -> Griechisch
ht.fmuser.org -> Haitianisches Kreol
iw.fmuser.org -> Hebräisch
hi.fmuser.org -> Hindi
hu.fmuser.org -> Ungarisch
is.fmuser.org -> Isländisch
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Irisch
it.fmuser.org -> Italienisch
ja.fmuser.org -> Japanisch
ko.fmuser.org -> Koreanisch
lv.fmuser.org -> Lettisch
lt.fmuser.org -> Litauisch
mk.fmuser.org -> Mazedonisch
ms.fmuser.org -> Malaiisch
mt.fmuser.org -> Malteser
no.fmuser.org -> Norwegisch
fa.fmuser.org -> Persisch
pl.fmuser.org -> Polnisch
pt.fmuser.org -> Portugiesisch
ro.fmuser.org -> Rumänisch
ru.fmuser.org -> Russisch
sr.fmuser.org -> Serbisch
sk.fmuser.org -> Slowakisch
sl.fmuser.org -> Slowenisch
es.fmuser.org -> Spanisch
sw.fmuser.org -> Suaheli
sv.fmuser.org -> Schwedisch
th.fmuser.org -> Thai
tr.fmuser.org -> Türkisch
uk.fmuser.org -> Ukrainisch
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisch
cy.fmuser.org -> Walisisch
yi.fmuser.org -> Jiddisch
FMUSER Wireless Video- und Audioübertragung einfacher!
Kontakt
Adresse
Nr.305 Zimmer HuiLan Gebäude Nr.273 Huanpu Road Guangzhou China 510620
Kategorien
Newsletter