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
HLS dan Http Live Streaming adalah protokol untuk streaming masa nyata yang ditentukan oleh Apple. HLS dilaksanakan berdasarkan protokol HTTP. Kandungan transmisi merangkumi dua bahagian, satu adalah fail keterangan M3U8, dan yang lain adalah fail media TS.
1. Fail M3U8
Fail media dijelaskan dalam teks, yang terdiri dari rangkaian tag.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Baris pertama setiap fail M3U8 mestilah teg ini.
# EXT-X-TARGETDURATION: Nyatakan panjang masa segmen media maksimum (saat). Tempoh masa yang dinyatakan dalam #EXTINF mestilah kurang dari atau sama dengan nilai maksimum ini. Nilai ini hanya boleh muncul sekali.
#EXTINF: Huraikan panjang fail media tunggal. Fail media diikuti, seperti ./0.ts
2. fail ts
Fail ts adalah fail aliran pengangkutan, format pengekodan video utama adalah h264 / mpeg4, dan audio adalah acc / MP3.
Fail ts terbahagi kepada tiga lapisan: lapisan aliran Stream Pengangkutan, lapisan pes Packet Elemental Stream, es lapisan Elementary Stream. Lapisan es adalah data audio dan video, dan lapisan pes adalah maklumat keterangan bingkai data seperti cap waktu yang ditambahkan ke data audio dan video. Lapisan ts adalah untuk menambahkan maklumat yang diperlukan untuk pengenalpastian dan penghantaran aliran data di lapisan pes
Catatan: Perinciannya adalah seperti berikut
(1) lapisan ts Ukuran paket ts ditetapkan pada 188 byte, dan lapisan ts dibagi menjadi tiga bagian: header ts, bidang adaptasi, dan muatan. Header ts ditetapkan pada 4 bait; medan penyesuaian mungkin atau tidak ada, dan fungsi utamanya adalah untuk mengisi data kurang dari 188 bait; muatan adalah data pes.
pengepala ts
bait penyegerakan sync_byte 8b, ditetapkan pada 0x47
transport_error_indicator 1b Penunjuk ralat pengangkutan, menunjukkan bahawa terdapat bait yang tidak berguna setelah medan adaptasi dari tajuk ts, biasanya 0, bait ini dikira dalam panjang medan menyesuaikan
payload_unit_start_indicator 1b Indikator permulaan unit muat, yang ditandai sebagai 1 pada awal paket data lengkap
transport_priority 1b Keutamaan pengangkutan, 0 adalah keutamaan rendah, 1 adalah keutamaan tinggi, biasanya 0
nilai pid 13b pid
transport_scrambling_control 2b Kawalan perebutan pengangkutan, 00 bermaksud tidak disulitkan
adaptation_field_control 2b Sama ada merangkumi bidang penyesuaian, '00' dicadangkan; '01' bermaksud tiada bidang penyesuaian, hanya muatan; '10' bermaksud hanya bidang penyesuaian, tanpa muatan; '11' bermaksud penyesuaian juga termasuk Domain dan muatan.
Continity_counter 4b Menambah pembilang, dari 0-f, nilai permulaan tidak semestinya mengambil 0, tetapi mesti berterusan
Kandungan lapisan ts dikenal dengan nilai PID, dan kandungan utamanya meliputi: PAT table, PMT table, audio stream, dan video stream. Untuk menguraikan aliran ts, anda mesti terlebih dahulu mencari jadual PAT, selagi anda menjumpai PAT, anda dapat mencari PMT, dan kemudian anda dapat mencari aliran audio dan video. Nilai PID jadual PAT ditetapkan pada 0. Jadual PAT dan jadual PMT perlu dimasukkan ke dalam aliran ts secara berkala, kerana pengguna dapat bergabung dengan aliran ts pada bila-bila masa, selang waktu ini agak kecil, biasanya setiap beberapa bingkai video untuk menambah PAT dan PMT. Jadual PAT dan PMT diperlukan, dan jadual lain seperti SDT (jadual penerangan perkhidmatan) juga dapat ditambahkan, tetapi aliran hls dapat dimainkan selagi ada PAT dan PMT.
Jadual PAT: Fungsi utamanya adalah untuk menunjukkan nilai PID jadual PMT.
Jadual PMT: Fungsi utamanya adalah untuk menentukan nilai PID aliran audio dan video.
Aliran audio / aliran video: Membawa kandungan audio dan video.
adaptasi
adaptasi_field_length 1B panjang medan penyesuaian, bilangan bait di belakang
bendera 1B mengambil 0x50 untuk menunjukkan PCR atau 0x40 untuk tidak menyertakan PCR
Rujukan Jam Program PCR 5B, rujukan jam program, digunakan untuk memulihkan jam pemasaan sistem STC (System Time Clock) yang konsisten dengan pengekod.
isian_bytes xB isian bait, nilainya ialah 0xff
Panjang kawasan penyesuaian hendaklah merangkumi satu bait yang dikenal pasti oleh penunjuk ralat penghantaran. pcr adalah rujukan jam program, pcr, dts, pts adalah semua nilai sampel jam sistem yang sama, pcr adalah kenaikan, sehingga dapat ditetapkan sebagai nilai dts, data audio tidak memerlukan pcr. Sekiranya tidak ada padang, ipad boleh bermain, tetapi vlc tidak dapat bermain. Semasa mengemas aliran ts, jadual PAT dan PMT tidak mempunyai medan penyesuaian. Sekiranya panjangnya tidak mencukupi, isikan 0xff sahaja. Aliran video dan aliran audio perlu menambahkan medan adaptasi, yang biasanya ditambahkan ke paket ts pertama dan paket ts terakhir dari bingkai, dan paket ts tengah tidak ditambahkan.
Format PAT
table_id 8b PAT jadual tetap ke 0x00
section_syntax_indicator 1b ditetapkan pada 1
sifar 1b ditetapkan pada 0
2b terpelihara ditetapkan kepada 11
section_length 12b Panjang data berikut
transport_stream_id 16b ID aliran pengangkutan, ditetapkan sebagai 0x0001
2b terpelihara ditetapkan kepada 11
version_number 5b Nombor versi, tetap pada 00000, jika PAT berubah, nombor versi akan meningkat sebanyak 1
current_next_indicator 1b ditetapkan ke 1, menunjukkan bahawa jadual PAT ini dapat digunakan, jika 0, tunggu jadual PAT seterusnya
bahagian_nombor 8b ditetapkan kepada 0x00
last_section_number 8b ditetapkan kepada 0x00
Gelung permulaan
program_number 16b Apabila nombor program 0x0000, ini bermaksud NIT, apabila nombor program 0x0001, ini bermaksud PMT
3b terpelihara ditetapkan kepada 111
Nilai PID 13b PID yang sesuai dengan kandungan nombor program
Gelung akhir
CRC32 32b CRC32 memeriksa kod data sebelumnya
Format PMT
table_id 8b PMT table mempunyai sebarang nilai, 0x02
section_syntax_indicator 1b ditetapkan pada 1
sifar 1b ditetapkan pada 0
2b terpelihara ditetapkan kepada 11
section_length 12b Panjang data berikut
program_number 16b nombor saluran, yang bermaksud saluran yang dikaitkan dengan PMT semasa, nilainya adalah 0x0001
2b terpelihara ditetapkan kepada 11
version_number 5b Nombor versi, tetap pada 00000, jika PAT berubah, nombor versi akan meningkat sebanyak 1
current_next_indicator 1b ditetapkan pada 1
bahagian_nombor 8b ditetapkan kepada 0x00
last_section_number 8b ditetapkan kepada 0x00
3b terpelihara ditetapkan kepada 111
PCR_PID 13b PID paket TS di mana PCR (jam rujukan program) berada, ditetapkan sebagai PID video
4b terpelihara ditetapkan kepada 1111
program_info_length 12b Maklumat keterangan program, yang ditetapkan sebagai 0x000 bermaksud tidak
Gelung permulaan
stream_type 8b Jenis aliran, tanda adalah Video atau Audio atau data lain, pengekodan h.264 sepadan dengan 0x1b, pengekodan aac sepadan dengan 0x0f, pengekodan mp3 sesuai dengan 0x03
3b terpelihara ditetapkan kepada 111
elementary_PID 13b PID sepadan dengan aliran_jenis
4b terpelihara ditetapkan kepada 1111
ES_info_length 12b Maklumat keterangan, ditetapkan sebagai 0x000 bermaksud tidak
Gelung akhir
CRC32 32b CRC32 memeriksa kod data sebelumnya
(2) lapisan pes
Lapisan pes menambah cap masa dan maklumat lain untuk setiap bingkai video / audio. Pakej pes mengandungi banyak kandungan, dan kami hanya meninggalkan yang paling biasa digunakan.
kod permulaan pes 3B kod permulaan, tetap pada 0x000001
stream stream nilai audio 1B (0xc0-0xdf), biasanya 0xc0
Nilai video (0xe0-0xef), biasanya 0xe0
panjang paket pes 2B Panjang data pes di belakang, 0 bermaksud panjang tidak terhad,
Panjang data video hanya akan melebihi 0xffff
Bendera 1B biasanya mengambil nilai 0x80, yang bermaksud data tidak dienkripsi, tidak mempunyai keutamaan, dan disandarkan data
Nilai bendera 1B 0x80 bermaksud pts sahaja, nilai 0xc0 bermaksud pts dan dts
panjang data pes 1B Panjang data berikut, nilainya adalah 5 atau 10
nilai pts 5B 33bit
nilai dts 5B 33bit
pts adalah cap waktu paparan dan dts adalah cap waktu penyahkodan. Kedua-dua cap masa diperlukan untuk data video. Poin dan dts data audio adalah sama, jadi hanya pts yang diperlukan. Terdapat dua cap waktu, pts dan dts, yang disebabkan oleh bingkai B. Pts I dan P frame sama dengan dts. Sekiranya video tidak mempunyai bingkai B, mata akan selalu sama dengan dts. Baca bingkai video secara berurutan dari fail, dan urutan bingkai yang diekstrak sama dengan urutan dts. Algoritma dts agak sederhana, nilai awal + kenaikan cukup, pengiraan pts lebih rumit, dan ofset perlu ditambahkan ke dts.
Hanya terdapat poin dalam pes audio (sama dengan dts), bingkai I dan P video mesti mempunyai kedua-dua cap waktu, dan bingkai video B hanya memerlukan poin (sama dengan dts). Untuk mengemas pts dan dts, anda perlu mengetahui jenis bingkai video, tetapi kami tidak dapat menilai jenis bingkai melalui format bekas. Anda mesti menguraikan kandungan h.264 untuk mendapatkan jenis bingkai.
sebagai contoh:
IPBBBP
Urutan membaca: 1 2 3 4 5 6
pesanan dts: 1 2 3 4 5 6
pesanan pts: 1 5 3 2 4 6
Algoritma dts video atas permintaan:
dts = nilai awal + 90000 / video_frame_rate, nilai awal dapat ditentukan dengan sewenang-wenangnya, tetapi yang terbaik adalah tidak mengambil 0, video_frame_rate adalah kadar bingkai, seperti 23, 30.
pts dan dts berdasarkan skala waktu, 1s = 90000 skala waktu, satu bingkai harus 90000 / video_frame_rate skala waktu.
Membahagi skala waktu satu bingkai dengan frekuensi pensampelan dapat ditukar menjadi jangka masa pemutaran satu bingkai
Algoritma dts audio atas permintaan:
dts = nilai awal + (90000 * audio_samples_per_frame) / audio_sample_rate, nilai audio_samples_per_frame berkaitan dengan codec, nilai aac adalah 1024, nilai mp3 adalah 1158, audio_sample_rate adalah kadar pengambilan sampel, seperti 24000, 41000. AAC menguraikan bingkai bingkai 1024 sampel per saluran, yang bermaksud bahawa jangka masa bingkai adalah 1024 / sample_rate saat. Jadi cap waktu setiap bingkai adalah 0, 1024 / kadar_ sampel, ..., 1024 * n / kadar_ sampel.
Dts dan poin video langsung harus menggunakan masa secara langsung dalam aliran data langsung, dan tidak boleh dikira dengan formula.
(3) lapisan es
Lapisan es merujuk kepada data audio dan video, kami hanya memperkenalkan video h.264 dan audio aac.
video h.264:
Untuk mengemas data h.264, kita mesti menambahkan nalu (unit Network Abstraction Layer) ke data video. Nalu merangkumi tajuk nalu dan jenis nalu. Header nalu ditetapkan ke 0x00000001 (permulaan bingkai) atau 0x000001 (dalam bingkai). Data h.264 terdiri daripada slice, dan isi slice meliputi: video, sps, pps, dll. Jenis nalu menentukan kandungan data h.264 berikutnya.
F 1b terlarang_zero_bit, h.264 menetapkan bahawa mestilah 0
NRI 2b nal_ref_idc, nilai 0 ~ 3, menunjukkan kepentingan nalu ini, I frame, sps, pps biasanya mengambil 3, P frame biasanya mengambil 2, dan B frame biasanya mengambil 0
Jenis 5b rujuk jadual di bawah
nal_unit_tipe keterangan
0 tidak digunakan
1 Gambar bukan IDR, IDR merujuk pada bingkai utama
2 bahagian partisi A
3 bahagian partisi B
|
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