TSDuck-based MPEG Transport Stream multiplexer with full PSI/SI support


स्ट्रीम मैनेजर mux कई SPTS स्ट्रीम को एक CBR MPTS आउटपुट (DVB/IPTV) में असेंबल करता है।
जब पैरेंट मक्स में स्टेटमक्स सक्षम होता है, तो प्रत्येक एफएफएमपीईजी एनकोडर कैप्ड-वीबीआर चलाता है: -बी:वी <एवीजी> -मिनरेट <मिनट> -मैक्सरेट <मैक्स> -बफसाइज <मैक्स×2>।
टीएसपी -आई नल (∞ शून्य पैकेट @ लाइन रेट) → -पी मर्ज टीएसपी -आई आईपी <स्ट्रीम> (असली पैकेट को ओवरले करता है) → -पी निरंतरता (ड्रॉप अलार्म) → -पी पीक्रैडजस्ट --बिटरेट एक्स (पीसीआर को फिर से लिखता है) → -पी पीसीआरसत्यापन --जिटर-मैक्स 500μs → -पी बिटरेट_मॉनिटर (रेट अलार्म)
रेगुलेट प्लगइन तार पर बिल्कुल mux.bitrate बीपीएस उत्सर्जित करता है।
मक्स टॉप बार रंग स्थिति के साथ 3 योग दिखाता है।
Σ औसत ≤ 85 % mux.bitrate - सभी चैनलों और ऑडियो पर औसत लक्ष्य योग।
Σ अधिकतम ≤ 160 % mux.bitrate — शिखर सीमा योग।
Σ मिनट ≤ 50 % mux.bitrate — एनकोडर फ़्लोर योग।
पीएसआई/एसआई/ईआईटी के बाद उपलब्ध बजट: ~18.5 एमबीपीएस।
60 के दशक में ≥ 10 अलार्म पर मक्स यूआई में एक फ्लैश अधिसूचना दिखाई देती है जो बिटरेट में कमी की सिफारिश करती है।
-पी बिटरेट_मॉनिटर --आवधिक 60 --न्यूनतम/अधिकतम ±5% - यदि वास्तविक दर लक्ष्य के ±5% से अधिक हो तो अलार्म।
-पी निरंतरता - टीएस निरंतरता काउंटरों को ट्रैक करता है।
-P pcrverify --जिटर-मैक्स 500000 — DVB पीसीआर जिटर ≤ 500 μs की अनुमति देता है।
जीओपी संयोग - सभी एनकोडर एक साथ आई-फ्रेम उत्सर्जित करते हैं, चरम संयोग।
इनपुट लॉस-ऑफ-सिग्नल - एकल चैनल काला हो जाता है, मक्स जारी रहता है (-I null बेस के लिए धन्यवाद)।
अति-सदस्यता (निरंतर शिखर > क्षमता) - ब्लॉक/ऑडियो हकलाना ~50-200 एमएस।
पीसीआर बहाव - एसटीबी हर कुछ सेकंड में रुक जाता है।
एसटीबी वीबीवी अंडररन - एसटीबी सिंक खो देता है और पुनः प्राप्त कर लेता है (~2-3 सेकंड)।
--मैक्स-इनपुट-पैकेट 4096 / --मैक्स-फ्लश-पैकेट 4096 (आंतरिक फीफो ≈ 0.3 एस @ 19 एमबीपीएस)।
टॉप-बार बैज `📐 rec X.XM` केंद्रीय सीमा प्रमेय से प्राप्त अनुशंसित मक्स क्षमता को दर्शाता है।
बैज का रंग: 🟢 हरा = टोपी ≥ 99.7% आरईसी (रूढ़िवादी) · 🟡 एम्बर = 99% और 99.7% के बीच · 🔴 लाल = टोपी <99% (अंडर-प्रावधान, गिरने का खतरा) · 🔵 नीला = टोपी अनसेट।
प्रति कवरेज लक्ष्य z-स्कोर: 90% z=1.28 · 95% z=1.65 · 99% z=2.33 · 99.7% z=3.00 (डिफ़ॉल्ट) · 99.99% z=3.72 (प्रसारण-ग्रेड)।
σ_eff = σ_कुल × स्टेटमक्स_फैक्टर (स्टेटमक्स चालू होने पर स्टेटमक्स_फैक्टर = 0.7, अन्यथा 1.0)
1080पी25 एचडी चैनल: औसत = 4000-5000 केबीपीएस, न्यूनतम = औसत × 0.75 (~3000-3750), अधिकतम = औसत × 1.5 (~6000-7500)।
एडेप्टिव हाइब्रिड स्टेटमक्स एक रनटाइम तंत्र है जो अप्रयुक्त क्षमता को कोर स्ट्रीम (संरक्षित, पूर्ण वीबीआर) से संतुलित स्ट्रीम (बलि) में स्थानांतरित करता है।
मक्स क्षमता 38 एमबीपीएस
एडेप्टिव हाइब्रिड स्टेटमक्स के बिना आपको सबसे खराब स्थिति के लिए मक्स का आकार Σ अधिकतम करना होगा।
शुद्ध सीबीआर (एनकोडर तय)
स्टेटमक्स के बिना वीबीआर
अनुकूली हाइब्रिड स्टेटमक्स चालू
कस्टम यूआरएल इनपुट ओवरराइड और स्टेटमक्स परस्पर अनन्य हैं।
┌─────────────────────────┐
सांख्यिकीय लाभ केवल तभी होता है जब एनकोडर में एक विस्तृत वीबीआर रेंज होती है - जब अधिकतम ≈ औसत होता है तो एनकोडर प्रभावी रूप से सीबीआर होता है और राउटर के पास पुनर्वितरित करने के लिए कुछ भी नहीं होता है।
कार्यान्वित उदाहरण - 38 एमबीपीएस म्यूक्स, 10 एचडी कोर + 2 संतुलित:
प्रति कोर स्ट्रीम अनुशंसित सीमा:
कम से कम 1 संतुलित स्ट्रीम - एक के बिना एडेप्टिव हाइब्रिड राउटर के पास शिखर के दौरान कुचलने के लिए कुछ भी नहीं है, इसलिए लाभ = 0
संगीत और सूचना चैनल सर्वोत्तम उम्मीदवार हैं - दर में कमी के प्रति 90%+ सहनशीलता
`[बैलेंस-राउटर]` लॉग प्रविष्टियों के माध्यम से ट्रैक करें - प्रत्येक 1 एस टिक के लिए `कोर_मैक्स`, `शेष`, टियर संक्रमण दिखाता है
यदि `कोर_मैक्स> क्षमता` (लॉग में कोर ओवरपीक चेतावनी), तो कोर स्ट्रीम गिनती कम करें या एनकोडर मैक्सरेट कम करें
मक्स में स्ट्रीम जोड़ें (चैनल असाइनमेंट मैन्युअल रहता है)
मक्स हेडर (पीली चिप) पर स्टेटमक्स को टॉगल करें।
दाईं ओर नारंगी चेकबॉक्स के माध्यम से बलिदान धाराओं को चिह्नित करें - आमतौर पर संगीत/सूचना चैनल जहां दर-बहाव अदृश्य है
हो गया।
एकाधिक वैरिएबल-बिटरेट चैनल एक निश्चित ट्रांसपोर्ट स्ट्रीम (एमपीटीएस) साझा करते हैं।
क्लास: वीबीआर एन्कोडर्स पर सी1 लुक-फॉरवर्ड (फीडफॉरवर्ड) के साथ क्लोज्ड-लूप फीडबैक स्टेटमक्स - प्रसारण स्टेटमक्स सिद्धांत, स्रोत जटिलता से संचालित।
यूडीपी मल्टीकास्ट एसएसएम, प्रति चैनल
इनकोडर्स
स्रोत जटिलता
लूपबैक
अपनी लाइन/स्ट्रीम
आवंटनकर्ता (Σ ≤ पूल)
बफर
शून्य पैडिंग → सीबीआर
टोपी पर सीबीआर तार
डुबकी से पहले जटिल दृश्य का अनुमान लगाएं
मापा तार - अंशांकन
लक्ष्य बिटरेट
प्रत्येक चैनल मक्स (अलग एनकोडर + लूपबैक कनेक्शन) तक अपनी लाइन पर चलता है, जहां सभी एक बिल्कुल निश्चित बिटरेट पर एक एमपीटीएस मल्टीकास्ट लाइन में विलय हो जाते हैं।
आवंटनकर्ता दो संकेतों को जोड़ता है - स्रोत जटिलता (आगे) और मापा तार (पीछे) से एक भविष्यवाणी।
C1 डिकोडर पर सामग्री जटिलता को मापता है - जो पाइपलाइन विलंबता द्वारा एनकोडर आउटपुट का नेतृत्व करता है।
Exact per-stream bits emitted by the mux (sender-side counters) calibrate the complexity→bitrate mapping and hold the sum exactly at the pool.
एक स्ट्रीम का दावा इस बात से समर्थित होता है कि एनकोडर वास्तव में क्या उत्पादन करता है (× पीक हेडरूम)।
लक्ष्य समान बिटरेट नहीं बल्कि समान गुणवत्ता है - निरंतर दबाव बिट्स को उच्च-गुणवत्ता वाले चैनलों (कम क्यूपी) से निम्न-गुणवत्ता वाले (उच्च क्यूपी) की ओर ले जाता है।
जब C1 एक चैनल को गिराने का संकेत देता है, तो इसकी बैंडविड्थ उसी टिक में दूसरों को सौंप दी जाती है - ड्रॉप के वास्तव में तार तक पहुंचने से पहले वे रैंप पर चढ़ जाते हैं।
पूल = कैप एन - ओवरहेड (पीएसआई/ईआईटी) - ऑडियो - रिजर्व (स्लाइडर)।
प्रति-स्ट्रीम मांग = वितरण योग्य तार × C1 आगे की ओर देखें (सापेक्ष जटिलता परिवर्तन) + गुणवत्ता-समान दबाव।
मांग के अनुसार आनुपातिक पूल आवंटन, वीडियो प्रोफ़ाइल से [न्यूनतम, अधिकतम] तक सीमित;
एनकोडर लक्ष्य = आवंटन/अंशांकन (प्रति-स्ट्रीम ईएमए मापा/लक्ष्य);
बफ़र-होल्ड सर्वो कतार स्तर को ~1 सेकंड (बैंड) पर रखता है, ओवरलोड पर आपातकालीन बैकस्टॉप;
कॉन्फ़िगर कैप पर आउटपुट एक सटीक सीबीआर स्ट्रीम है।
प्रेषण कतार ~1 एस तार का स्थायी स्तर रखती है जो उप-सेकंड जीओपी डिप्स (आई-फ्रेम के बीच) को अवशोषित करती है।
जब सामग्री सीमा से नीचे होती है, तो अंतर एमपीईजी-टीएस नल पैकेट (पीआईडी 0x1एफएफएफ) से भर जाता है।
निकास को सटीक सीमा तक गति दी जाती है (व्यस्त-स्पिन ABSTIME);
वास्तविक तार का एक लाइव स्टैक्ड ग्राफ - प्रत्येक बैंड एक चैनल है, जो दाईं ओर से सुचारू रूप से बह रहा है।
प्रत्येक चैनल का एक स्थिर रंग होता है;
शीर्ष पर धराशायी रेखा = कॉन्फ़िगर कैप (तार छत)।
शीर्ष पर बिंदीदार सफेद बैंड = शून्य पैडिंग (मुक्त क्षमता)।
टाइमलाइन पर लाल निशान = भेजें-कतार अतिप्रवाह (ड्रॉप)।
बटन तुरंत समय विंडो को स्विच करते हैं (क्लाइंट-साइड), सक्रिय विंडो में ग्रे पृष्ठभूमि होती है।
होवर उस समय प्रति-चैनल बिटरेट, क्यूपी और गुणवत्ता सूचकांक दिखाता है (ऐतिहासिक मूल्य, लाइव नहीं)।
वर्तमान पूल विनियमन स्तर (पूल/(पूल-ट्रिम))।
सीमा से ऊपर सहनशीलता बैंड - शून्य आरक्षित के रूप में कितना रखना है।
हेडर सेंड-क्यू उपयोग % और संचयी ड्रॉप्स दिखाता है।
मक्स में सभी चैनलों के लिए सामान्य जीओपी लंबाई (शुरुआत में वीडियो प्रोफाइल में लॉक)।
एनकोडर वीबीवी बफर आकार (एमएस)।
मक्स में प्रत्येक चैनल का नाम, पीएनआर, वर्तमान और लक्ष्य बिटरेट और स्थिति वाला एक कार्ड होता है:
रनिंग - चैनल एन्कोडिंग कर रहा है और तार में प्रवाहित हो रहा है।
प्रारंभ - एनकोडर घूम रहा है / व्यवस्थित हो रहा है।
बंद - चैनल मक्स में है लेकिन चल नहीं रहा है (0 केबीपीएस)।
दोष - इनपुट खो गया / एनकोडर क्रैश हो गया।
स्टेटमक्स अनिवार्य एमपीईजी-टीएस / डीवीबी तालिकाओं का पूरा सेट सीधे एनआईएफ मक्स में उत्पन्न करता है - कोई बाहरी एसआई इंसर्टर नहीं।
मेज़
पीआईडी
अंतराल
उद्देश्य/स्रोत
ईआईटी (इवेंट सूचना तालिका, पीआईडी 0x12) स्थिर नहीं है - यह पूरी तरह से एप्लिकेशन के ईपीजी सिस्टम से जुड़ा हुआ है।
न्यूनतम = निचली मंजिल (स्थिर दृश्य)।
औसत = लक्ष्य स्तर.
अधिकतम = अधिकतम सीमा (चोटियों/कटौती के लिए वीबीआर हेडरूम)।
उदाहरण (औसत): एसडी 1.5-2.5एम · एचडी 2.5-4एम · एफएचडी 4-6एम · यूएचडी 12-18एम।
हम वास्तविक सांख्यिकीय मल्टीप्लेक्सिंग करते हैं - गुणवत्ता समीकरण के साथ एक निश्चित तार साझा करते हुए वीबीआर चैनलों में गतिशील बिट पुनर्वितरण।
कैप पर सीबीआर तार · 1 एस बफर · प्रति-स्ट्रीम आनुपातिक आवंटन · सी1 लुक-फॉरवर्ड फीडफॉरवर्ड · गुणवत्ता समीकरण · पूर्वानुमानित पुनर्वितरण · शून्य पैडिंग · सटीक गति।
एक प्रसारण स्टेटमक्स एनकोडर के दर-विरूपण अनुमान (सटीक फ्रेम लागत, एनकोडर आवंटनकर्ता का गुलाम है) का उपयोग करता है।
लक्षण
कारण/ठीक करना
चार्ट में अंतराल/शून्य स्पाइक्स (5-7एम)।
सामग्री में गिरावट - या तो आई-फ्रेम के बीच जीओपी (1 एस बफर द्वारा अवशोषित) या एक सामूहिक सामग्री स्टॉल (पुनर्वितरण द्वारा नियंत्रित)।
बूँदें > 0 चढ़ना
अतिप्रवाहित कतार भेजें - सीमा से ऊपर सामग्री।
एक चैनल कम बिटरेट/उच्च QP रहता है
या तो स्थिर सामग्री (सही - यह बैंडविड्थ जारी करती है) या प्रोफ़ाइल में बहुत कम अधिकतम।
चार्ट हकलाना / बायां किनारा मिट जाना
क्लाइंट-साइड - नए JS बंडल के लिए हार्ड रिफ्रेश (Ctrl+Shift+R)।
संपादन के बाद कैप %/बफ़र नहीं बदलता है
लाइवव्यू पुनः प्रस्तुत करें - हार्ड रिफ्रेश।
सैट यूडीपी एसएसएम ─┐
gst_encoder.py प्रति स्ट्रीम: SAT UDP SSM इनपुट → nvh264enc rc-mode=cbr।
प्रति-इनपुट रिंग (एनकोडर से टीसीपी लूपबैक), 2-पास ड्रेन (ऑडियो प्राथमिकता, वीडियो पूर्ण), आनुपातिक एलोकेटर, बिल्कुल वायर कैप (सीबीआर) के लिए शून्य पैड, एनकोडर से पीसीआर पास-थ्रू।
एक एमपीटीएस (एनआईएफ द्वारा उत्पन्न पीएटी/पीएमटी/एसडीटी) → आउटपुट वीएलएएन पर यूडीपी मल्टीकास्ट।
पंक्ति 1: ⚠ (सत्यापन मुद्दे) · पीएनआर · एक फ्रेम में नाम (रंग = स्थिति)।
पंक्ति 2+: न्यूनतम औसत·अधिकतम केबीपीएस · अनुमानित जटिलता Δ निम्न/मध्यम/उच्च/शिखर · इनपुट खो गया · ⚙यूआरएल · एनकोडर एमबीपीएस · एसआईडी · सेवा_प्रकार।
नाम का रंग = धारा की स्थिति:
एमबीपीएस
लाल 'कैप' लाइन: वायर सीबीआर सीलिंग (mux.bitrate) - यहां तक NULL भरता है।
नारंगी 'हेडरूम एन%' लाइन: = कैप × हेडरूम स्लाइडर / 100। एनकोडर सेट_बिटरेट लक्ष्य यहां लक्ष्य करते हैं।
सामग्री और कैप के बीच काले बिंदुओं वाला ग्रे क्षेत्र = शून्य पैडिंग (अप्रयुक्त आरक्षित)।
किसी चैनल के रंग बैंड पर क्लिक करें → नीचे उस चैनल का कार्ड स्वचालित रूप से विस्तृत हो जाता है।
MuxEitAdapter प्रति सेवा ईपीजी सिस्टम से घटनाओं को पढ़ता है, डीवीबी ईआईटी अनुभाग (नाम, समय, अवधि, विवरण, शैली) बनाता है और उन्हें पीआईडी 0x12 पर पैकेट करता है।
ईआईटी को सीधे एनआईएफ मक्स में इंजेक्ट किया जाता है, समान रूप से शून्य स्थान में (1 पैकेट / एन आउटपुट + पी/एफ समय-समय पर) - फटे बाहरी टीएसपी कैस्केड की जगह।
तालिका 0x4E - वर्तमान में चल रही + अगली घटना।
मक्स समय-समय पर ईपीजी (~15 सेकेंड) से ईआईटी .बिन को पुन: उत्पन्न करता है - एक ईपीजी शेड्यूल परिवर्तन पुनः आरंभ किए बिना तार तक पहुंच जाता है।
तालिकाएँ 0x50/0x51 - पूरा शेड्यूल घंटे/दिन आगे (सेगमेंट)।
वास्तविक प्रवाह बनाम कैप का संकेतक।
-5 एमबीपीएस कैप 37000 केबीपीएस +5 एमबीपीएस
निचला (→78): अधिक शून्य आरक्षित, सुरक्षित, कम सीमित सीमा उपयोग।
उच्चतर (→90): सख्त कैप उपयोग, कम शून्य।
⚠ ≥88%: स्लाइडर पीला हो जाता है - रिंग-ओवरफ़्लो फ़्रीज़ सीलिंग के करीब।
विषमता: विश्वसनीय रूप से कम करने से रिजर्व बढ़ता है;
यह नियंत्रित करता है कि एनकोडर कितने कैप को लक्षित करते हैं: एनकोडर लक्ष्य = बजट × हेडरूम% / 100 (चार्ट में नारंगी रेखा)।
एक चैनल विफल हो जाता है (एनकोडर क्रैश/सिग्नल हानि) ⇒ मक्स चलता रहता है, अन्य चैनल अप्रभावित रहते हैं, तार कैप रखता है (NULL आउटेज को अवशोषित करता है), बचे लोगों पर CC=0।
पीसीआर और पीईएस पीटीएस/डीटीएस एनकोडर से पास-थ्रू होते हैं (एकल क्लॉक डोमेन ⇒ सुसंगत, कोई बहाव नहीं)।
कैट - सशर्त पहुंच (केवल जब हाथापाई / ईसीएम)।
ईआईटी - घटना की जानकारी (ईपीजी) - ईपीजी प्रणाली से, नीचे देखें।
एनआईटी - नेटवर्क जानकारी (नेटवर्क आईडी, नाम, ट्रांसपोर्ट स्ट्रीम)।
पीएटी - कार्यक्रम सूची (मानचित्र पीएनआर → पीएमटी पीआईडी)।
पीएमटी - प्रति प्रोग्राम: वीडियो/ऑडियो/पीसीआर पीआईडी, कोडेक्स, डिस्क्रिप्टर।
एसडीटी - सेवा के नाम और प्रदाता (एसटीबी सूची में क्या दिखाता है)।
टीडीटी/टीओटी - समय और तारीख + स्थानीय ऑफसेट (एसटीबी घड़ी)।