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
Beberapa hari yang lalu, saya meluangkan masa untuk mempelajari teknologi streaming langsung HTTP (HLS) dan melaksanakan pengekod HLS, hlsliveencoder, yang ditulis dalam C + +. Fungsinya adalah untuk menangkap kamera dan mikrofon, pengkodan video H.264 masa nyata dan pengekodan audio aac, dan menurut spesifikasi protokol HLS, menghasilkan fail TS standard tersegmentasi dan file indeks m3u8. Melalui hlsliveencoder saya dan pelayan HTTP pihak ketiga (seperti nginx), kami berjaya menyedari streaming langsung HTTP dan lulus ujian pada iPhone. Saya akan menulis beberapa keuntungan di sini.
1. Analisis Teknologi HLS
Streaming langsung HTTP (HLS) adalah protokol pengangkutan media streaming berdasarkan HTTP yang dilaksanakan oleh Apple Inc., yang dapat mewujudkan media streaming langsung dan atas permintaan. Ia digunakan terutamanya dalam sistem IOS untuk menyediakan penyelesaian audio dan video secara langsung dan atas permintaan untuk peranti IOS (seperti iPhone dan iPad). HLS berdasarkan permintaan pada dasarnya adalah HTTP tersegmentasi berdasarkan permintaan. Perbezaannya ialah segmennya sangat kecil. Untuk mewujudkan HLS berdasarkan permintaan, kuncinya adalah untuk menyegmentasikan fail media. Pada masa ini, terdapat banyak alat sumber terbuka yang dapat digunakan. Saya tidak akan membincangkannya di sini, hanya bercakap mengenai teknologi siaran langsung HLS.
Berbanding dengan protokol streaming langsung yang biasa, seperti protokol RTMP, protokol RTSP, protokol MMS dan sebagainya, perbezaan terbesar streaming langsung HLS adalah bahawa klien langsung tidak mendapat aliran data yang lengkap. Protokol HLS menyimpan aliran data langsung sebagai fail media berterusan, jangka pendek dan panjang (format mpeg-ts) di sisi pelayan, sementara pihak klien terus memuat turun dan memainkan fail kecil ini, kerana bahagian pelayan selalu menghasilkan fail kecil baru dari data langsung terkini, supaya pihak pelanggan hanya perlu memainkan fail yang diperoleh dari pelayan untuk merealisasikan siaran langsung. Ini dapat dilihat bahawa HLS pada dasarnya merealisasikan penyiaran langsung dengan menggunakan teknologi VOD. Oleh kerana data dihantar melalui protokol HTTP, tidak perlu mempertimbangkan masalah firewall atau proksi, dan waktu untuk menyegmentasikan file sangat singkat. Pelanggan boleh memilih dan menukar kadar kod dengan cepat untuk menyesuaikan diri dengan pemutaran dalam keadaan lebar jalur yang berbeza. Walau bagaimanapun, kerana ciri teknikal HLS, kelewatannya selalu lebih tinggi daripada protokol streaming langsung biasa.
Menurut pemahaman di atas, untuk mencapai streaming langsung HTTP secara langsung, kita perlu mengkaji dan menerapkan teknologi utama berikut.
(1) Kumpulkan data sumber video dan sumber audio
(2) Data asal dikodkan oleh H264 dan AAC
(3) Data video dan audio dikemas sebagai paket mpeg-ts
(4) Strategi penjanaan segmentasi HLS dan fail indeks m3u8
2. Protokol pengangkutan HTTP
Di antaranya, poin pertama dan kedua telah disebutkan dalam artikel saya sebelumnya, dan titik terakhir ialah kita dapat menggunakan pelayan HTTP yang ada, jadi pelaksanaan poin ketiga dan keempat adalah kuncinya.
(1) Rangka kerja dan Pelaksanaan Program
Melalui analisis di atas, logik dan proses pengekod langsung HLS pada dasarnya jelas: mulakan urutan pengekodan audio dan video masing-masing, merealisasikan pemerolehan audio dan video melalui teknologi DirectShow (atau yang lain), dan kemudian memanggil libx264 dan libfaac masing-masing untuk video dan pengekodan audio. Setelah dua utas pengekodan menyandikan data audio dan video dalam masa nyata, mereka menyimpannya dalam fail segmen format mpeg-ts sesuai dengan strategi partisi yang disesuaikan. Apabila fail segmen disimpan, fail indeks m3u8 dikemas kini. Seperti yang ditunjukkan dalam gambar di bawah:
Dalam gambar di atas, setelah menerima data video dan audio, hlsliveencoder perlu terlebih dahulu menentukan sama ada partisi semasa harus berakhir, dan membuat partisi baru untuk meneruskan generasi TS yang berterusan. Harus diingat bahawa pemecahan baru harus bermula dari bingkai utama untuk mengelakkan pemain gagal menyahkod. Kod terasnya adalah seperti berikut:
Antara muka tsmuxer juga agak mudah.
(2) Strategi penjanaan segmen HLS dan m3u8
① Strategi segmentasi
Strategi segmentasi HLS pada dasarnya disarankan untuk membelah setiap 10 saat. Sudah tentu, masa tertentu mesti ditandakan mengikut jangka masa sebenar perpecahan
Secara umum, demi cache dan alasan lain, tiga alamat fragmen terbaru disimpan dalam fail indeks dan dikemas kini dalam bentuk "sliding window".
② Pengenalan fail m3u8
M3u8 adalah fail indeks streaming langsung HTTP. M3u8 boleh dianggap sebagai. Pada dasarnya fail format M3U, perbezaannya ialah fail m3u8 menggunakan pengekodan watak UTF-8.
Salin kod
# Headm file Extm3u M3U, mesti diletakkan di baris pertama
# Nombor siri segmen TS pertama urutan ext-x-media
# Ext-x-targetduration durasi maksimum setiap segmen TS
#Adakah ext-x-allow-cache membenarkan cache
# Akhir fail m3u8 ext-x-endlist
#Extinf info tambahan, maklumat split ts, seperti durasi, lebar jalur, dll
|
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