Muxer — Statistical Multiplex

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

एमपीटीएस मल्टीप्लेक्सर और एडाप्टिव हाइब्रिड स्टेटमक्स

स्ट्रीम मैनेजर mux कई SPTS स्ट्रीम को एक CBR MPTS आउटपुट (DVB/IPTV) में असेंबल करता है।

1. एनकोडर परत (एफएफएमपीईजी प्रति स्ट्रीम)

जब पैरेंट मक्स में स्टेटमक्स सक्षम होता है, तो प्रत्येक एफएफएमपीईजी एनकोडर कैप्ड-वीबीआर चलाता है: -बी:वी <एवीजी> -मिनरेट <मिनट> -मैक्सरेट <मैक्स> -बफसाइज <मैक्स×2>।

2. मक्स परत (टीएसडक टीएसपी पाइपलाइन)

टीएसपी -आई नल (∞ शून्य पैकेट @ लाइन रेट) → -पी मर्ज टीएसपी -आई आईपी <स्ट्रीम> (असली पैकेट को ओवरले करता है) → -पी निरंतरता (ड्रॉप अलार्म) → -पी पीक्रैडजस्ट --बिटरेट एक्स (पीसीआर को फिर से लिखता है) → -पी पीसीआरसत्यापन --जिटर-मैक्स 500μs → -पी बिटरेट_मॉनिटर (रेट अलार्म)

3. आउटपुट परत (यूडीपी)

रेगुलेट प्लगइन तार पर बिल्कुल mux.bitrate बीपीएस उत्सर्जित करता है।

अनुशंसित आकार (Σ मिनट / औसत / अधिकतम बनाम mux.bitrate)

मक्स टॉप बार रंग स्थिति के साथ 3 योग दिखाता है।

Σ औसत ≤ 85 % mux.bitrate - सभी चैनलों और ऑडियो पर औसत लक्ष्य योग।

Σ अधिकतम ≤ 160 % mux.bitrate — शिखर सीमा योग।

Σ मिनट ≤ 50 % mux.bitrate — एनकोडर फ़्लोर योग।

उदाहरण: 19 एमबीपीएस डीवीबी-टी मक्स में 4 एचडी चैनल

पीएसआई/एसआई/ईआईटी के बाद उपलब्ध बजट: ~18.5 एमबीपीएस।

निदान एवं अलार्म

60 के दशक में ≥ 10 अलार्म पर मक्स यूआई में एक फ्लैश अधिसूचना दिखाई देती है जो बिटरेट में कमी की सिफारिश करती है।

-पी बिटरेट_मॉनिटर --आवधिक 60 --न्यूनतम/अधिकतम ±5% - यदि वास्तविक दर लक्ष्य के ±5% से अधिक हो तो अलार्म।

-पी निरंतरता - टीएस निरंतरता काउंटरों को ट्रैक करता है।

-P pcrverify --जिटर-मैक्स 500000 — DVB पीसीआर जिटर ≤ 500 μs की अनुमति देता है।

गड़बड़ियाँ और उनके कारण

जीओपी संयोग - सभी एनकोडर एक साथ आई-फ्रेम उत्सर्जित करते हैं, चरम संयोग।

इनपुट लॉस-ऑफ-सिग्नल - एकल चैनल काला हो जाता है, मक्स जारी रहता है (-I null बेस के लिए धन्यवाद)।

अति-सदस्यता (निरंतर शिखर > क्षमता) - ब्लॉक/ऑडियो हकलाना ~50-200 एमएस।

पीसीआर बहाव - एसटीबी हर कुछ सेकंड में रुक जाता है।

एसटीबी वीबीवी अंडररन - एसटीबी सिंक खो देता है और पुनः प्राप्त कर लेता है (~2-3 सेकंड)।

चम्मच पाइपलाइन पैरामीटर (mux_worker.ex)

--मैक्स-इनपुट-पैकेट 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)

प्रति चैनल अनुशंसित मान (एचडी एच.264)

1080पी25 एचडी चैनल: औसत = 4000-5000 केबीपीएस, न्यूनतम = औसत × 0.75 (~3000-3750), अधिकतम = औसत × 1.5 (~6000-7500)।

अनुकूली हाइब्रिड स्टेटमक्स

एडेप्टिव हाइब्रिड स्टेटमक्स एक रनटाइम तंत्र है जो अप्रयुक्त क्षमता को कोर स्ट्रीम (संरक्षित, पूर्ण वीबीआर) से संतुलित स्ट्रीम (बलि) में स्थानांतरित करता है।

क्षमता - बिटरेट कैसे विभाजित किया जाता है

मक्स क्षमता 38 एमबीपीएस

व्यावहारिक लाभ (10 स्ट्रीम × 3 एमबीपीएस औसत, 4 एमबीपीएस अधिकतम)

एडेप्टिव हाइब्रिड स्टेटमक्स के बिना आपको सबसे खराब स्थिति के लिए मक्स का आकार Σ अधिकतम करना होगा।

शुद्ध सीबीआर (एनकोडर तय)

स्टेटमक्स के बिना वीबीआर

अनुकूली हाइब्रिड स्टेटमक्स चालू

यूआरएल ↔ स्टेटमक्स विशिष्टता

कस्टम यूआरएल इनपुट ओवरराइड और स्टेटमक्स परस्पर अनन्य हैं।

पाइपलाइन (एनकोडर → संतुलित ट्रांसकोडर → मक्स एफएफएमपीईजी → टीएसपी)

┌─────────────────────────┐

स्टेटमक्स के लिए कोर वीबीआर का आकार न्यूनतम/औसत/अधिकतम

सांख्यिकीय लाभ केवल तभी होता है जब एनकोडर में एक विस्तृत वीबीआर रेंज होती है - जब अधिकतम ≈ औसत होता है तो एनकोडर प्रभावी रूप से सीबीआर होता है और राउटर के पास पुनर्वितरित करने के लिए कुछ भी नहीं होता है।

कार्यान्वित उदाहरण - 38 एमबीपीएस म्यूक्स, 10 एचडी कोर + 2 संतुलित:

प्रति कोर स्ट्रीम अनुशंसित सीमा:

युक्तियाँ एवं समस्या निवारण

कम से कम 1 संतुलित स्ट्रीम - एक के बिना एडेप्टिव हाइब्रिड राउटर के पास शिखर के दौरान कुचलने के लिए कुछ भी नहीं है, इसलिए लाभ = 0

संगीत और सूचना चैनल सर्वोत्तम उम्मीदवार हैं - दर में कमी के प्रति 90%+ सहनशीलता

`[बैलेंस-राउटर]` लॉग प्रविष्टियों के माध्यम से ट्रैक करें - प्रत्येक 1 एस टिक के लिए `कोर_मैक्स`, `शेष`, टियर संक्रमण दिखाता है

यदि `कोर_मैक्स> क्षमता` (लॉग में कोर ओवरपीक चेतावनी), तो कोर स्ट्रीम गिनती कम करें या एनकोडर मैक्सरेट कम करें

ऑपरेटर वर्कफ़्लो

मक्स में स्ट्रीम जोड़ें (चैनल असाइनमेंट मैन्युअल रहता है)

मक्स हेडर (पीली चिप) पर स्टेटमक्स को टॉगल करें।

दाईं ओर नारंगी चेकबॉक्स के माध्यम से बलिदान धाराओं को चिह्नित करें - आमतौर पर संगीत/सूचना चैनल जहां दर-बहाव अदृश्य है

हो गया।

स्टेटमक्स - देशी सांख्यिकीय मल्टीप्लेक्स

एकाधिक वैरिएबल-बिटरेट चैनल एक निश्चित ट्रांसपोर्ट स्ट्रीम (एमपीटीएस) साझा करते हैं।

क्लास: वीबीआर एन्कोडर्स पर सी1 लुक-फॉरवर्ड (फीडफॉरवर्ड) के साथ क्लोज्ड-लूप फीडबैक स्टेटमक्स - प्रसारण स्टेटमक्स सिद्धांत, स्रोत जटिलता से संचालित।

वास्तुकला और डेटा प्रवाह

Architecture diagram

यूडीपी मल्टीकास्ट एसएसएम, प्रति चैनल

इनकोडर्स

स्रोत जटिलता

लूपबैक

अपनी लाइन/स्ट्रीम

आवंटनकर्ता (Σ ≤ पूल)

बफर

शून्य पैडिंग → सीबीआर

टोपी पर सीबीआर तार

डुबकी से पहले जटिल दृश्य का अनुमान लगाएं

मापा तार - अंशांकन

लक्ष्य बिटरेट

प्रत्येक चैनल मक्स (अलग एनकोडर + लूपबैक कनेक्शन) तक अपनी लाइन पर चलता है, जहां सभी एक बिल्कुल निश्चित बिटरेट पर एक एमपीटीएस मल्टीकास्ट लाइन में विलय हो जाते हैं।

मस्तिष्क: फीडबैक + सी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.

deliverability

एक स्ट्रीम का दावा इस बात से समर्थित होता है कि एनकोडर वास्तव में क्या उत्पादन करता है (× पीक हेडरूम)।

समान गुणवत्ता

लक्ष्य समान बिटरेट नहीं बल्कि समान गुणवत्ता है - निरंतर दबाव बिट्स को उच्च-गुणवत्ता वाले चैनलों (कम क्यूपी) से निम्न-गुणवत्ता वाले (उच्च क्यूपी) की ओर ले जाता है।

पूर्वानुमानित पुनर्वितरण

जब C1 एक चैनल को गिराने का संकेत देता है, तो इसकी बैंडविड्थ उसी टिक में दूसरों को सौंप दी जाती है - ड्रॉप के वास्तव में तार तक पहुंचने से पहले वे रैंप पर चढ़ जाते हैं।

पूल = कैप एन - ओवरहेड (पीएसआई/ईआईटी) - ऑडियो - रिजर्व (स्लाइडर)।

प्रति-स्ट्रीम मांग = वितरण योग्य तार × C1 आगे की ओर देखें (सापेक्ष जटिलता परिवर्तन) + गुणवत्ता-समान दबाव।

मांग के अनुसार आनुपातिक पूल आवंटन, वीडियो प्रोफ़ाइल से [न्यूनतम, अधिकतम] तक सीमित;

एनकोडर लक्ष्य = आवंटन/अंशांकन (प्रति-स्ट्रीम ईएमए मापा/लक्ष्य);

बफ़र-होल्ड सर्वो कतार स्तर को ~1 सेकंड (बैंड) पर रखता है, ओवरलोड पर आपातकालीन बैकस्टॉप;

सीबीआर तार: बफर + नल पैडिंग + पेसिंग

कॉन्फ़िगर कैप पर आउटपुट एक सटीक सीबीआर स्ट्रीम है।

स्टैंडिंग बफ़र ~1 एस

प्रेषण कतार ~1 एस तार का स्थायी स्तर रखती है जो उप-सेकंड जीओपी डिप्स (आई-फ्रेम के बीच) को अवशोषित करती है।

शून्य गद्दी

जब सामग्री सीमा से नीचे होती है, तो अंतर एमपीईजी-टीएस नल पैकेट (पीआईडी ​​0x1एफएफएफ) से भर जाता है।

सटीक गति

निकास को सटीक सीमा तक गति दी जाती है (व्यस्त-स्पिन ABSTIME);

आउटपुट चार्ट (नदी)

वास्तविक तार का एक लाइव स्टैक्ड ग्राफ - प्रत्येक बैंड एक चैनल है, जो दाईं ओर से सुचारू रूप से बह रहा है।

रंगीन बैंड

प्रत्येक चैनल का एक स्थिर रंग होता है;

कैप/मैक्स लाइन

शीर्ष पर धराशायी रेखा = कॉन्फ़िगर कैप (तार छत)।

शून्य बैंड

शीर्ष पर बिंदीदार सफेद बैंड = शून्य पैडिंग (मुक्त क्षमता)।

गिराने के निशान

टाइमलाइन पर लाल निशान = भेजें-कतार अतिप्रवाह (ड्रॉप)।

रेंज (30s-30m)

बटन तुरंत समय विंडो को स्विच करते हैं (क्लाइंट-साइड), सक्रिय विंडो में ग्रे पृष्ठभूमि होती है।

टूलटिप

होवर उस समय प्रति-चैनल बिटरेट, क्यूपी और गुणवत्ता सूचकांक दिखाता है (ऐतिहासिक मूल्य, लाइव नहीं)।

कैप %

वर्तमान पूल विनियमन स्तर (पूल/(पूल-ट्रिम))।

रिजर्व (स्लाइडर)

सीमा से ऊपर सहनशीलता बैंड - शून्य आरक्षित के रूप में कितना रखना है।

बफ़र (बूँदें)

हेडर सेंड-क्यू उपयोग % और संचयी ड्रॉप्स दिखाता है।

जीओपी

मक्स में सभी चैनलों के लिए सामान्य जीओपी लंबाई (शुरुआत में वीडियो प्रोफाइल में लॉक)।

वीबीवी

एनकोडर वीबीवी बफर आकार (एमएस)।

स्ट्रीम कार्ड और राज्य

मक्स में प्रत्येक चैनल का नाम, पीएनआर, वर्तमान और लक्ष्य बिटरेट और स्थिति वाला एक कार्ड होता है:

रनिंग - चैनल एन्कोडिंग कर रहा है और तार में प्रवाहित हो रहा है।

प्रारंभ - एनकोडर घूम रहा है / व्यवस्थित हो रहा है।

बंद - चैनल मक्स में है लेकिन चल नहीं रहा है (0 केबीपीएस)।

दोष - इनपुट खो गया / एनकोडर क्रैश हो गया।

पीएसआई/एसआई टेबल (पूर्ण डीवीबी सेट)

स्टेटमक्स अनिवार्य एमपीईजी-टीएस / डीवीबी तालिकाओं का पूरा सेट सीधे एनआईएफ मक्स में उत्पन्न करता है - कोई बाहरी एसआई इंसर्टर नहीं।

मेज़

पीआईडी

अंतराल

उद्देश्य/स्रोत

ईआईटी ↔ ईपीजी: पूर्ण एकीकरण

ईआईटी (इवेंट सूचना तालिका, पीआईडी ​​0x12) स्थिर नहीं है - यह पूरी तरह से एप्लिकेशन के ईपीजी सिस्टम से जुड़ा हुआ है।

चैनल आकार (न्यूनतम/औसत/अधिकतम)

न्यूनतम = निचली मंजिल (स्थिर दृश्य)।

औसत = लक्ष्य स्तर.

अधिकतम = अधिकतम सीमा (चोटियों/कटौती के लिए वीबीआर हेडरूम)।

उदाहरण (औसत): एसडी 1.5-2.5एम · एचडी 2.5-4एम · एफएचडी 4-6एम · यूएचडी 12-18एम।

प्रसारण statmuxes से संबंध

हम वास्तविक सांख्यिकीय मल्टीप्लेक्सिंग करते हैं - गुणवत्ता समीकरण के साथ एक निश्चित तार साझा करते हुए वीबीआर चैनलों में गतिशील बिट पुनर्वितरण।

हमारे पास क्या है

कैप पर सीबीआर तार · 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 %, डिफ़ॉल्ट 85)

निचला (→78): अधिक शून्य आरक्षित, सुरक्षित, कम सीमित सीमा उपयोग।

उच्चतर (→90): सख्त कैप उपयोग, कम शून्य।

⚠ ≥88%: स्लाइडर पीला हो जाता है - रिंग-ओवरफ़्लो फ़्रीज़ सीलिंग के करीब।

विषमता: विश्वसनीय रूप से कम करने से रिजर्व बढ़ता है;

यह नियंत्रित करता है कि एनकोडर कितने कैप को लक्षित करते हैं: एनकोडर लक्ष्य = बजट × हेडरूम% / 100 (चार्ट में नारंगी रेखा)।

सिग्नल हानि/चैनल विफलता (अलगाव)

एक चैनल विफल हो जाता है (एनकोडर क्रैश/सिग्नल हानि) ⇒ मक्स चलता रहता है, अन्य चैनल अप्रभावित रहते हैं, तार कैप रखता है (NULL आउटेज को अवशोषित करता है), बचे लोगों पर CC=0।

पीसीआर/समय

पीसीआर और पीईएस पीटीएस/डीटीएस एनकोडर से पास-थ्रू होते हैं (एकल क्लॉक डोमेन ⇒ सुसंगत, कोई बहाव नहीं)।

कैट - सशर्त पहुंच (केवल जब हाथापाई / ईसीएम)।

ईआईटी - घटना की जानकारी (ईपीजी) - ईपीजी प्रणाली से, नीचे देखें।

एनआईटी - नेटवर्क जानकारी (नेटवर्क आईडी, नाम, ट्रांसपोर्ट स्ट्रीम)।

पीएटी - कार्यक्रम सूची (मानचित्र पीएनआर → पीएमटी पीआईडी)।

पीएमटी - प्रति प्रोग्राम: वीडियो/ऑडियो/पीसीआर पीआईडी, कोडेक्स, डिस्क्रिप्टर।

एसडीटी - सेवा के नाम और प्रदाता (एसटीबी सूची में क्या दिखाता है)।

टीडीटी/टीओटी - समय और तारीख + स्थानीय ऑफसेट (एसटीबी घड़ी)।

TSDuck Plugins Used

merge
regulate
pat
pmt
sdt
nit
eitinject
timeref
bitrate_monitor
continuity
psimerge
count