FMUSER Wirless Mengirim Video Dan Audio Lebih Mudah!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikans
sq.fmuser.org -> Albania
ar.fmuser.org -> Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarusia
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Cina (Sederhana)
zh-TW.fmuser.org -> Mandarin (Tradisional)
hr.fmuser.org -> Kroasia
cs.fmuser.org -> Ceko
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Filipina
fi.fmuser.org -> Finlandia
fr.fmuser.org -> Perancis
gl.fmuser.org -> Galicia
ka.fmuser.org -> Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Yunani
ht.fmuser.org -> Kreol Haiti
iw.fmuser.org -> Ibrani
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongaria
is.fmuser.org -> Islandia
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Irlandia
it.fmuser.org -> Italia
ja.fmuser.org -> Jepang
ko.fmuser.org -> Korea
lv.fmuser.org -> Latvia
lt.fmuser.org -> Lithuania
mk.fmuser.org -> Makedonia
ms.fmuser.org -> Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Norwegia
fa.fmuser.org -> Persia
pl.fmuser.org -> Polandia
pt.fmuser.org -> Portugis
ro.fmuser.org -> Rumania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Serbia
sk.fmuser.org -> Slowakia
sl.fmuser.org -> Slovenia
es.fmuser.org -> Spanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Swedia
th.fmuser.org -> Thailand
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraina
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Welsh
yi.fmuser.org -> Yiddish
Beberapa hari yang lalu, saya menghabiskan beberapa waktu untuk mempelajari teknologi HTTP live streaming (HLS) dan menerapkan encoder HLS, hlsliveencoder, yang ditulis dalam C ++. Fungsinya untuk menangkap kamera dan mikrofon, pengkodean video H.264 real-time dan pengkodean audio aac, dan sesuai dengan spesifikasi protokol HLS, menghasilkan file TS standar tersegmentasi dan file indeks m3u8. Melalui hlsliveencoder saya dan server HTTP pihak ketiga (seperti nginx), kami berhasil mewujudkan streaming langsung HTTP dan lulus ujian di iPhone. Saya akan menulis beberapa keuntungan di sini.
1. Analisis Teknologi HLS
HTTP live streaming (HLS) adalah protokol transportasi media streaming berdasarkan HTTP yang diterapkan oleh Apple Inc., yang dapat mewujudkan media streaming langsung dan sesuai permintaan. Ini terutama digunakan dalam sistem IOS untuk menyediakan audio dan video langsung dan solusi sesuai permintaan untuk perangkat IOS (seperti iPhone dan iPad). HLS on demand pada dasarnya adalah HTTP tersegmentasi umum atas permintaan. Perbedaannya adalah segmennya sangat kecil. Untuk mewujudkan HLS sesuai permintaan, kuncinya adalah membagi file media. Saat ini sudah banyak tool open source yang bisa digunakan. Saya tidak akan membahasnya di sini, hanya berbicara tentang teknologi siaran langsung HLS.
Dibandingkan dengan protokol streaming langsung yang umum, seperti protokol RTMP, protokol RTSP, protokol MMS, dan sebagainya, perbedaan terbesar dari streaming langsung HLS adalah klien langsung tidak mendapatkan aliran data yang lengkap. Protokol HLS menyimpan aliran data langsung sebagai file media berkelanjutan, jangka pendek dan panjang (format mpeg-ts) di sisi server, sedangkan sisi klien terus-menerus mengunduh dan memutar file kecil ini, karena sisi server selalu menghasilkan file kecil baru dari data langsung terbaru, sehingga sisi klien hanya perlu memutar file yang diperoleh dari server untuk mewujudkan siaran langsung. Dapat dilihat bahwa HLS pada dasarnya mewujudkan siaran langsung melalui teknologi VOD. Karena data dikirim melalui protokol HTTP, tidak perlu mempertimbangkan masalah firewall atau proxy, dan waktu segmentasi file sangat singkat. Klien dapat dengan cepat memilih dan mengganti kecepatan kode untuk beradaptasi dengan pemutaran dalam kondisi bandwidth yang berbeda. Namun, karena karakteristik teknis HLS, penundaannya selalu lebih tinggi daripada protokol streaming langsung biasa.
Menurut pemahaman di atas, untuk mencapai live streaming HTTP, kita perlu mempelajari dan menerapkan teknologi utama berikut.
(1) Kumpulkan data sumber video dan sumber audio
(2) Data asli dikodekan oleh H264 dan AAC
(3) Data video dan audio dikemas sebagai paket mpeg-ts
(4) Strategi pembuatan segmentasi HLS dan file indeks m3u8
2. Protokol transport HTTP
Diantaranya, poin pertama dan kedua telah disebutkan di artikel saya sebelumnya, dan poin terakhir adalah kita dapat menggunakan server HTTP yang ada, jadi implementasi poin ketiga dan keempat adalah kuncinya.
(1) Kerangka dan Implementasi Program
Melalui analisis di atas, logika dan proses encoder langsung HLS pada dasarnya jelas: mulai utas pengkodean audio dan video masing-masing, sadari akuisisi audio dan video melalui teknologi DirectShow (atau lainnya), dan kemudian panggil libx264 dan libfaac masing-masing untuk video dan pengkodean audio. Setelah dua utas pengkodean menyandikan data audio dan video secara real time, mereka menyimpannya dalam file segmen format mpeg-ts sesuai dengan strategi partisi yang disesuaikan. Ketika file segmen disimpan, file indeks m3u8 diperbarui. Seperti yang ditunjukkan pada gambar di bawah ini:
Pada gambar di atas, setelah menerima data video dan audio, hlsliveencoder harus terlebih dahulu menentukan apakah partisi saat ini harus diakhiri, dan membuat partisi baru untuk melanjutkan pembuatan partisi TS secara berkelanjutan. Perlu dicatat bahwa fragmentasi baru harus dimulai dari bingkai kunci untuk mencegah pemutar dari kegagalan decoding. Kode intinya adalah sebagai berikut:
Antarmuka tsmuxer juga relatif sederhana.
(2) Strategi pembangkitan segmen HLS dan m3u8
① Strategi segmentasi
Strategi segmentasi HLS pada dasarnya direkomendasikan untuk dibagi setiap 10 detik. Tentu saja, waktu spesifik harus diberi tanda sesuai dengan panjang perpecahan yang sebenarnya
Secara umum, demi cache dan alasan lain, tiga alamat fragmen terbaru disimpan dalam file indeks dan diperbarui dalam bentuk "jendela geser".
② Pengenalan file m3u8
M3u8 adalah file indeks streaming langsung HTTP. M3u8 bisa dianggap sebagai. File berformat M3U pada dasarnya, perbedaannya adalah file m3u8 menggunakan encoding karakter UTF-8.
Salin kode
# File header Extm3u M3U, harus ditempatkan di baris pertama
#Nomor seri dari segmen TS pertama dari urutan ext-x-media
# Ext-x-targetduration durasi maksimum setiap segmen TS
#Apakah ext-x-allow-cache mengizinkan cache
#Akhir dari file m3u8 ext-x-endlist
#Extinf info tambahan, informasi ts split, seperti durasi, bandwidth, dll
|
Masukkan email untuk mendapatkan kejutan
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikans
sq.fmuser.org -> Albania
ar.fmuser.org -> Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarusia
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Cina (Sederhana)
zh-TW.fmuser.org -> Mandarin (Tradisional)
hr.fmuser.org -> Kroasia
cs.fmuser.org -> Ceko
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Filipina
fi.fmuser.org -> Finlandia
fr.fmuser.org -> Perancis
gl.fmuser.org -> Galicia
ka.fmuser.org -> Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Yunani
ht.fmuser.org -> Kreol Haiti
iw.fmuser.org -> Ibrani
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongaria
is.fmuser.org -> Islandia
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Irlandia
it.fmuser.org -> Italia
ja.fmuser.org -> Jepang
ko.fmuser.org -> Korea
lv.fmuser.org -> Latvia
lt.fmuser.org -> Lithuania
mk.fmuser.org -> Makedonia
ms.fmuser.org -> Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Norwegia
fa.fmuser.org -> Persia
pl.fmuser.org -> Polandia
pt.fmuser.org -> Portugis
ro.fmuser.org -> Rumania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Serbia
sk.fmuser.org -> Slowakia
sl.fmuser.org -> Slovenia
es.fmuser.org -> Spanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Swedia
th.fmuser.org -> Thailand
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraina
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Welsh
yi.fmuser.org -> Yiddish
FMUSER Wirless Mengirim Video Dan Audio Lebih Mudah!
Kontak
Alamat:
No.305 Kamar HuiLan Building No.273 Huanpu Road Guangzhou China 510620
Kategori
Buletin