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
Hintergrund
MP4 ist unser gängiges Videoformat. Wenn wir Servervideos abspielen, ist es häufig direkt die angeforderte MP4-Videoquelle. Aber in der Tat ist das nicht gut. Die MP4-Header-Datei [ftyp + moov] ist groß, und bei der ersten Wiedergabe muss die vollständige Header-Datei heruntergeladen und analysiert und anschließend eine bestimmte Länge des abspielbaren Videoclips heruntergeladen werden. Wenn die Größe des Videos zunimmt, wächst außerdem die Header-Datei weiter und die anfängliche Wiedergabezeit ist länger. In Anbetracht dieser Situation wird eine Methode benötigt, die die anfängliche Analyse des Videos beschleunigen kann. HLS ist die von Apple vorgeschlagene Lösung, um dieses Problem zu lösen.
HLS
HLS ist die Abkürzung für HTTP Live Streaming. Es handelt sich um ein von Apple vorgeschlagenes HTTP-basiertes Streaming Media-Netzwerkübertragungsprotokoll. Es kann gleichzeitig Live- und On-Demand-Funktionen sowie Multi-Definition-, Audio- und Video-Dual-Track-, Untertitel- und andere Funktionen unterstützen. Das Prinzip besteht darin, ein ganzes Video in mehrere kleine Videos aufzuteilen, und die vollständige Wiedergabe wird durch Spleißen dieser Segmente gebildet.
HLS ist auf mobilen Endgeräten weit verbreitet. Zu den aktuellen Clients, die das HLS-Protokoll unterstützen, gehören:
Ab iOS 3.0 unterstützt AVPlayer nativ HLS
Android 3.0 und höher
Adobe Flash Player 11.0 und höher
Sein allgemeines Prinzip lautet:
1. Sammeln Sie Audio und Video
2. Codieren Sie Audio und Video auf dem Server
3. Übergeben Sie es nach der Codierung in Form eines MPEG-2-Transportstroms an den Stream Segmenter
4. Der Slicer erstellt eine Indexdatei und eine ts-Wiedergabeliste, die Indexdatei wird verwendet, um die Position von Audio und Video anzuzeigen, und ts ist ein echter Multimedia-Clip
5. Stellen Sie die Ressourcen des vorherigen Schritts auf den HTTP-Server
6. Der Client fordert die Indexdatei zur Wiedergabe an, und der Wiedergabeinhalt kann über die Indexdatei gefunden werden
M3U8
Ein wichtiger Schritt zur Realisierung von HLS ist der vierte Schritt oben, nämlich die Organisation von Indexdateien und Wiedergabelisten. Hier wird das M3U8-Format verwendet. M3U8 ist die Unicode-Version von M3U, 8 bedeutet, dass die UTF-8-Codierung verwendet wird, und sowohl M3U als auch M3U8 sind Dateiformate für Multimedia-Listen.
Beschreibung des M3U8-Formats
Manchmal müssen wir den Inhalt der M3U8-Datei zum Testen manuell ändern, oder in einigen besonderen Fällen müssen wir ein gewisses Verständnis für das Format haben. Die Definition dieses Formats ist im RFC 8216-Dokument geschrieben. Das Folgende sind einige Hinweise:
M3U8-Dateien müssen in UTF-8 codiert sein und dürfen keine Byte Order Mark (BOM) -Byte-Reihenfolge verwenden und dürfen keine utf-8-Steuerzeichen enthalten (U + 0000 ~ U_001F und U + 007F ~ u + 009F).
Jede Zeile des M3U8-Dateiinhalts ist entweder eine Leerzeile, ein URI oder eine Zeichenfolge, die mit # beginnt, und es können keine Leerzeichen angezeigt werden.
Die integrierten Tags sind alle Zeichenfolgen, die mit #EXT beginnen, und unterscheiden zwischen Groß- und Kleinschreibung.
URI ist der Inhaltspfad, der ein relativer Pfad oder ein absoluter Pfad sein kann
Master M3U8 Listendatei
Die Hauptindexdatei M3U8 wird im Allgemeinen verwendet, um mehrere Indexquellen anzugeben. Lassen Sie uns zuerst den Inhalt der Hauptdatei m3u8 hls_vod_mvp.m3u8 analysieren. Der Kopf ist so
Header-Format
#EXTM3U
# EXT-X-VERSION: 7
# EXT-X-INDEPENDENT-SEGMENTSCopy-Code
# EXTM3U gibt an, dass die Datei im M3U-Format vorliegt und alle Dateien im M3U-Format den Inhalt in die erste Zeile setzen sollten.
# EXT-X-VERSIOn gibt die kompatible Version der Wiedergabeliste an, die derzeit 7 ist.
# EXT-X-INDEPENDENT-SEGMENTS Dieses Tag gibt an, dass alle Medienbeispiele in einem Mediensegment unabhängig voneinander dekodiert werden können, ohne auf andere Mediensegmentinformationen angewiesen zu sein.
Untertitelformat
Der folgende Inhalt enthält einige Untertitel. Der Inhalt der Untertitel ist nicht erforderlich.
# EXT-X-MEDIA: TYP = UNTERTITEL, GRUPPEN-ID = "subs", NAME = "Englisch", STANDARD = JA, AUTOSELECT = JA, FORCED = NEIN, SPRACHE = "eng", URI = "Untertitel / deu / prog_index.m3u8 "
# EXT-X-MEDIA: TYP = UNTERTITEL, GRUPPEN-ID = "subsC", NAME = "Englisch", STANDARD = JA, AUTOSELECT = JA, FORCED = NEIN, SPRACHE = "eng", URI = "Untertitel / engc / prog_index.m3u8 "
# EXT-X-MEDIA: TYP = UNTERTITEL, GRUPPEN-ID = "subs", NAME = "Japanisch", STANDARD = JA, AUTOSELECT = JA, FORCED = NEIN, SPRACHE = "jpn", URI = "Untertitel / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYP = UNTERTITEL, GRUPPEN-ID = "subsC", NAME = "Japanisch", STANDARD = JA, AUTOSELECT = JA, FORCED = NEIN, SPRACHE = "jpn", URI = "Untertitel / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYP = UNTERTITEL, GRUPPEN-ID = "subs", NAME = "Chinesisch", STANDARD = JA, AUTOSELECT = JA, FORCED = NEIN, SPRACHE = "zho", URI = "Untertitel / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYP = UNTERTITEL, GRUPPEN-ID = "subsC", NAME = "Chinesisch", STANDARD = JA, AUTOSELECT = JA, FORCED = NEIN, SPRACHE = "zho", URI = "Untertitel / zhoc / prog_index.m3u8 "Code kopieren
# EXT-X-MEDIA wird verwendet, um mehrsprachige Medienlistenressourcen mit demselben Inhalt anzugeben.
TYPE ist der Ressourcentyp, und die optionalen Inhalte sind: AUDIO, VIDEO, SUBTITLES, CLOSED-CAPTIONS.
Der obige Inhalt setzt TYPE = SUBTITLES, den Untertiteltyp.
GROUP-ID ist die Gruppe, zu der die mehrsprachige Übersetzung gehört, und ist ein erforderlicher Parameter
NAME ist die lesbare Beschreibungsinformation des Übersetzungsstroms, und dieser Wert entspricht dem displayName von AVMediaSelectionOption.
DEFAULT, AUTOSELECT, FORCED sind drei BOOL-Werte, die der Frage entsprechen, ob der Übersetzungsstrom standardmäßig ausgewählt ist, wenn erforderliche Informationen fehlen. Der Wiedergabestream wird abgespielt, wenn der Benutzer die Einstellungen nicht anzeigt. FORCED ist nur für den Untertiteltyp gültig und wird verwendet, um die aktuelle automatische Auswahl des Übersetzungsstroms zu markieren. .
LANGUAGE wird verwendet, um den Sprachtyp anzugeben, der gemäß dem [ISO 639-Sprachcode] festgelegt wird (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm Standard "ISO 639 Sprachcode"). Wenn der Systemstandardspieler Untertitel auswählt, wird der Name der angezeigten Untertitelliste entsprechend diesem Wert festgelegt.
Der URI ist die Standortinformation der Ressource, wo sie einer M3U8-Datei mit Untertiteln entspricht. Untertitel / eng / prog_index.m3u8 ist ein relativer Pfad,
Anhand der oben genannten Informationen können wir die Bedeutung des oben genannten Inhalts wie folgt analysieren: Das aktuelle Video unterstützt drei Untertitel: Englisch, Japanisch und Chinesisch. Jede Sprache verfügt jedoch über zwei EXT-X-MEDIA-Nachrichten. Der Unterschied zwischen ihnen ist die Gruppierung, eine ist in Subs gruppiert und die andere ist in SubsC gruppiert. Warum gibt es zwei Gruppen? Ich werde später darüber sprechen.
Video-Format
Suchen Sie erneut nach dem Index des Videoinhalts:
#EXT-X-STREAM-INF:BANDWIDTH=827299,AVERAGE-BANDWIDTH=747464,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970,AUDIO="program_audio",SUBTITLES=" subs"
0640 / 0640.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=360849,AVERAGE-BANDWIDTH=320932,CODECS="avc1.64001f",RESOLUTION=640x360,URI="0640/0640_I-Frame.m3u8"Copy code
EXT-X-STREAM-INF: Dieses Attribut gibt eine Sicherungsquelle an, dh den Videowiedergabepfad und einige Videoinformationen. Das Folgende ist die Konfiguration des entsprechenden Inhalts: BANDWIDTH ist die Spitzenbitrate, 827299 ist 827299bit / s, was die höchste Spitzenzeit ist. Verbraucht 101 KB Verkehr pro Sekunde.
AVERAGE-BANDWIDTH ist die durchschnittliche Bitrate 747464
CODECS codiert Informationen, avc1.64001f, mp4a.40.2, avc repräsentiert das h264-Codierungsformat, das folgende 64001f ist der Codierungsparameter, der durch hexadezimal dargestellt wird, 64, 00, 1f repräsentieren jeweils drei verschiedene Parameterwerte. mp4a ist ein Audiokodierungsformat, und die folgenden 40.2 stellen Audiokodierungsparameter dar.
AUFLÖSUNG ist die Videoauflösung. Die aktuelle Auflösung der Videoquelle beträgt 640 x 360.
FRAME-RATE ist die maximale Bildrate, 29.970 stellt die maximale Bildrate der aktuellen Wiedergabe dar und beträgt 29.970 Bilder pro Sekunde.
AUDIO ist die Audiogruppe und program_audio ist der Name der entsprechenden Audiogruppe.
SUBTITLES gibt die entsprechende Untertitelgruppe an, und subs ist der Name der entsprechenden Untertitelgruppe. Die obigen Untertitelinformationen haben eine GROUP-ID, und dieser Wert entspricht dieser.
URI ist der Inhaltspfad, 0640 / 0640.m3u8 entspricht dem m3u8-Dateipfad der Videoquelle. Dies ist in den Paketerfassungsinformationen zu sehen.
Unter EXT-X-STREAM-INF befindet sich EXT-XI-FRAME-STREAM-INF, das den I-Frame (Keyframe) der in der Wiedergabelistendatei enthaltenen Multimedia-Ressource darstellt. Da es sich bei dem I-Frame nur um ein Bild handelt, enthält es keinen Audioinhalt, und die verbleibenden Parameter stimmen mit dem Format des Videoinhalts überein.
Danach gibt es Videoquellen mit unterschiedlichen Auflösungen: 1920 x 1080, 1280 x 720, 960 x 540, 480 x 270. Da HLS die Auflösung automatisch entsprechend der Netzwerksituation umschaltet, werden im Allgemeinen mehrere Auflösungen zur Auswahl vorbereitet. Gemäß der Analyse der erfassten Daten hat das erste gespielte Segment eine Auflösung von 640, das zweite bis 8 Segmente danach eine Auflösung von 480 und wird dann auf eine Auflösung von 640 umgeschaltet.
Audio-Format
Nach unten schauen ist der Index des entsprechenden Audios
# EXT-X-MEDIA: TYP = AUDIO, GROUP-ID = "program_audio", LANGUAGE = "eng", NAME = "Alternatives Audio", AUTOSELECT = JA, STANDARD = JA, URI = "audio1 / audio1.m3u8" Kopie Code
# EXT-X-MEDIA wurde oben angezeigt, die Liste für mehrere Sprachen wurde jedoch nicht erwähnt.
TYPE = AUDIO, diesmal ist der Typ Audio.
GROUP-ID ist die Gruppen-ID, die dem AUDIO-Inhalt in EXT-X-STREAM-INF entspricht.
URI = audio1 / audio1.m3u8 entspricht dem Audiopfad.
Alternative Quellen für verschiedene Codierungsformate
In der Hauptdatei M3U8 sehen wir auch eine Videoquelle mit einer Auflösung von 640, die nicht mit der obigen Auflösung von 640 übereinstimmt. Sein Inhalt ist wie folgt:
#EXT-X-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,VIDEO-RANGE=SDR,CODECS="hvc1.2.4.H150.B0,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970 ,AUDIO="program_audio_0",SUBTITLES="subsC"
0640c / prog_index.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,CODECS="hvc1.2.4.H150.B0",RESOLUTION=640x360,URI="0640c/iframe_index.m3u8"
# EXT-X-MEDIA: TYP = AUDIO, GROUP-ID = "program_audio_0", LANGUAGE = "eng", NAME = "Alternate Audio", AUTOSELECT = YES, DEFAULT = YES, URI = "audioc / prog_index.m3u8" Copy Code
Das CODECS-Codierungsformat ist hvc1.2.4.H150.B0, mp4a.40.2. Das Audiocodierungsformat hat sich nicht geändert, aber das Videokodierungsformat hat sich geändert. hvc1 ist eines der HEVC (H265) -Codierungsformate. Es handelt sich um ein Videokodierungsformat der neuen Generation, das von Apple eingeführt wurde. Aufgrund von Kompatibilitätsproblemen können viele Clients dieses Format nicht analysieren, daher ist es nicht sehr beliebt. Videoquellen dieses Formats werden angezeigt. Hier sollte es sich um ein Backup handeln. Beim Vergleich von zwei Inhalten derselben Auflösung kann festgestellt werden, dass die Bitrate des hvc1-Formats höher ist als die des avc1-Formats, was zeigt, dass der Inhalt von hvc1 größer und das Komprimierungsverhältnis von avc1 bei derselben Auflösung höher ist.
Entsprechend der Videoquelle im Format hvc1 haben sich auch die Gruppierung der Untertitelinhalte und die Gruppierung der Audioinhalte geändert, weshalb die obigen Untertitel zwei Kopien derselben Sprache enthalten und den Videoquellen in den Formaten avc1 und hvc1 entsprechen.
Dies ist die Hauptliste von M3U8. Audio und Video dieses Inhalts werden separat verarbeitet, können aber auch kombiniert werden.
M3u8-Datei mit Medieninformationen
Nehmen Sie als Beispiel die Datei 0640.m3u8
#EXTM3U
# EXT-X-VERSION: 4
# EXT-X-TARGETDURATION: 7
# EXT-X-MEDIA-SEQUENZ: 1
# EXT-X-PLAYLIST-TYP: VOD
#EXTINF: 6.006,
0640_00001.ts
#EXTINF: 6.006,
0640_00002.ts
#EXTINF: 6.006,
0640_00003.ts
....
# EXT-X-ENDLISTCopy-Code
# EXTM3U und # EXT-X-VERSION sind der M3U-Dateikopf und die kompatible Versionsnummer. Dieses Format ist eine frühe Version, daher ist die Versionsnummer niedriger als die Hauptdatei.
EXT-X-TARGETDURATION repräsentiert die maximale Dauer jedes Wiedergabesegments, 7 repräsentiert 7 Sekunden und die Segmente in diesem Verzeichnis dürfen 7s nicht überschreiten.
EXT-X-MEDIA-SEQUENCE repräsentiert die Sequenznummer des ersten Segments der Wiedergabeliste, und 1 bedeutet, dass das Wiedergabesegment bei 1 beginnt.
#EXTINF stellt die Dauer des Segments dar. 6.006 bedeutet, dass das aktuelle Segment 6.006s beträgt. Die Informationen zur Gesamtvideodauer werden durch Akkumulieren dieses Werts erhalten.
0640_00001.ts ist der relative Pfad des Clips. Die ts-Datei stellt ein Stück Video oder Audio dar und kann in den Formaten ts, mp4, aac und anderen Formaten vorliegen. Weil angegeben wurde, ab 1 zu öffnen
|
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