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 -> बल्गेरियाई
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 -> हंगेरी
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 -> स्लोवेनियाई
es.fmuser.org -> स्पेनिश
sw.fmuser.org -> स्वाहिली
sv.fmuser.org -> स्वीडिश
th.fmuser.org -> थाई
tr.fmuser.org -> तुर्की
uk.fmuser.org -> यूक्रेनी
ur.fmuser.org -> उर्दू
vi.fmuser.org -> वियतनामी
cy.fmuser.org -> वेल्श
yi.fmuser.org -> येहुदी
एचएलएस और एचटीपी लाइव स्ट्रीमिंग ऐप्पल द्वारा परिभाषित रीयल-टाइम स्ट्रीमिंग के लिए प्रोटोकॉल हैं। एचएलएस को एचटीटीपी प्रोटोकॉल के आधार पर लागू किया जाता है। ट्रांसमिशन सामग्री में दो भाग शामिल हैं, एक M3U8 विवरण फ़ाइल है, और दूसरा TS मीडिया फ़ाइल है।
1. M3U8 फ़ाइल
मीडिया फ़ाइल पाठ में वर्णित है, जो टैग की एक श्रृंखला से बना है।
#EXTM3U
# EXT-X-TARGETDURATION: 5
# अगला: 5,
./0.टी
# अगला: 5,
./1.टी
# EXTM3U: प्रत्येक M3U8 फ़ाइल की पहली पंक्ति यह टैग होनी चाहिए।
# EXT-X-TARGETDURATION: अधिकतम मीडिया खंड समय लंबाई (सेकंड) निर्दिष्ट करें। #EXTINF में निर्दिष्ट समय की लंबाई इस अधिकतम मान से कम या बराबर होनी चाहिए। यह मान केवल एक बार दिखाई दे सकता है।
# कपड़ा: एक ही मीडिया फ़ाइल की लंबाई का वर्णन करें। मीडिया फ़ाइलें जैसे ./0.ts का अनुसरण करती हैं
2. ts फ़ाइल
Ts फ़ाइल एक ट्रांसपोर्ट स्ट्रीम फाइल है, मुख्य वीडियो कोडिंग प्रारूप h264 / mpeg4 है, और ऑडियो एसीसी / एमपी 3 है।
Ts फ़ाइल को तीन परतों में विभाजित किया गया है: ts लेयर ट्रांसपोर्ट स्ट्रीम, pes लेयर पैकेट एलिमेंटल स्ट्रीम, es लेयर एलिमेंट्री स्ट्रीम। Es लेयर ऑडियो और वीडियो डेटा है, और pes लेयर डेटा फ्रेम विवरण जानकारी है जैसे ऑडियो और वीडियो डेटा में जोड़े गए टाइमस्टैम्प। Ts लेयर को pes लेयर में डेटा स्ट्रीम की पहचान और प्रसारण के लिए आवश्यक जानकारी जोड़ना है
नोट: विवरण इस प्रकार हैं
(1) ts लेयर ts पैकेट का आकार 188 बाइट्स पर तय किया गया है, और ts लेयर को तीन भागों में विभाजित किया गया है: ts हेडर, अडेप्टेशन फील्ड और पेलोड। Ts शीर्ष लेख 4 बाइट्स पर तय किया गया है; अनुकूलन क्षेत्र मौजूद हो सकता है या नहीं भी हो सकता है, और इसका मुख्य कार्य 188 बाइट्स से कम डेटा भरना है; पेलोड पीएस डेटा है।
ts हैडर
सिंक_बाइट 8 बी सिंक्रोनाइज़ेशन बाइट, 0x47 पर तय किया गया
transport_error_indicator 1b ट्रांसपोर्ट एरर इंडिकेटर, यह दर्शाता है कि ts हैडर के अनुकूल क्षेत्र के बाद एक बेकार बाइट है, आमतौर पर 0, इस बाइट को अनुकूलित फ़ील्ड की लंबाई में गिना जाता है
payload_unit_start_indicator 1b लोड यूनिट स्टार्ट इंडिकेटर, जो पूर्ण डेटा डेटासेट की शुरुआत में 1 के रूप में चिह्नित है
transport_priority 1b परिवहन प्राथमिकता, 0 कम प्राथमिकता है, 1 उच्च प्राथमिकता है, आमतौर पर 0
पीआईडी 13 बी पीआईडी मूल्य
transport_scrambling_control 2b परिवहन स्क्रैंबलिंग नियंत्रण, 00 का अर्थ है अनएन्क्रिप्टेड
adaptation_field_control 2b अनुकूलन क्षेत्र को शामिल करना है या नहीं, '00' आरक्षित है; '01' का अर्थ है कोई अनुकूलन क्षेत्र, केवल पेलोड; '10' का मतलब केवल अनुकूलन क्षेत्र है, कोई पेलोड नहीं; '11' का अर्थ है कि अनुकूलन में डोमेन और पेलोड भी शामिल है।
निरंतरता_ एनकाउंटर 4 बी बढ़ाना काउंटर, 0-एफ से, प्रारंभिक मूल्य जरूरी 0 नहीं लेता है, लेकिन इसे निरंतर होना चाहिए
Ts लेयर की सामग्री को PID मान द्वारा पहचाना जाता है, और मुख्य सामग्री में शामिल हैं: PAT टेबल, PMT टेबल, ऑडियो स्ट्रीम और वीडियो स्ट्रीम। Ts स्ट्रीम को पार्स करने के लिए, आपको पहले PAT टेबल को ढूंढना होगा, जब तक आप PAT को ढूंढते हैं, आप PMT को पा सकते हैं, और तब आप ऑडियो और वीडियो स्ट्रीम पा सकते हैं। PAT तालिका का PID मान 0. पर निर्धारित है। PAT तालिका और PMT तालिका को नियमित रूप से ts स्ट्रीम में सम्मिलित करने की आवश्यकता है, क्योंकि उपयोगकर्ता किसी भी समय ts स्ट्रीम में शामिल हो सकता है, यह अंतराल अपेक्षाकृत छोटा है, आमतौर पर हर कुछ PAT और PMT को जोड़ने के लिए वीडियो फ्रेम। पीएटी और पीएमटी टेबल आवश्यक हैं, और अन्य टेबल जैसे कि एसडीटी (सर्विस डिस्क्रिप्शन टेबल) को भी जोड़ा जा सकता है, लेकिन जब तक पीएटी और पीएमटी हैं तब तक हील्स स्ट्रीम को खेला जा सकता है।
पीएटी तालिका: इसका मुख्य कार्य पीएमटी तालिका के पीआईडी मूल्य को इंगित करना है।
पीएमटी तालिका: इसका मुख्य कार्य ऑडियो और वीडियो स्ट्रीम के पीआईडी मान को निर्दिष्ट करना है।
ऑडियो स्ट्रीम / वीडियो स्ट्रीम: ऑडियो और वीडियो सामग्री ले जाएं।
रूपांतरण
adaptation_field_length 1B अनुकूलन क्षेत्र की लंबाई, बाइट्स की संख्या पीछे
ध्वज 1B PCR या 0x50 को इंगित करता है कि PCR को शामिल नहीं करने के लिए 0x40 लेता है
पीसीआर 5 बी प्रोग्राम क्लॉक रेफरेंस, प्रोग्राम क्लॉक रेफरेंस, जो एनकोडर के अनुरूप सिस्टम टाइम क्लॉक एसटीसी (सिस्टम टाइम क्लॉक) को पुनर्प्राप्त करने के लिए उपयोग किया जाता है।
stuffing_bytes xB भराई बाइट्स, मान 0xff है
अनुकूलन क्षेत्र की लंबाई में ट्रांसमिशन त्रुटि संकेतक द्वारा पहचाना गया एक बाइट शामिल होगा। pcr प्रोग्राम क्लॉक रेफरेंस है, pcr, dts, pts एक ही सिस्टम क्लॉक के सभी सैंपल वैल्यू हैं, pcr वृद्धिशील है, इसलिए इसे dts वैल्यू के रूप में सेट किया जा सकता है, ऑडियो डेटा को pcr की जरूरत नहीं है। यदि कोई फ़ील्ड नहीं है, तो ipad खेल सकता है, लेकिन vlc नहीं खेल सकता है। Ts स्ट्रीम पैक करते समय, PAT और PMT तालिकाओं का अनुकूलन क्षेत्र नहीं होता है। यदि लंबाई पर्याप्त नहीं है, तो बस 0xff में भरें। वीडियो स्ट्रीम और ऑडियो स्ट्रीम दोनों को एक अनुकूलन क्षेत्र जोड़ना होगा, जो आमतौर पर पहले टीएस पैकेट और एक फ्रेम के अंतिम टीएस पैकेट में जोड़ा जाता है, और मध्य टीएस पैकेट नहीं जोड़ा जाता है।
पैट प्रारूप
table_id 8b PAT तालिका 0x00 पर तय की गई है
section_syntax_indicator 1b 1 पर तय किया गया है
शून्य 1 बी 0 पर तय किया गया है
आरक्षित 2 बी को 11 निर्धारित किया गया है
section_length 12b निम्नलिखित डेटा की लंबाई
transport_stream_id 16b ट्रांसपोर्ट स्ट्रीम आईडी, 0x0001 के रूप में तय की गई
आरक्षित 2 बी को 11 निर्धारित किया गया है
version_number 5b संस्करण संख्या, 00000 पर नियत की जाती है, यदि PAT बदल जाता है, तो संस्करण संख्या 1 से बढ़ जाएगी
current_next_indicator 1b को 1 तय किया गया है, यह दर्शाता है कि इस PAT तालिका का उपयोग किया जा सकता है, यदि यह 0 है, तो अगली PAT तालिका की प्रतीक्षा करें
अनुभाग_नंबर 8 बी को 0x00 तक तय किया गया है
last_section_number 8b 0x00 पर नियत है
लूप शुरू करें
program_number 16b जब प्रोग्राम संख्या 0x0000 है, तो इसका मतलब यह एनआईटी है, जब प्रोग्राम नंबर 0x0001 है, इसका मतलब यह है कि यह पीएमटी है
आरक्षित 3 बी को 111 निर्धारित किया गया है
पीआईडी 13 बी पीआईडी प्रोग्राम नंबर की सामग्री के अनुरूप है
अंत लूप
CRC32 32b CRC32 पिछले डेटा का चेक कोड है
पीएमटी प्रारूप
table_id 8b PMT तालिका का कोई मूल्य नहीं है, 0x02
section_syntax_indicator 1b 1 पर तय किया गया है
शून्य 1 बी 0 पर तय किया गया है
आरक्षित 2 बी को 11 निर्धारित किया गया है
section_length 12b निम्नलिखित डेटा की लंबाई
program_number 16b चैनल संख्या, जिसका अर्थ है कि वर्तमान पीएमटी से जुड़ा चैनल, मान 0x0001 है
आरक्षित 2 बी को 11 निर्धारित किया गया है
version_number 5b संस्करण संख्या, 00000 पर नियत की जाती है, यदि PAT बदल जाता है, तो संस्करण संख्या 1 से बढ़ जाएगी
current_next_indicator 1b 1 पर नियत है
अनुभाग_नंबर 8 बी को 0x00 तक तय किया गया है
last_section_number 8b 0x00 पर नियत है
आरक्षित 3 बी को 111 निर्धारित किया गया है
PCR_PID 13b TS पैकेट का PID जहाँ PCR (प्रोग्राम संदर्भ घड़ी) स्थित है, वीडियो PID के रूप में नामित है
आरक्षित 4 बी को 1111 निर्धारित किया गया है
program_info_length 12b कार्यक्रम विवरण जानकारी, 0x000 के रूप में नामित का अर्थ है नहीं
लूप शुरू करें
stream_type 8b स्ट्रीम प्रकार, चिह्न वीडियो या ऑडियो या अन्य डेटा है, h.264 एन्कोडिंग 0x1b से मेल खाती है, एएसी एन्कोडिंग 0x0f से मेल खाती है, एमपी 3 एन्कोडिंग 0x03 से मेल खाती है
आरक्षित 3 बी को 111 निर्धारित किया गया है
प्राथमिक_पीआईडी 13 बी पीआईडी स्ट्रीम_टाइप के अनुरूप है
आरक्षित 4 बी को 1111 निर्धारित किया गया है
ES_info_length 12b विवरण जानकारी, जिसे 0x000 के रूप में निर्दिष्ट किया गया है, का अर्थ नहीं है
अंत लूप
CRC32 32b CRC32 पिछले डेटा का चेक कोड है
(२) पेस लेयर
पेस लेयर प्रत्येक वीडियो / ऑडियो फ्रेम में समय की मोहर और अन्य जानकारी जोड़ता है। पेस पैकेज में बहुत अधिक सामग्री होती है, और हम केवल सबसे अधिक उपयोग किए जाने वाले को छोड़ देते हैं।
पीएस कोड 3 बी स्टार्ट कोड, 0x000001 पर शुरू होता है
स्ट्रीम आईडी 1 बी ऑडियो मूल्य (0xc0-0xdf), आमतौर पर 0xc0
वीडियो मूल्य (0xe0-0xef), आमतौर पर 0xe0
pes पैकेट लंबाई 2B pes डेटा की लंबाई के पीछे, 0 का अर्थ है असीमित लंबाई,
केवल वीडियो डेटा की लंबाई 0xffff से अधिक होगी
फ्लैग 1 बी आमतौर पर 0x80 मान लेता है, जिसका अर्थ है कि डेटा एन्क्रिप्ट नहीं किया गया है, कोई प्राथमिकता नहीं है, और डेटा का बैकअप लिया गया है
ध्वज 1B मान 0x80 का अर्थ केवल pts है, मान 0xc0 का अर्थ pts और dts है
पीएस डेटा लंबाई 1 बी निम्नलिखित डेटा की लंबाई, मान 5 या 10 है
पीटी 5 बी 33 बिट मूल्य
5B 33bit मूल्य dts
पीटीएस प्रदर्शन टाइमस्टैम्प है और डीटीएस डिकोडिंग टाइमस्टैम्प है। वीडियो डेटा के लिए दोनों टाइमस्टैम्प आवश्यक हैं। ऑडियो डेटा के pts और dts समान हैं, इसलिए केवल pts की आवश्यकता है। दो टाइमस्टैम्प, पीटी और डीटीएस हैं, जो बी फ्रेम के कारण होते हैं। I और P फ्रेम के pts dts के बराबर हैं। यदि किसी वीडियो में कोई B फ्रेम नहीं है, तो pts हमेशा dts के समान होगा। फ़ाइल से क्रमिक रूप से वीडियो फ़्रेम पढ़ें, और निकाले गए फ़्रेम का क्रम dts अनुक्रम के समान है। डीटीएस एल्गोरिथ्म अपेक्षाकृत सरल है, प्रारंभिक मूल्य + वृद्धि पर्याप्त है, पीटीएस गणना अधिक जटिल है, और ऑफसेट को डीटीएस में जोड़ने की आवश्यकता है।
ऑडियो पेस (केवल dts) में केवल pts हैं, वीडियो के I और P फ्रेम में टाइमस्टैम्प दोनों होने चाहिए, और वीडियो B फ्रेम को केवल pts (dts के समान) की आवश्यकता होती है। पीटीएस और डीटीएस पैक करने के लिए, आपको वीडियो फ्रेम प्रकार को जानना होगा, लेकिन हम कंटेनर प्रारूप के माध्यम से फ्रेम प्रकार का न्याय नहीं कर सकते। फ़्रेम प्रकार प्राप्त करने के लिए आपको h.264 सामग्री को पार्स करना होगा।
उदाहरण के लिए:
IPBBBP
पढ़ने के क्रम: 1 2 3 4 5 6
डीटीएस आदेश: 1 2 3 4 5 6
पीटीएस आदेश: 1 5 3 2 4 6
ऑन-डिमांड वीडियो डीटीएस एल्गोरिथ्म:
dts = प्रारंभिक मान + 90000 / video_frame_rate, प्रारंभिक मूल्य मनमाने ढंग से निर्दिष्ट किया जा सकता है, लेकिन यह 0 नहीं लेना सबसे अच्छा है, video_frame_rate 23, 30 जैसे फ्रेम दर है।
pts और dts timescale, 1s = 90000 समय के पैमाने पर आधारित हैं, एक फ्रेम 90000 / वीडियो_फ्रेम_रेट timescale होना चाहिए।
नमूना आवृत्ति द्वारा एक फ्रेम के टाइमसेल को विभाजित करना एक फ्रेम की प्लेबैक अवधि में परिवर्तित किया जा सकता है
ऑन-डिमांड ऑडियो डीटीएस एल्गोरिथ्म:
dts = प्रारंभिक मान + (90000 * audio_samples_per_frame) / audio_sample_rate, audio_samples_per_frame का मान कोडेक से संबंधित है, aac मान 1024 है, एमपी मान 3 है, audio_sample_rate नमूनाकरण दर है, जैसे 1158, 24000। AAC फ्रेम दर फ्रेम प्रति चैनल 41000 नमूने, जिसका अर्थ है कि फ्रेम की अवधि 1024 / नमूना_ सेकंड है। अतः प्रत्येक फ्रेम का टाइमस्टैम्प 1024, 0 / sample_rate, ..., 1024 * n / sample_rate सेकंड है।
लाइव वीडियो के dts और pts को सीधे लाइव डेटा स्ट्रीम में समय का उपयोग करना चाहिए, और सूत्रों द्वारा गणना नहीं की जानी चाहिए।
(३) तों परत
Es लेयर ऑडियो और वीडियो डेटा को संदर्भित करता है, हम केवल h.264 वीडियो और aac ऑडियो पेश करते हैं।
h.264 वीडियो:
H.264 डेटा को पैक करने के लिए, हमें वीडियो डेटा में एक nalu (नेटवर्क एब्स्ट्रेक्शन लेयर यूनिट) जोड़ना होगा। Nalu में nalu हेडर और nalu टाइप शामिल हैं। नालू हेडर 0x00000001 (फ्रेम की शुरुआत) या 0x000001 (फ्रेम में) तय किया गया है। H.264 का डेटा स्लाइस से बना है, और स्लाइस की सामग्री में शामिल हैं: वीडियो, sps, pps, आदि। nalu प्रकार बाद के h.264 डेटा की सामग्री को निर्धारित करता है।
F 1b निषिद्ध_जरो_बिट, 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 गैर-आईडीआर छवि, आईडीआर कुंजी फ्रेम को संदर्भित करता है
2 स्लाइस विभाजन ए
3 स्लाइस विभाजन बी
|
सरप्राइज पाने के लिए ईमेल डालें
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 -> बल्गेरियाई
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 -> हंगेरी
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 -> स्लोवेनियाई
es.fmuser.org -> स्पेनिश
sw.fmuser.org -> स्वाहिली
sv.fmuser.org -> स्वीडिश
th.fmuser.org -> थाई
tr.fmuser.org -> तुर्की
uk.fmuser.org -> यूक्रेनी
ur.fmuser.org -> उर्दू
vi.fmuser.org -> वियतनामी
cy.fmuser.org -> वेल्श
yi.fmuser.org -> येहुदी
FMUSER वायुहीन प्रसारण वीडियो और ऑडियो अधिक आसान!
Contact
पता:
No.305 कक्ष हुआलन भवन नं .273 हुआनपु रोड गुआंगझाऊ चीन 510620
श्रेणियाँ
न्यूज़लैटर