Muxer — Statistical Multiplex

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

معدد MPTS والتكيف الهجين Statmux

يقوم Stream Manager mux بتجميع تدفقات SPTS متعددة في مخرج CBR MPTS واحد (DVB/IPTV).

1. طبقة التشفير (FFmpeg لكل تيار)

عندما يتم تمكين statmux الأصل mux، يعمل كل برنامج تشفير FFmpeg بغطاء -VBR: -b:v <avg> -minrate <min> -maxrate <max> -bufsize <max×2>.

2. طبقة Mux (خط أنابيب TSDuck tsp)

tsp -I null (∞ حزم NULL @ معدل الخط) → -P دمج tsp -I ip <stream> (تراكب الحزم الحقيقية) → -P الاستمرارية (إنذار السقوط) → -P pcradjust --bitrate X (إعادة كتابة PCRs) → -P pcrverify --jitter-max 500μs → -P bitrate_monitor (إنذار معدل ±5%) → -P تنظيم --bitrate X --packet-burst

3. طبقة الإخراج (UDP)

تنظيم البرنامج المساعد ينبعث بالضبط mux.bitrate بت في الثانية على السلك.

الحجم الموصى به (Σ min / avg / max مقابل mux.bitrate)

يُظهر الشريط العلوي Mux 3 مجاميع مع حالة اللون.

Σ avg ≥ 85% mux.bitrate — متوسط ​​المجموع المستهدف عبر جميع القنوات بالإضافة إلى الصوت.

Σ الحد الأقصى ≥ 160% mux.bitrate — مجموع الحد الأقصى للسقف.

Σ دقيقة ≥ 50% mux.bitrate — مجموع أرضية التشفير.

مثال: 4 قنوات عالية الدقة في نظام DVB-T بسرعة 19 ميجابت في الثانية

الميزانية المتاحة بعد PSI/SI/EIT: ~18.5 ميجابت في الثانية.

التشخيص والإنذارات

عند ≥ 10 إنذارات في 60 ثانية، يظهر إشعار فلاش في Mux UI يوصي بتقليل معدل البت.

-P bitrate_monitor --periodic 60 --min/max ±5% — إنذار إذا تجاوز المعدل الفعلي ±5% من الهدف.

-P الاستمرارية - يتتبع عدادات استمرارية TS.

-P pcrverify --jitter-max 500000 — يسمح DVB بارتعاش PCR ≥ 500 μs.

أعطال وأسبابها

مصادفة GOP — تُصدر جميع أجهزة التشفير إطارات I في وقت واحد، وهي ذروة المصادفة.

فقدان إشارة الإدخال - تصبح القناة الواحدة سوداء، ويستمر mux (بفضل قاعدة -I null).

الإفراط في الاشتراك (القمم المستدامة> السعة) — الكتل/تلعثم الصوت ~50-200 مللي ثانية.

انجراف PCR - تلعثم STB كل بضع ثوانٍ.

STB VBV قيد التشغيل — يفقد STB المزامنة ويستعيد اكتسابه (حوالي 2-3 ثوانٍ).

معلمات خط أنابيب tsp (mux_worker.ex)

--max-input-packets 4096 / --max-flushed-packets 4096 (FIFO داخلي ≈ 0.3 ثانية @ 19 ميجابت في الثانية).

حساب السعة التجريبية (CLT)

تُظهر شارة الشريط العلوي `📐rec X.XM` سعة Mux الموصى بها المستمدة من نظرية الحد المركزي.

لون الشارة: 🟢 أخضر = حد أقصى ≥ 99.7% تفصيل (محافظ) · 🟡 كهرمان = بين 99% و99.7% · 🔴 أحمر = حد أقصى < 99% (نقص في الإمداد، خطر السقوط) · 🔵 أزرق = غطاء غير محدد.

z-score لكل هدف تغطية: 90% z=1.28 · 95% z=1.65 · 99% z=2.33 · 99.7% z=3.00 (افتراضي) · 99.99% z=3.72 (درجة البث).

σ_eff = σ_total × statmux_factor (statmux_factor = 0.7 عندما يكون Statmux قيد التشغيل، وإلا 1.0)

القيم الموصى بها لكل قناة (HD H.264)

قناة 1080p25 HD: المتوسط ​​= 4000-5000 كيلوبت في الثانية، الحد الأدنى = المتوسط ​​× 0.75 (~3000-3750)، الحد الأقصى = المتوسط ​​× 1.5 (~6000-7500).

التكيف الهجين Statmux

Adaptive Hybrid Statmux هي آلية وقت تشغيل تعمل على تحويل السعة غير المستخدمة من التدفقات الأساسية (المحمية، VBR الكاملة) إلى التدفقات المتوازنة (التضحية).

السعة – كيف يتم تقسيم معدل البت

سعة Mux 38 ميجابت في الثانية

الكسب العملي (10 تدفقات × 3 ميجابت في الثانية متوسط، 4 ميجابت في الثانية كحد أقصى)

بدون Adaptive Hybrid Statmux، يجب عليك تحديد حجم mux لأسوأ حالة Σ max.

Pure CBR (جهاز التشفير ثابت)

VBR بدون Statmux

التكيف الهجين Statmux ON

URL ↔ التفرد Statmux

إن تجاوز إدخال عنوان URL المخصص وStatmux متنافيان.

خط الأنابيب (جهاز التشفير ← جهاز إرسال متوازن ← mux ffmpeg ← tsp)

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

تغيير الحجم الأساسي لـ VBR min/avg/max لـ statmux

يحدث الكسب الإحصائي فقط عندما يكون لدى أجهزة التشفير نطاق VBR واسع - عندما يكون الحد الأقصى ≈ متوسط، يكون جهاز التشفير فعالاً CBR وليس لدى جهاز التوجيه أي شيء لإعادة توزيعه.

مثال عملي - 38 ميجابت في الثانية mux، 10 HD core + 2 متوازن:

النطاق الموصى به لكل تيار أساسي:

النصائح واستكشاف الأخطاء وإصلاحها

تدفق متوازن واحد على الأقل - بدون واحد، لن يكون لدى جهاز التوجيه Adaptive Hybrid أي شيء يمكن سحقه أثناء فترات الذروة، لذا فإن الكسب = 0

تعتبر قنوات الموسيقى والمعلومات هي أفضل المرشحين - فهي تتحمل نسبة 90%+ لتخفيض المعدل

التتبع عبر إدخالات سجل `[جهاز توجيه التوازن]` - يُظهر انتقالات الطبقة `core_max` و`المتبقية` لكل علامة ثانية واحدة

إذا كانت `core_max > السعة` (تحذير CORE OVERPEAK في السجل)، فقم بتقليل عدد التدفق الأساسي أو خفض المعدل الأقصى لجهاز التشفير

سير عمل المشغل

إضافة تدفقات إلى mux (يظل تعيين القناة يدويًا)

قم بتبديل Statmux على رأس Mux (الشريحة الصفراء).

قم بتمييز التدفقات المضحية عبر مربع الاختيار البرتقالي الموجود على الجانب الأيمن - عادةً قنوات الموسيقى/المعلومات حيث يكون خفض المعدل غير مرئي

منتهي.

StatMux — تعدد الإرسال الإحصائي الأصلي

تشترك القنوات المتعددة ذات معدل البت المتغير في تدفق نقل ثابت واحد (MPTS).

الفئة: statmux ذات الحلقة المغلقة مع نظرة أمامية C1 (تغذية للأمام) عبر مشفرات VBR - مبدأ statmux للبث، مدفوعًا بتعقيد المصدر.

الهندسة المعمارية وتدفق البيانات

Architecture diagram

UDP البث المتعدد SSM، لكل قناة

التشفير

تعقيد المصدر

الاسترجاع

الخط الخاص / الدفق

المخصص (Σ ≥ التجمع)

عازلة

الحشو الفارغ → CBR

سلك CBR في الغطاء

توقع مشهدًا معقدًا قبل الانخفاض

الأسلاك المقاسة - المعايرة

معدل البت المستهدف

تعمل كل قناة على خطها الخاص حتى mux (جهاز تشفير منفصل + اتصال استرجاع)، حيث يتم دمجها جميعًا في خط بث متعدد MPTS واحد بمعدل بت ثابت تمامًا.

الدماغ: ردود الفعل + C1 التطلع إلى الأمام

يجمع المُخصص بين إشارتين — التنبؤ من تعقيد المصدر (للأمام) والسلك المُقاس (للخلف).

يقيس C1 مدى تعقيد المحتوى في وحدة فك التشفير - مما يؤدي إلى إخراج جهاز التشفير من خلال زمن انتقال خط الأنابيب.

سلك قياس (ردود الفعل)

تقوم البتات الدقيقة لكل دفق المنبعثة من mux (عدادات جانب المرسل) بمعايرة التعقيد → رسم خرائط معدل البت والاحتفاظ بالمبلغ تمامًا عند المجمع.

إمكانية التسليم

يتم دعم مطالبة التدفق بما ينتجه جهاز التشفير فعليًا (× ذروة الإرتفاع).

الجودة المتساوية

الهدف ليس معدل بت متساويًا ولكن جودة متساوية - الضغط المستمر ينقل البتات من القنوات عالية الجودة (QP منخفضة) إلى القنوات منخفضة الجودة (QP عالية).

إعادة التوزيع التنبؤية

عندما يشير C1 إلى سقوط قناة، يتم تسليم النطاق الترددي الخاص به إلى الآخرين بنفس العلامة - حيث يتم تكثيفه قبل أن يصل الانخفاض فعليًا إلى السلك.

التجمع = الحد الأقصى N - النفقات العامة (PSI / EIT) - الصوت - الاحتياطي (شريط التمرير).

الطلب لكل تيار = السلك القابل للتسليم × نظرة مستقبلية لـ C1 (تغير التعقيد النسبي) + ضغط معادلة الجودة.

التخصيص النسبي للتجميع حسب الطلب، يتم تثبيته على [min, max] من ملف تعريف الفيديو؛

هدف التشفير = التخصيص / المعايرة (قياس / هدف EMA لكل تيار) ؛

تحافظ مؤازرة الانتظار المؤقت على مستوى قائمة الانتظار عند ~1 ثانية (نطاق)، ومساندة الطوارئ عند التحميل الزائد؛

سلك CBR: مخزن مؤقت + حشوة فارغة + سرعة

الإخراج هو دفق CBR دقيق عند الحد الأقصى الذي تم تكوينه.

المخزن المؤقت الدائم ~ 1 ثانية

تحتوي قائمة انتظار الإرسال على مستوى ثابت يبلغ حوالي 1 ثانية من السلك الذي يمتص انخفاضات GOP دون الثانية (بين إطارات I).

الحشو فارغة

عندما يكون المحتوى أقل من الحد الأقصى، يتم ملء الفرق بحزم MPEG-TS الخالية (PID 0x1FFF).

الوتيرة الدقيقة

يتم تحديد سرعة الخروج حتى الحد الأقصى المحدد (ABSTIME المزدحم) ؛

مخطط الإخراج (النهر)

رسم بياني مباشر مكدس للسلك الحقيقي — كل نطاق عبارة عن قناة واحدة، تتدفق بسلاسة من اليمين.

العصابات الملونة

كل قناة لها لون ثابت؛

الحد الأقصى / الخط الأقصى

الخط المتقطع في الأعلى = الغطاء المكوّن (سقف السلك).

الفرقة فارغة

الشريط الأبيض المنقط في الأعلى = حشوة فارغة (سعة مجانية).

إسقاط العلامات

العلامات الحمراء على المخطط الزمني = تجاوز سعة قائمة انتظار الإرسال (إسقاط).

النطاق (30 ثانية - 30 مترًا)

تقوم الأزرار بتبديل النافذة الزمنية على الفور (من جانب العميل)، أما النافذة النشطة فلها خلفية رمادية.

تلميح الأداة

يُظهر التمرير معدل البت لكل قناة وQP ومؤشر الجودة في تلك اللحظة (القيمة التاريخية، وليست مباشرة).

الحد الأقصى %

مستوى تنظيم حوض السباحة الحالي (تجمع/(تجمع − تقليم)).

احتياطي (التمرير)

نطاق التسامح فوق الحد الأقصى - مقدار المبلغ الذي يجب الاحتفاظ به كاحتياطي فارغ.

المخزن المؤقت (قطرات)

يعرض الرأس استخدام قائمة انتظار الإرسال % والقطرات التراكمية.

الحزب الجمهوري

طول GOP الشائع لجميع القنوات في mux (مقفل في ملفات تعريف الفيديو في البداية).

فبف

حجم المخزن المؤقت لبرنامج التشفير VBV (مللي ثانية).

بطاقات الدفق والدول

تحتوي كل قناة في mux على بطاقة تحتوي على الاسم ورقم PNR ومعدل البت الحالي والمستهدف والحالة:

قيد التشغيل - يتم تشفير القناة وتدفقها إلى السلك.

البدء - يدور جهاز التشفير / يستقر.

متوقف — القناة في وضع الإرسال ولكنها لا تعمل (0 كيلوبت في الثانية).

خطأ - تم فقدان الإدخال / تعطل جهاز التشفير.

جداول PSI/SI (مجموعة DVB كاملة)

يقوم StatMux بإنشاء المجموعة الكاملة من جداول MPEG-TS / DVB الإلزامية مباشرة في NIF mux - بدون مُدخل SI خارجي.

طاولة

معرف المنتج

فاصلة

الغرض/ المصدر

EIT ↔ EPG: التكامل الكامل

EIT (جدول معلومات الحدث، PID 0x12) ليس ثابتًا - فهو متصل بالكامل بنظام EPG الخاص بالتطبيق.

حجم القناة (الحد الأدنى / المتوسط ​​/ الحد الأقصى)

الحد الأدنى = الطابق السفلي (مشهد ثابت).

متوسط ​​= المستوى المستهدف.

الحد الأقصى = السقف (الإرتفاع VBR للقمم/التخفيضات).

أمثلة (متوسط): SD 1.5–2.5M · HD 2.5–4M · FHD 4–6M · UHD 12–18M.

العلاقة ببث statmuxes

نحن نقوم بتعدد إرسال إحصائي حقيقي - إعادة توزيع البتات الديناميكية عبر قنوات VBR التي تتقاسم سلكًا ثابتًا، مع معادلة الجودة.

ما لدينا

سلك CBR عند الحد الأقصى · المخزن المؤقت لمدة 1 ثانية · التخصيص النسبي لكل تيار · التغذية التطلعية C1 · معادلة الجودة · إعادة التوزيع التنبؤي · الحشو الفارغ · السرعة الدقيقة.

حيث نختلف

يستخدم برنامج البث statmux تقدير معدل التشوه الخاص بجهاز التشفير (تكلفة الإطار الدقيقة، ويكون جهاز التشفير عبدًا للمخصص).

استكشاف الأخطاء وإصلاحها

أعراض

السبب / الإصلاح

الفجوات / الارتفاعات الفارغة (5-7 ملايين) في المخطط

انخفاضات المحتوى - إما GOP بين إطارات I (يتم امتصاصها بواسطة المخزن المؤقت 1 ثانية) أو كشك محتوى جماعي (يتم التعامل معه عن طريق إعادة التوزيع).

قطرات > 0 تسلق

قائمة انتظار الإرسال ممتلئة - المحتوى أعلى من الحد الأقصى.

تظل إحدى القنوات ذات معدل بت منخفض/QP مرتفع

إما محتوى ثابت (صحيح - فهو يطلق النطاق الترددي) أو الحد الأقصى المنخفض جدًا في ملف التعريف.

تعثر الرسم البياني / مسح الحافة اليسرى

من جانب العميل - التحديث الثابت (Ctrl+Shift+R) لحزمة JS الجديدة.

الحد الأقصى % / لا يتغير المخزن المؤقت بعد التحرير

إعادة عرض LiveView — تحديث صعب.

الهندسة المعمارية (النهاية إلى النهاية)

SAT UDP SSM ─┐

gst_encoder.py لكل تيار: إدخال SAT UDP SSM → nvh264enc rc-mode=cbr.

حلقة لكل إدخال (استرجاع TCP من جهاز التشفير)، استنزاف ثنائي التمرير (أولوية الصوت، فيديو كامل)، مخصص متناسب، لوحة NULL تمامًا إلى غطاء السلك (CBR)، تمرير PCR من جهاز التشفير.

MPTS واحد (PAT/PMT/SDT يتم إنشاؤه بواسطة NIF) ← بث متعدد UDP على مخرج VLAN.

الصف 1: ⚠ (قضايا التحقق من الصحة) · PNR · الاسم في الإطار (اللون = الحالة).

الصف 2+: الحد الأدنى · المتوسط ​​· الحد الأقصى كيلوبت في الثانية · التعقيد المتوقع Δ منخفض / متوسط ​​/ مرتفع / الذروة · فقدان الإدخال · ⚙URL · التشفير ميغابت في الثانية · SID · نوع الخدمة.

اسم اللون = حالة الدفق:

ميغابت في الثانية

خط "الغطاء" الأحمر: سقف سلك CBR (mux.bitrate) - يمتلئ NULL حتى هنا.

خط "الإرتفاع N٪" البرتقالي: = الحد الأقصى × شريط تمرير الإرتفاع / 100. تستهدف أهداف معدل البت في التشفير هنا.

المنطقة الرمادية ذات النقاط السوداء بين المحتوى والغطاء = حشوة فارغة (احتياطي غير مستخدم).

انقر على شريط الألوان الخاص بالقناة ← يقوم تلقائيًا بتوسيع بطاقة القناة أدناه.

جدول

يقرأ MuxEitAdapter الأحداث من نظام EPG لكل خدمة، ويبني أقسام DVB EIT (الاسم والوقت والمدة والوصف والنوع) ويحزمها في PID 0x12.

يتم حقن EIT مباشرة في NIF mux، بالتساوي في المساحة الخالية (1 حزمة / N الإخراج + p/f بشكل دوري) - لتحل محل سلسلة tsp الخارجية المتقطعة.

الجدول 0x4E - الحدث الحالي + الحدث التالي.

يقوم Mux بشكل دوري بإعادة إنشاء EIT .bin من EPG (~ 15 ثانية) - يصل تغيير جدول EPG إلى السلك دون إعادة التشغيل.

الجداول 0x50/0x51 — الجدول الزمني الكامل للساعات/الأيام المقبلة (المقاطع).

مقياس الفرق (فوق الرسم البياني)

مؤشر التدفق الحقيقي مقابل الحد الأقصى.

-5 ميجابت في الثانية CAP 37000 كيلوبت في الثانية +5 ميجابت في الثانية

شريط تمرير الإرتفاع (78-90%، الافتراضي 85)

أقل (←78): احتياطي NULL أكثر، وأكثر أمانًا، واستخدام أقل إحكامًا للغطاء.

أعلى (←90): استخدام سقف أكثر إحكامًا، وأقل قيمة فارغة.

⚠ ≥88%: يتحول شريط التمرير إلى اللون الأصفر — بالقرب من سقف التجميد ذو الفائض الدائري.

عدم التماثل: التخفيض بشكل موثوق يضيف الاحتياطي؛

يتحكم في مقدار الحد الأقصى الذي تستهدفه برامج التشفير: هدف التشفير = الميزانية × الإرتفاع٪ / 100 (الخط البرتقالي في المخطط).

فقدان الإشارة / فشل القناة (العزل)

تفشل إحدى القنوات (تعطل جهاز التشفير / فقدان الإشارة) ⇒ يستمر تشغيل Mux، ولا تتأثر القنوات الأخرى، ويحمل السلك الغطاء (NULL يمتص الانقطاع)، CC = 0 على الناجين.

PCR / التوقيت

يتم تمرير PCR وPES PTS/DTS من جهاز التشفير (مجال ساعة واحدة ⇒ متماسك، بدون انحراف).

CAT — الوصول المشروط (فقط عند التخليط / ECM).

EIT — معلومات الحدث (EPG) — من نظام EPG، انظر أدناه.

NIT — معلومات الشبكة (معرف الشبكة، الاسم، تدفق النقل).

PAT — قائمة البرامج (خرائط PNR → PMT PID).

PMT - لكل برنامج: فيديو/صوت/معرفات PCR، وبرامج الترميز، والواصفات.

SDT - أسماء الخدمات ومقدموها (ما يعرضه STB في القائمة).

TDT/TOT — الوقت والتاريخ + الإزاحة المحلية (ساعة STB).

TSDuck Plugins Used

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