FMUSER უფრო მარტივად გადასცემს ვიდეოს და აუდიოს!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> აფრიკული
sq.fmuser.org -> ალბანური
ar.fmuser.org -> არაბული
hy.fmuser.org -> სომხური
az.fmuser.org -> აზერბაიჯანული
eu.fmuser.org -> ბასკური
be.fmuser.org -> ბელორუსული
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> კატალანური
zh-CN.fmuser.org -> ჩინური (გამარტივებული)
zh-TW.fmuser.org -> ჩინური (ტრადიციული)
hr.fmuser.org -> ხორვატული
cs.fmuser.org -> ჩეხური
da.fmuser.org -> დანიური
nl.fmuser.org -> ჰოლანდიური
et.fmuser.org -> ესტონური
tl.fmuser.org -> ფილიპინური
fi.fmuser.org -> ფინური
fr.fmuser.org -> ფრანგული
gl.fmuser.org -> გალური
ka.fmuser.org -> ქართული
de.fmuser.org -> გერმანული
el.fmuser.org -> ბერძნული
ht.fmuser.org -> ჰაიტიური კრეოლური
iw.fmuser.org -> ებრაული
hi.fmuser.org -> ჰინდი
hu.fmuser.org -> Hungarian
is.fmuser.org -> ისლანდიური
id.fmuser.org -> ინდონეზიური
ga.fmuser.org -> ირლანდიური
it.fmuser.org -> იტალიური
ja.fmuser.org -> იაპონური
ko.fmuser.org -> კორეული
lv.fmuser.org -> ლატვიური
lt.fmuser.org -> ქართული
mk.fmuser.org -> მაკედონური
ms.fmuser.org -> მალაიზიური
mt.fmuser.org -> მალტური
no.fmuser.org -> ნორვეგიული
fa.fmuser.org -> სპარსული
pl.fmuser.org -> პოლონური
pt.fmuser.org -> პორტუგალიური
ro.fmuser.org -> რუმინული
ru.fmuser.org -> რუსული
sr.fmuser.org -> სერბული
sk.fmuser.org -> სლოვაკური
sl.fmuser.org -> Slovenian
es.fmuser.org -> ესპანური
sw.fmuser.org -> სუაჰილი
sv.fmuser.org -> შვედური
th.fmuser.org -> Thai
tr.fmuser.org -> თურქული
uk.fmuser.org -> უკრაინული
ur.fmuser.org -> ურდუ
vi.fmuser.org -> ვიეტნამური
cy.fmuser.org -> უელსური
yi.fmuser.org -> Yiddish
HLS და Http Live Streaming არის პროტოკოლები რეალურ დროში სტრიმინგისთვის, რომლებიც განსაზღვრულია Apple– ის მიერ. HLS ხორციელდება HTTP პროტოკოლის საფუძველზე. გადაცემის შინაარსი მოიცავს ორ ნაწილს, ერთი არის M3U8 აღწერილობის ფაილი, ხოლო მეორე არის TS მედია ფაილი.
1. M3U8 ფაილი
მედია ფაილი აღწერილია ტექსტში, რომელიც შედგება თეგების სერიისაგან.
#EXTM3U
# EXT-X- მიზანი: 5
#EXTINF: 5,
./0.წ
#EXTINF: 5,
./1.წ
# EXTM3U: თითოეული M3U8 ფაილის პირველი სტრიქონი უნდა იყოს ეს ნიშანი.
# EXT-X-TARGETDURATION: მიუთითეთ მედია სეგმენტის მაქსიმალური ხანგრძლივობა (წამები). #EXTINF- ში მითითებული დროის სიგრძე უნდა იყოს ამ მაქსიმალური მნიშვნელობის ნაკლები ან ტოლი. ეს მნიშვნელობა შეიძლება მხოლოდ ერთხელ გამოჩნდეს.
#EXTINF: აღწერეთ ერთი მედია ფაილის სიგრძე. მიჰყვება მედია ფაილები, როგორიცაა ./0.ts
2. ც ფაილი
Ts ფაილი არის სატრანსპორტო ნაკადის ფაილი, ვიდეოს კოდირების მთავარი ფორმატია h264 / mpeg4, ხოლო აუდიო არის acc / MP3.
Ts ფაილი იყოფა სამ ფენად: ts ფენის ტრანსპორტი ნაკადი, pes ფენა Packet Elemental Stream, es ფენა Elementary Stream. Es ფენა არის აუდიო და ვიდეო მონაცემები, ხოლო pes ფენა არის მონაცემთა ჩარჩოს აღწერის ინფორმაცია, როგორიცაა აუდიო და ვიდეო მონაცემებში დამატებული დროის ნიშანი. Ts ფენა არის საჭირო ინფორმაციის დამატება pes ფენაში მონაცემთა ნაკადის იდენტიფიკაციისა და გადასაცემად
შენიშვნა: დეტალები შემდეგია
(1) ts ფენა ts პაკეტის ზომა დაფიქსირებულია 188 ბაიტი, ხოლო ts ფენა დაყოფილია სამ ნაწილად: ts სათაური, ადაპტაციის ველი და დატვირთვა. Ts სათაური დაფიქსირებულია 4 ბაიტზე; ადაპტაციის ველი შეიძლება არსებობდეს ან არ არსებობდეს და მისი ძირითადი ფუნქციაა 188 ბაიტზე ნაკლები მონაცემების შევსება; დატვირთვა არის pes მონაცემები.
ც სათაური
sync_byte 8b სინქრონიზაციის ბაიტი, დაფიქსირდა 0x47- ზე
transport_error_indicator 1b ტრანსპორტის შეცდომის ინდიკატორი, რომელიც მიუთითებს, რომ ც ჰედერის ადაპტაციის ველის შემდეგ უსარგებლო ბაიტი არსებობს, ჩვეულებრივ 0, ეს ბაიტი ითვლება ადაპტური ველის სიგრძეზე
payload_unit_start_indicator 1b ჩატვირთეთ ერთეულის დაწყების ინდიკატორი, რომელიც 1-ით აღინიშნება მონაცემთა სრული პაკეტის დასაწყისში
transport_priority 1b ტრანსპორტის პრიორიტეტი, 0 არის დაბალი პრიორიტეტი, 1 არის მაღალი პრიორიტეტი, ჩვეულებრივ 0
pid 13b pid მნიშვნელობა
transport_scrambling_control 2b ტრანსპორტი scrambling კონტროლი, 00 ნიშნავს დაშიფრული
adaptation_field_control 2b შეიცავდეს თუ არა ადაპტაციის ველს, '00' დაცულია; '01' არ ნიშნავს ადაპტაციის ველს, მხოლოდ დატვირთვას; '10' ნიშნავს მხოლოდ ადაპტაციის ველს, ტვირთის დატვირთვას. '11' ნიშნავს ადაპტაციას, რომელიც შეიცავს დომენსა და დატვირთვას.
continuity_counter 4b მრიცხველის გაზრდა, 0-f- დან, საწყისი მნიშვნელობა სულაც არ იღებს 0-ს, მაგრამ ის უნდა იყოს უწყვეტი
Ts ფენის შინაარსი განისაზღვრება PID მნიშვნელობით და ძირითადი შინაარსი მოიცავს: PAT ცხრილს, PMT ცხრილს, აუდიო ნაკადს და ვიდეო ნაკადს. Ts ნაკადი რომ გაანალიზოთ, ჯერ უნდა იპოვოთ PAT ცხრილი, სანამ PAT იპოვნეთ, PMT და შემდეგ აუდიო და ვიდეო ნაკადები. PAT ცხრილის PID მნიშვნელობა დადგენილია 0. PAT ცხრილი და PMT ცხრილი რეგულარულად უნდა იყოს ჩასმული ts ნაკადში, რადგან მომხმარებელს შეუძლია ნებისმიერ დროს შეუერთდეს ts ნაკადს, ეს ინტერვალი შედარებით მცირეა, ჩვეულებრივ ყოველ რამდენიმე ვიდეო ჩარჩოები PAT და PMT დასამატებლად. აუცილებელია PAT და PMT ცხრილები, ასევე შეიძლება დაემატოს სხვა ცხრილები, როგორიცაა SDT (მომსახურების აღწერილობის ცხრილი), მაგრამ hls ნაკადის დაკვრა შესაძლებელია PAT და PMT არსებობის პირობებში.
PAT ცხრილი: მისი მთავარი ფუნქციაა PMT ცხრილის PID მნიშვნელობის აღნიშვნა.
PMT ცხრილი: მისი მთავარი ფუნქციაა აუდიო და ვიდეო ნაკადის PID მნიშვნელობის დაზუსტება.
აუდიო ნაკადი / ვიდეო ნაკადი: აუდიო და ვიდეო შინაარსის ტარება.
ადაპტაცია
adaptation_field_length 1B ადაპტაციის ველის სიგრძე, ბაიტების რაოდენობა უკან
flag 1B იღებს 0x50- ს PCR- ის მითითებისათვის ან 0x40- ს PCR- ის ჩასატარებლად
PCR 5B პროგრამის საათის მითითება, პროგრამის საათის მითითება, რომელიც გამოიყენება სისტემის ვადების აღდგენისთვის STC (სისტემის დროის საათი), რომელიც შეესაბამება შიფრატორს.
stuffing_bytes xB ჩაყრა ბაიტი, მნიშვნელობა არის 0xff
ადაპტაციის არეალის სიგრძე უნდა შეიცავდეს ერთ ბაიტს, რომელიც განსაზღვრულია გადაცემის შეცდომის მაჩვენებლით. pcr არის პროგრამის საათის მითითება, pcr, dts, pts ყველა ერთი და იგივე სისტემის საათის შერჩეული მნიშვნელობებია, pcr არის ნამატი, ამიტომ მისი დაყენება შესაძლებელია როგორც dts მნიშვნელობა, აუდიო მონაცემებს არ სჭირდება pcr. თუ ველი არ არის, ipad– ს შეუძლია თამაში, მაგრამ vlc– ს თამაში არ შეუძლია. Ts ნაკადის შეფუთვისას, PAT და PMT ცხრილებს არ აქვთ ადაპტაციის ველი. თუ სიგრძე არ არის საკმარისი, შეავსეთ 0xff. როგორც ვიდეო ნაკადის, ასევე აუდიო ნაკადის დამატება სჭირდება ადაპტაციის ველს, რომელიც ჩვეულებრივ ემატება პირველ ts პაკეტს და ჩარჩოს ბოლო ts პაკეტს, ხოლო საშუალო ts პაკეტი არ ემატება.
PAT ფორმატი
table_id 8b PAT ცხრილი ფიქსირდება 0x00– ზე
section_syntax_indicator 1 ბ ფიქსირდება 1-ზე
ნულოვანი 1 ბ ფიქსირდება 0-ზე
დაცული 2b ფიქსირდება 11-ზე
სექცია_ სიგრძე 12b შემდეგი მონაცემების სიგრძე
transport_stream_id 16b ტრანსპორტის ნაკადის ID, დაფიქსირდა, როგორც 0x0001
დაცული 2b ფიქსირდება 11-ზე
version_number 5b ვერსიის ნომერი, დაფიქსირებული 00000-ზე, თუ PAT შეიცვლება, ვერსიის ნომერი გაიზრდება 1-ით
current_next_indicator 1b ფიქსირდება 1-ზე, რაც მიუთითებს იმაზე, რომ ამ PAT ცხრილი შეიძლება გამოყენებულ იქნას, თუ ის 0ა, დაელოდეთ შემდეგ PAT ცხრილს
section_number 8b დაფიქსირებულია 0x00– ზე
last_section_number 8b დაფიქსირებულია 0x00– ზე
დაწყება მარყუჟი
program_number 16b როდესაც პროგრამის ნომერია 0x0000, ეს ნიშნავს რომ ეს არის NIT, როდესაც პროგრამის ნომერია 0x0001, ეს ნიშნავს PMT
დაცული 3b ფიქსირდება 111-ზე
PID 13b PID მნიშვნელობა, რომელიც შეესაბამება პროგრამის ნომრის შინაარსს
დასრულების მარყუჟი
CRC32 32b CRC32 წინა მონაცემების კოდი
PMT ფორმატში
table_id 8b PMT ცხრილს აქვს ნებისმიერი მნიშვნელობა, 0x02
section_syntax_indicator 1 ბ ფიქსირდება 1-ზე
ნულოვანი 1 ბ ფიქსირდება 0-ზე
დაცული 2b ფიქსირდება 11-ზე
სექცია_ სიგრძე 12b შემდეგი მონაცემების სიგრძე
program_number 16b არხის ნომერი, რაც ნიშნავს მიმდინარე არხთან დაკავშირებულ არხს, მნიშვნელობა არის 0x0001
დაცული 2b ფიქსირდება 11-ზე
version_number 5b ვერსიის ნომერი, დაფიქსირებული 00000-ზე, თუ PAT შეიცვლება, ვერსიის ნომერი გაიზრდება 1-ით
current_next_indicator 1b ფიქსირდება 1-ზე
section_number 8b დაფიქსირებულია 0x00– ზე
last_section_number 8b დაფიქსირებულია 0x00– ზე
დაცული 3b ფიქსირდება 111-ზე
PCR_PID 13b TS პაკეტის PID, სადაც მდებარეობს PCR (პროგრამის საცნობარო საათი), დანიშნულია როგორც ვიდეო PID
დაცული 4b ფიქსირდება 1111-ზე
program_info_length 12b პროგრამის აღწერა ინფორმაცია, დანიშნულია 0x000 ნიშნავს არა
დაწყება მარყუჟი
ნაკადი_ტიპი 8b ნაკადის ტიპი, ნიშანი არის ვიდეო ან აუდიო ან სხვა მონაცემები, h.264 კოდირება შეესაბამება 0x1b- ს, aac კოდირება შეესაბამება 0x0f- ს, mp3 კოდირება 0x03- ს
დაცული 3b ფიქსირდება 111-ზე
elementary_PID 13b PID, რომელიც შეესაბამება stream_type- ს
დაცული 4b ფიქსირდება 1111-ზე
ES_info_length 12b აღწერა 0x000– ით განსაზღვრული ინფორმაცია ნიშნავს არა
დასრულების მარყუჟი
CRC32 32b CRC32 წინა მონაცემების კოდი
(2) pes ფენა
Pes ფენა თითოეულ ვიდეო / აუდიო ჩარჩოს ამატებს დროის შტამპს და სხვა ინფორმაციას. Pes პაკეტი შეიცავს უამრავ შინაარსს და ჩვენ ვტოვებთ მხოლოდ ყველაზე ხშირად გამოყენებულ პაკეტებს.
pes დაწყების კოდი 3B საწყისი კოდი, დაფიქსირებული 0x000001
ნაკადი id 1B აუდიო მნიშვნელობა (0xc0-0xdf), ჩვეულებრივ 0xc0
ვიდეოს მნიშვნელობა (0xe0-0xef), ჩვეულებრივ 0xe0
pes პაკეტის სიგრძე 2B pes მონაცემების სიგრძე, 0 ნიშნავს შეუზღუდავ სიგრძეს,
მხოლოდ ვიდეოს მონაცემების სიგრძე გადააჭარბებს 0xffff
დროშა 1B ჩვეულებრივ იღებს 0x80 მნიშვნელობას, რაც ნიშნავს, რომ მონაცემები არ არის დაშიფრული, არ აქვს პრიორიტეტი და სარეზერვო ასლის მქონე მონაცემები
დროშა 1B მნიშვნელობა 0x80 ნიშნავს მხოლოდ წერტილებს, მნიშვნელობა 0xc0 ნიშნავს წერტილებს და წერტილებს
მონაცემების სიგრძე 1B შემდეგი მონაცემების სიგრძეა, მნიშვნელობა არის 5 ან 10
pts 5B 33 ბიტიანი მნიშვნელობა
dts 5B 33 ბიტიანი მნიშვნელობა
pts არის ჩვენების დროის ნიშანი და dts არის დეკოდირების დრო. ვიდეოს მონაცემებისთვის საჭიროა ორივე ნიშნულის ნიშანი. აუდიო მონაცემების წერტილები და წერტილები ერთნაირია, ამიტომ საჭიროა მხოლოდ წერტილები. არსებობს ორი ნიშნულის ნიშანი, pts და dts, რომლებიც გამოწვეულია B ჩარჩოებით. I და P ჩარჩოების pts ტოლია dts. თუ ვიდეოს B ჩარჩოები არ აქვს, pts ყოველთვის იგივე იქნება, რაც dts. წაიკითხეთ ვიდეო ჩარჩოები ფაილიდან თანმიმდევრულად და მოპოვებული კადრების თანმიმდევრობა იგივეა, რაც dts თანმიმდევრობა. Dts ალგორითმი შედარებით მარტივია, საწყისი მნიშვნელობა + ნამატი საკმარისია, pts გაანგარიშება უფრო რთულია და ოფსეტს უნდა დაემატოს dts.
აუდიო pes- ში არის მხოლოდ pts (იგივე dts), ვიდეოს I და P ჩარჩოებში უნდა იყოს დროის ნიშნულები, ხოლო ვიდეოს B ჩარჩოში მხოლოდ pts სჭირდება (იგივე dts). Pts და dts შესაფუთად, თქვენ უნდა იცოდეთ ვიდეო ჩარჩოს ტიპი, მაგრამ ჩარჩოს ტიპზე ვერ ვიმსჯელებთ კონტეინერის ფორმატის საშუალებით. ჩარჩოს ტიპის მისაღებად უნდა გაანალიზოთ h.264 შინაარსი.
მაგალითად:
IPBBBP
კითხვის რიგი: 1 2 3 4 5 6
dts შეკვეთა: 1 2 3 4 5 6
pts შეკვეთა: 1 5 3 2 4 6
მოთხოვნილი ვიდეო dts ალგორითმი:
dts = საწყისი მნიშვნელობა + 90000 / video_frame_rate, საწყისი მნიშვნელობა შეიძლება თვითნებურად იყოს მითითებული, მაგრამ უმჯობესია არ მიიღოთ 0, video_frame_rate არის კადრის სიჩქარე, მაგალითად 23, 30.
pts და dts დაფუძნებულია დროის მასშტაბზე, 1s = 90000 დროის მასშტაბი, ერთი ჩარჩო უნდა იყოს 90000 / video_frame_rate ვადები.
ერთი კადრის დროის განაწილება სინჯის აღების სიხშირით შეიძლება გადაკეთდეს ერთი კადრის დაკვრის ხანგრძლივობად
მოთხოვნილი აუდიო dts ალგორითმი:
dts = საწყისი მნიშვნელობით 90000 ნიმუში თითო არხზე, რაც ნიშნავს, რომ კადრის ხანგრძლივობაა 1024 / ნიმუში_რაიტი წამში. თითოეული ჩარჩოს დროის ნიშნულია 3, 1158 / ნიმუშის_რატი, ..., 24000 * n / ნიმუშის_წამი.
ცოცხალი ვიდეოს dts და pts პირდაპირ უნდა იყენებდეს დროს მონაცემთა პირდაპირ ნაკადში და არ უნდა გამოითვალოს ფორმულებით.
(3) es ფენა
Es ფენა ეხება აუდიო და ვიდეო მონაცემებს, ჩვენ მხოლოდ h.264 ვიდეო და aac აუდიოს შემოგთავაზებთ.
h.264 ვიდეო:
H.264 მონაცემების შესაფუთად, ვიდეოს მონაცემებს უნდა დავამატოთ nalu (ქსელის აბსტრაქციის შრის ერთეული). Nalu მოიცავს nalu სათაურს და nalu ტიპს. Nalu სათაური ფიქსირდება 0x00000001 (ჩარჩოს დასაწყისი) ან 0x000001 (ჩარჩოში). H.264- ის მონაცემები ნაჭრებისგან შედგება და ნაჭრების შინაარსი მოიცავს: ვიდეო, სპს, პპსი და ა.შ. nalu ტიპი განსაზღვრავს შემდგომი h.264 მონაცემების შინაარსს.
F 1b qedex_zero_bit, h.264 განსაზღვრავს, რომ ის უნდა იყოს 0
NRI 2b nal_ref_idc, მნიშვნელობა 0 ~ 3, მიუთითებს ამ nalu- ს მნიშვნელობაზე, I ჩარჩო, sps, pps ჩვეულებრივ იღებს 3-ს, P ჩარჩოს, როგორც წესი, იღებს 2, ხოლო B ჩარჩოს, როგორც წესი, სჭირდება 0
ტიპი 5 ბ მიმართეთ ქვემოთ მოცემულ ცხრილს
nal_unit_type აღწერა
0 არ არის გამოყენებული
1 არა IDR სურათი, IDR ეხება გასაღების ჩარჩოს
2 ნაჭერი დანაყოფი A
3 ნაჭერი დანაყოფი B
|
შეიყვანეთ ელ.წერილი სიურპრიზის მისაღებად
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> აფრიკული
sq.fmuser.org -> ალბანური
ar.fmuser.org -> არაბული
hy.fmuser.org -> სომხური
az.fmuser.org -> აზერბაიჯანული
eu.fmuser.org -> ბასკური
be.fmuser.org -> ბელორუსული
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> კატალანური
zh-CN.fmuser.org -> ჩინური (გამარტივებული)
zh-TW.fmuser.org -> ჩინური (ტრადიციული)
hr.fmuser.org -> ხორვატული
cs.fmuser.org -> ჩეხური
da.fmuser.org -> დანიური
nl.fmuser.org -> ჰოლანდიური
et.fmuser.org -> ესტონური
tl.fmuser.org -> ფილიპინური
fi.fmuser.org -> ფინური
fr.fmuser.org -> ფრანგული
gl.fmuser.org -> გალური
ka.fmuser.org -> ქართული
de.fmuser.org -> გერმანული
el.fmuser.org -> ბერძნული
ht.fmuser.org -> ჰაიტიური კრეოლური
iw.fmuser.org -> ებრაული
hi.fmuser.org -> ჰინდი
hu.fmuser.org -> Hungarian
is.fmuser.org -> ისლანდიური
id.fmuser.org -> ინდონეზიური
ga.fmuser.org -> ირლანდიური
it.fmuser.org -> იტალიური
ja.fmuser.org -> იაპონური
ko.fmuser.org -> კორეული
lv.fmuser.org -> ლატვიური
lt.fmuser.org -> ქართული
mk.fmuser.org -> მაკედონური
ms.fmuser.org -> მალაიზიური
mt.fmuser.org -> მალტური
no.fmuser.org -> ნორვეგიული
fa.fmuser.org -> სპარსული
pl.fmuser.org -> პოლონური
pt.fmuser.org -> პორტუგალიური
ro.fmuser.org -> რუმინული
ru.fmuser.org -> რუსული
sr.fmuser.org -> სერბული
sk.fmuser.org -> სლოვაკური
sl.fmuser.org -> Slovenian
es.fmuser.org -> ესპანური
sw.fmuser.org -> სუაჰილი
sv.fmuser.org -> შვედური
th.fmuser.org -> Thai
tr.fmuser.org -> თურქული
uk.fmuser.org -> უკრაინული
ur.fmuser.org -> ურდუ
vi.fmuser.org -> ვიეტნამური
cy.fmuser.org -> უელსური
yi.fmuser.org -> Yiddish
FMUSER უფრო მარტივად გადასცემს ვიდეოს და აუდიოს!
კონტაქტი
მისამართი:
No.305 ოთახი HuiLan კორპუსი No.273 Huanpu Road Guangzhou China 510620
კატეგორიები
საინფორმაციო ბიულეტენი