FMUSER Wirless Menghantar Video Dan Audio Lebih Mudah!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Orang Afrika
sq.fmuser.org -> Bahasa Albania
ar.fmuser.org -> Bahasa Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Bahasa Catalan
zh-CN.fmuser.org -> Bahasa Cina (Ringkas)
zh-TW.fmuser.org -> Bahasa Cina (Tradisional)
hr.fmuser.org -> Bahasa Croatia
cs.fmuser.org -> Bahasa Czech
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Orang Filipina
fi.fmuser.org -> Bahasa Finland
fr.fmuser.org -> Bahasa Perancis
gl.fmuser.org -> orang Galicia
ka.fmuser.org -> Orang Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Greek
ht.fmuser.org -> Haitian Creole
iw.fmuser.org -> Bahasa Ibrani
hi.fmuser.org -> Bahasa Hindi
hu.fmuser.org -> Bahasa Hungary
is.fmuser.org -> Bahasa Iceland
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Ireland
it.fmuser.org -> Bahasa Itali
ja.fmuser.org -> Jepun
ko.fmuser.org -> Bahasa Korea
lv.fmuser.org -> Bahasa Latvia
lt.fmuser.org -> Bahasa Lithuania
mk.fmuser.org -> orang Macedonia
ms.fmuser.org -> Bahasa Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Bahasa Norway
fa.fmuser.org -> Parsi
pl.fmuser.org -> Bahasa Poland
pt.fmuser.org -> Portugis
ro.fmuser.org -> Romania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Bahasa Serbia
sk.fmuser.org -> Bahasa Slovak
sl.fmuser.org -> Bahasa Slovenia
es.fmuser.org -> Sepanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Sweden
th.fmuser.org -> Thai
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraine
ur.fmuser.org -> Bahasa Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Wales
yi.fmuser.org -> Bahasa Yiddish
latar belakang
MP4 adalah format video biasa kami, dan selalunya ketika kami memainkan video pelayan, itu adalah sumber video MP4 yang diminta secara langsung. Tetapi sebenarnya, ini tidak baik. Fail header MP4 [ftyp + moov] besar, dan main semula awal perlu memuat turun fail header yang lengkap dan menganalisisnya, dan kemudian memuat turun klip video yang boleh dimainkan untuk dimainkan. Di samping itu, seiring bertambahnya ukuran video, file header akan terus bertambah, dan waktu main awal akan lebih lama. Memandangkan keadaan ini, diperlukan kaedah yang dapat mempercepat analisis awal video. HLS adalah penyelesaian yang dicadangkan oleh Apple untuk menyelesaikan masalah ini.
HLS
HLS adalah singkatan dari HTTP Live Streaming. Ini adalah protokol penghantaran rangkaian media streaming berasaskan HTTP yang dicadangkan oleh Apple. Ia dapat menyokong siaran langsung dan on-demand pada masa yang sama, serta dwi-trek, sari kata, dan fungsi multi-definisi, sari kata dan fungsi lain. Prinsipnya adalah membahagikan keseluruhan video menjadi beberapa video kecil, dan pemutaran lengkap dibentuk dengan menyambung segmen ini.
HLS banyak digunakan pada terminal mudah alih. Pelanggan semasa yang menyokong protokol HLS termasuk:
iOS 3.0 ke atas, AVPlayer secara asli menyokong HLS
Android 3.0 dan ke atas
Adobe Flash Player 11.0 ke atas
Prinsip amnya adalah:
1. Kumpulkan audio dan video
2. Encode audio dan video di pelayan
3. Setelah pengekodan, serahkan kepada Stream Segmenter dalam bentuk aliran pengangkutan MPEG-2
4. Slicer membuat fail indeks dan senarai main ts, fail indeks digunakan untuk menunjukkan kedudukan audio dan video, dan ts adalah klip multimedia sebenar
5. Letakkan sumber langkah sebelumnya pada pelayan HTTP
6. Pelanggan meminta fail indeks untuk dimainkan semula, dan kandungan pemutaran boleh didapati melalui fail indeks
M3U8
Langkah utama untuk mewujudkan HLS adalah langkah keempat di atas, iaitu penyusunan fail indeks dan senarai main ts. Format M3U8 digunakan di sini. M3U8 adalah versi Unicode M3U, 8 bermaksud pengekodan UTF-8 digunakan, dan kedua M3U dan M3U8 adalah format fail untuk senarai multimedia.
Penerangan format M3U8
Kadang-kadang kita mungkin perlu mengubah secara manual kandungan fail M3U8 untuk diuji atau dalam beberapa kes khas, jadi kita perlu memahami formatnya. Definisi format ini ditulis dalam dokumen RFC 8216. Berikut adalah beberapa nota:
Fail M3U8 mesti dikodkan dalam UTF-8, dan tidak boleh menggunakan pesanan bait Tanda Pesanan Bait (BOM), dan tidak boleh mengandungi watak kawalan utf-8 (U + 0000 ~ U_001F dan U + 007F ~ u + 009F)
Setiap baris kandungan fail M3U8 adalah baris kosong, URI, atau rentetan yang dimulai dengan #, dan tidak ada watak kosong yang dapat muncul.
Tag terbina dalam adalah semua rentetan bermula dengan #EXT dan peka huruf besar kecil.
URI adalah jalan kandungan, yang boleh menjadi jalan relatif atau jalan mutlak
Fail senarai Master M3U8
Fail indeks M3U8 utama umumnya digunakan untuk menentukan pelbagai sumber indeks. Mari kita terlebih dahulu menganalisis kandungan fail m3u8 utama hls_vod_mvp.m3u8, kepalanya seperti ini
Format tajuk
#EXTM3U
# EXT-X-VERSI: 7
# EXT-X-INDEPENDENT-SEGMENTSKod salinan
# EXTM3U menunjukkan bahawa fail dalam format M3U, dan semua fail format M3U harus meletakkan kandungan pada baris pertama.
# EXT-X-VERSIOn menunjukkan versi senarai main yang serasi, yang pada masa ini adalah 7.
# SEGMEN EXT-X-INDEPENDENT Teg ini menunjukkan bahawa semua sampel media dalam segmen media dapat didekodkan secara bebas tanpa bergantung pada maklumat segmen media yang lain.
Format sari kata
Kandungan di bawah adalah beberapa kapsyen, kandungan kapsyen tidak perlu.
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "English", DEFAULT = YES, AUTOSELECT = YA, FORCED = NO, LANGUAGE = "eng", URI = "sari kata / eng / prog_index.m3u8 "
# EXT-X-MEDIA: JENIS = SUBTITLES, GROUP-ID = "subsC", NAME = "English", DEFAULT = YES, AUTOSELECT = YA, FORCED = NO, LANGUAGE = "eng", URI = "subtitle / engc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YA, FORCED = NO, LANGUAGE = "jpn", URI = "sari kata / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YA, FORCED = NO, LANGUAGE = "jpn", URI = "sari kata / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YA, FORCED = NO, LANGUAGE = "zho", URI = "sari kata / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YA, FORCED = NO, BAHASA = "zho", URI = "subtitle / zhoc / prog_index.m3u8 "Salin kod
# EXT-X-MEDIA digunakan untuk menentukan sumber senarai media berbilang bahasa dengan kandungan yang sama.
JENIS adalah jenis sumber, dan kandungan pilihannya adalah: AUDIO, VIDEO, SUBTITLES, CLOSED-CAPTIONS.
Kandungan di atas menetapkan JENIS = SUBTITLES, yang merupakan jenis sari kata.
GROUP-ID adalah kumpulan yang menjadi milik terjemahan multibahasa dan merupakan parameter yang diperlukan
NAME adalah maklumat keterangan yang boleh dibaca dari aliran terjemahan, dan nilai ini sesuai dengan displayName AVMediaSelectionOption.
DEFAULT, AUTOSELECT, FORCED adalah tiga nilai BOOL yang sesuai dengan sama ada aliran terjemahan dipilih secara lalai jika maklumat yang diperlukan hilang. Aliran main balik dimainkan apabila pengguna tidak memaparkan tetapan. FORCED hanya sah untuk jenis sari kata dan digunakan untuk menandakan pemilihan aliran terjemahan automatik semasa. .
BAHASA digunakan untuk menentukan jenis bahasa, yang diatur mengikut [kod bahasa ISO 639] (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm Standard "kod bahasa ISO 639"). Apabila pemain lalai sistem memilih sari kata, nama senarai sari kata yang dipaparkan ditetapkan mengikut nilai ini.
URI adalah maklumat lokasi sumber, di mana ia sesuai dengan file M3U8 yang diberi tajuk. sari kata / eng / prog_index.m3u8 adalah jalan relatif,
Melalui maklumat di atas, kita dapat menganalisis makna kandungan di atas sebagai: Video semasa menyokong tiga sari kata: Inggeris, Jepun, dan Cina. Tetapi setiap bahasa mempunyai dua mesej EXT-X-MEDIA. Perbezaan antara mereka adalah pengelompokan, satu dikelompokkan dalam kapal selam dan yang lain dikumpulkan dalam subsC. Mengapa terdapat dua kumpulan? Saya akan bercakap mengenai perkara ini kemudian.
Format video
Lihat kembali, untuk indeks kandungan video:
#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: Atribut ini menentukan sumber sandaran, iaitu jalur main balik video dan beberapa maklumat video. Berikut ini adalah konfigurasi kandungan yang sesuai: BANDWIDTH adalah kadar bit puncak, 827299 adalah 827299bit / s, yang merupakan waktu puncak tertinggi Menggunakan 101KB lalu lintas sesaat.
Purata-BANDWIDTH adalah kadar bit purata, 747464
CODECS adalah pengekodan maklumat, avc1.64001f, mp4a.40.2, avc mewakili format pengekodan h264, 64001f berikut adalah parameter pengekodan yang diwakili oleh heksadesimal, 64, 00, 1f masing-masing mewakili tiga nilai parameter yang berbeza. mp4a adalah format pengkodan audio, dan 40.2 berikut mewakili parameter pengekodan audio.
RESOLUSI adalah resolusi video. Resolusi sumber video semasa ialah 640x360.
FRAME-RATE adalah kadar bingkai maksimum, 29.970 mewakili kadar bingkai maksimum pemutaran semasa ialah 29.970 bingkai sesaat.
AUDIO adalah kumpulan audio, dan program_audio adalah nama kumpulan audio yang sesuai.
SUBTITLES menunjukkan kumpulan sari kata yang sesuai, dan subs adalah nama kumpulan sari kata yang sesuai. Maklumat sari kata di atas mempunyai GROUP-ID, dan nilai ini sesuai dengannya.
URI adalah jalur kandungan, 0640 / 0640.m3u8 sesuai dengan jalur fail m3u8 sumber video. Ini dapat dilihat dalam maklumat tangkapan paket.
Di bawah EXT-X-STREAM-INF adalah EXT-XI-FRAME-STREAM-INF, yang mewakili bingkai I (bingkai utama) sumber multimedia yang terdapat dalam fail senarai main. Kerana bingkai I hanyalah gambar, ia tidak mengandungi kandungan audio, dan parameter yang tersisa selaras dengan format kandungan video.
Selepas itu, terdapat sumber video yang sesuai dengan resolusi yang berbeza, 1920x1080, 1280x720, 960x540, 480x270. Kerana HLS secara automatik akan menukar resolusi sesuai dengan keadaan rangkaian, banyak resolusi pada umumnya disiapkan untuk dipilih. Menurut analisis data yang diambil, segmen pertama yang dimainkan adalah resolusi 640, yang kedua hingga 8 segmen setelah itu adalah resolusi 480, dan kemudian beralih ke resolusi 640.
format audio
Melihat ke bawah adalah indeks audio yang sepadan
# EXT-X-MEDIA: JENIS = AUDIO, GROUP-ID = "program_audio", BAHASA = "eng", NAMA = "Audio Alternatif", AUTOSELECT = YA, DEFAULT = YA, URI = "audio1 / audio1.m3u8" Salin Kod
# EXT-X-MEDIA muncul di atas, tetapi tidak menyebut senarai untuk pelbagai bahasa.
JENIS = AUDIO, kali ini jenisnya adalah audio.
GROUP-ID adalah ID kumpulan, sesuai dengan kandungan AUDIO dalam EXT-X-STREAM-INF.
URI = audio1 / audio1.m3u8 sesuai dengan jalur audio.
Sumber alternatif dari format pengekodan yang berbeza
Dalam fail M3U8 utama, kita juga dapat melihat sumber video resolusi 640, yang tidak sama dengan resolusi 640 di atas. Kandungannya seperti ini:
#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: JENIS = AUDIO, GROUP-ID = "program_audio_0", BAHASA = "eng", NAMA = "Audio Alternatif", AUTOSELECT = YA, DEFAULT = YA, URI = "audioc / prog_index.m3u8" Salin Kod
Format pengekodan CODECS adalah hvc1.2.4.H150.B0, mp4a.40.2, format pengekodan audio tidak berubah, tetapi format pengekodan video telah berubah. hvc1 adalah salah satu format pengekodan HEVC (H265). Ini adalah format pengekodan video generasi baru yang dilancarkan oleh Apple. Kerana masalah keserasian, banyak pelanggan tidak dapat menghuraikan format ini, jadi tidak begitu popular. Sumber video dari format ini muncul. Ini mesti menjadi sandaran di sini. Membandingkan dua isi resolusi yang sama, dapat didapati bahawa kadar bit format hvc1 lebih tinggi daripada format avc1, yang menunjukkan bahawa kandungan hvc1 lebih besar dan nisbah mampatan avc1 lebih tinggi di bawah resolusi yang sama.
Sesuai dengan sumber video format hvc1, pengelompokan kandungan sari kata dan pengumpulan kandungan audio juga telah berubah, itulah sebabnya sari kata di atas mempunyai dua salinan bahasa yang sama, dan sesuai dengan sumber video dalam format avc1 dan hvc1.
Ini adalah senarai utama M3U8. Audio dan video kandungan ini diproses secara berasingan, tetapi juga dapat digabungkan.
Fail M3u8 yang mengandungi maklumat media
Ambil fail 0640.m3u8 sebagai contoh
#EXTM3U
# EXT-X-VERSI: 4
# EXT-X-TARGETDURATION: 7
# EXT-X-MEDIA-SEQUENCE: 1
# JENIS EXT-X-PLAYLIST: VOD
#EXTINF: 6.006,
0640_00001.ts
#EXTINF: 6.006,
0640_00002.ts
#EXTINF: 6.006,
0640_00003.ts
....
# EXT-X-ENDLISKod salinan
# EXTM3U dan # EXT-X-VERSION masing-masing adalah tajuk fail M3U dan nombor versi yang serasi. Format ini adalah versi awal sehingga nombor versi lebih rendah daripada fail utama.
EXT-X-TARGETDURATION mewakili tempoh maksimum setiap segmen main balik, 7 mewakili 7 saat, dan segmen dalam direktori ini tidak boleh melebihi 7 detik.
EXT-X-MEDIA-SEQUENCE mewakili nombor urutan segmen pertama senarai main, dan 1, menunjukkan bahawa segmen main bermula dari 1.
#EXTINF mewakili jangka masa segmen, 6.006 bermaksud segmen semasa ialah 6.006s. Maklumat keseluruhan durasi video diperoleh dengan mengumpulkan nilai ini.
0640_00001.ts adalah jalan relatif klip. Fail ts mewakili sekeping video atau audio, dan dapat dalam format ts, mp4, aac dan format lain. Kerana ia telah ditentukan untuk dibuka dari 1
|
Masukkan e-mel untuk mendapatkan kejutan
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Orang Afrika
sq.fmuser.org -> Bahasa Albania
ar.fmuser.org -> Bahasa Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Bahasa Catalan
zh-CN.fmuser.org -> Bahasa Cina (Ringkas)
zh-TW.fmuser.org -> Bahasa Cina (Tradisional)
hr.fmuser.org -> Bahasa Croatia
cs.fmuser.org -> Bahasa Czech
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Orang Filipina
fi.fmuser.org -> Bahasa Finland
fr.fmuser.org -> Bahasa Perancis
gl.fmuser.org -> orang Galicia
ka.fmuser.org -> Orang Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Greek
ht.fmuser.org -> Haitian Creole
iw.fmuser.org -> Bahasa Ibrani
hi.fmuser.org -> Bahasa Hindi
hu.fmuser.org -> Bahasa Hungary
is.fmuser.org -> Bahasa Iceland
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Ireland
it.fmuser.org -> Bahasa Itali
ja.fmuser.org -> Jepun
ko.fmuser.org -> Bahasa Korea
lv.fmuser.org -> Bahasa Latvia
lt.fmuser.org -> Bahasa Lithuania
mk.fmuser.org -> orang Macedonia
ms.fmuser.org -> Bahasa Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Bahasa Norway
fa.fmuser.org -> Parsi
pl.fmuser.org -> Bahasa Poland
pt.fmuser.org -> Portugis
ro.fmuser.org -> Romania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Bahasa Serbia
sk.fmuser.org -> Bahasa Slovak
sl.fmuser.org -> Bahasa Slovenia
es.fmuser.org -> Sepanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Sweden
th.fmuser.org -> Thai
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraine
ur.fmuser.org -> Bahasa Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Wales
yi.fmuser.org -> Bahasa Yiddish
FMUSER Wirless Menghantar Video Dan Audio Lebih Mudah!
Hubungi Kami
alamat:
No.305 Bilik HuiLan Bangunan No.273 Huanpu Road Guangzhou China 510620
Kategori
Buletin