MPTS · TSDuck · PSI/SI






স্ট্রীম ম্যানেজার mux একাধিক SPTS স্ট্রীমকে এক CBR MPTS আউটপুটে (DVB/IPTV) একত্রিত করে।
যখন প্যারেন্ট mux statmux সক্রিয় থাকে, তখন প্রতিটি FFmpeg এনকোডার ক্যাপড-VBR চালায়: -b:v <avg> -minrate <min> -maxrate <max> -bufsize <max×2>।
tsp -I নাল (∞ NULL প্যাকেট @ লাইন রেট) → -P মার্জ tsp -I ip <স্ট্রিম> (আসল প্যাকেটগুলিকে ওভারলে করে) → -P ধারাবাহিকতা (ড্রপ অ্যালার্ম) → -P pcradjust --bitrate X (PCRs পুনঃলিখন) → -P pcrverify --jitter-orbit → 0µmonrate →
রেগুলেট প্লাগইন তারে ঠিক mux.bitrate bps নির্গত করে।
Mux শীর্ষ বার রঙ স্থিতি সহ 3 যোগফল দেখায়।
Σ avg ≤ 85 % mux.bitrate — সমস্ত চ্যানেল প্লাস অডিও জুড়ে গড় লক্ষ্য সমষ্টি৷
Σ সর্বোচ্চ ≤ 160 % mux.bitrate — সর্বোচ্চ সিলিং সমষ্টি।
Σ মিনিট ≤ 50 % mux.bitrate — এনকোডার ফ্লোর সমষ্টি।
PSI/SI/EIT-এর পরে উপলব্ধ বাজেট: ~18.5 Mbps৷
60-এর দশকে ≥ 10 অ্যালার্মে Mux UI-তে একটি বিটরেট কমানোর সুপারিশ করে একটি ফ্ল্যাশ বিজ্ঞপ্তি উপস্থিত হয়।
-পি বিটরেট_মনিটর --পর্যায়ক্রমিক 60 --মিনিট/সর্বোচ্চ ±5% — অ্যালার্ম যদি প্রকৃত হার লক্ষ্যের ±5% ছাড়িয়ে যায়।
-P ধারাবাহিকতা — TS ধারাবাহিকতা কাউন্টার ট্র্যাক করে।
-P pcrverify --jitter-max 500000 — DVB PCR জিটার ≤ 500 µs অনুমতি দেয়।
GOP কাকতালীয় — সমস্ত এনকোডার একই সাথে I-ফ্রেম নির্গত করে, সর্বোচ্চ কাকতালীয়।
ইনপুট লস-অফ-সিগন্যাল — একক চ্যানেল কালো হয়ে যায়, mux চলতে থাকে (ধন্যবাদ -I নাল বেস)।
ওভার-সাবস্ক্রিপশন (টেকসই শিখর > ক্ষমতা) — ব্লক/অডিও স্টাটার ~50-200 ms।
পিসিআর ড্রিফ্ট — প্রতি কয়েক সেকেন্ডে STB তোতলাচ্ছে।
STB VBV underrun — STB সিঙ্ক হারায় এবং পুনরায় অর্জন করে (~2-3 s)।
--max-input-packets 4096 / --max-flushed-packets 4096 (অভ্যন্তরীণ FIFO ≈ 0.3 s @ 19 Mbps)।
টপ-বার ব্যাজ `📐 rec X.XM` কেন্দ্রীয় সীমা উপপাদ্য থেকে প্রাপ্ত প্রস্তাবিত mux ক্ষমতা দেখায়।
ব্যাজের রঙ: 🟢 সবুজ = ক্যাপ ≥ 99.7% rec (রক্ষণশীল) · 🟡 অ্যাম্বার = 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 = σ_total × statmux_factor (statmux_factor = 0.7 যখন Statmux চালু থাকে, অন্যথায় 1.0)
1080p25 HD চ্যানেল: avg = 4000-5000 kbps, min = avg × 0.75 (~3000-3750), সর্বোচ্চ = avg × 1.5 (~6000-7500)।
অ্যাডাপ্টিভ হাইব্রিড স্ট্যাটমাক্স হল একটি রানটাইম মেকানিজম যা অব্যবহৃত ক্ষমতাকে মূল স্ট্রীম (সুরক্ষিত, সম্পূর্ণ ভিবিআর) থেকে সুষম স্ট্রীমে (বলি) স্থানান্তরিত করে।
Mux ক্ষমতা 38 Mbps
অভিযোজিত হাইব্রিড স্ট্যাটমক্স ছাড়া আপনাকে অবশ্যই সবচেয়ে খারাপ ক্ষেত্রে Σ সর্বোচ্চের জন্য mux আকার দিতে হবে।
বিশুদ্ধ CBR (এনকোডার স্থির)
Statmux ছাড়া VBR
অভিযোজিত হাইব্রিড স্ট্যাটমাক্স চালু
কাস্টম URL ইনপুট ওভাররাইড এবং Statmux পারস্পরিক একচেটিয়া।
┌────────────────────────────┐
পরিসংখ্যানগত লাভ তখনই ঘটে যখন এনকোডারগুলির একটি বিস্তৃত VBR পরিসীমা থাকে — যখন সর্বাধিক ≈ গড় এনকোডার কার্যকরভাবে CBR হয় এবং রাউটারে পুনরায় বিতরণ করার কিছু থাকে না।
কাজের উদাহরণ — 38 Mbps mux, 10 HD কোর + 2 ব্যালেন্সড:
প্রতি মূল স্ট্রীমের প্রস্তাবিত পরিসর:
কমপক্ষে 1টি ভারসাম্যপূর্ণ প্রবাহ — একটি ছাড়া অ্যাডাপ্টিভ হাইব্রিড রাউটারে চূড়ার সময় স্কোয়াশ করার মতো কিছুই নেই, তাই লাভ = 0
মিউজিক এবং ইনফো চ্যানেলগুলি হল সেরা প্রার্থী — 90%+ হার কমানোর সহনশীলতা
`[ব্যালেন্স-রাউটার]` লগ এন্ট্রির মাধ্যমে ট্র্যাক করুন — প্রতিটি 1 সেকেন্ড টিকের জন্য `কোর_ম্যাক্স`, `অবশিষ্ট`, টিয়ার ট্রানজিশন দেখায়
যদি `core_max > ধারণক্ষমতা` (লগে কোর ওভারপিক সতর্কতা) হয়, তাহলে মূল স্ট্রীম গণনা বা কম এনকোডার সর্বোচ্চ হার কমিয়ে দিন
মুক্সে স্ট্রীম যোগ করুন (চ্যানেল অ্যাসাইনমেন্ট ম্যানুয়াল থাকে)
মুক্স হেডারে (হলুদ চিপ) স্ট্যাটমক্স টগল করুন।
ডান-পাশের কমলা চেকবক্সের মাধ্যমে বলিদানের স্ট্রীমগুলি চিহ্নিত করুন - সাধারণত সঙ্গীত/তথ্য চ্যানেল যেখানে রেট-শেডিং অদৃশ্য
সম্পন্ন
একাধিক পরিবর্তনশীল-বিটরেট চ্যানেল একটি নির্দিষ্ট পরিবহন স্ট্রিম (MPTS) ভাগ করে।
ক্লাস: ক্লোজড-লুপ ফিডব্যাক স্ট্যাটামক্স সি 1 লুক-এহেড (ফিডফরওয়ার্ড) ওভার ভিবিআর এনকোডার - সম্প্রচার স্ট্যাটমাক্স নীতি, উৎস জটিলতা থেকে চালিত।
UDP মাল্টিকাস্ট SSM, প্রতি চ্যানেল
এনকোডার
উত্স জটিলতা
লুপব্যাক
নিজস্ব লাইন / প্রবাহ
বরাদ্দকারী (Σ ≤ পুল)
বাফার
নাল প্যাডিং → CBR
ক্যাপে সিবিআর তার
ডুব দেওয়ার আগে জটিল দৃশ্যের প্রত্যাশা করুন
পরিমাপ করা তার - ক্রমাঙ্কন
লক্ষ্য বিটরেট
প্রতিটি চ্যানেল তার নিজস্ব লাইনে mux পর্যন্ত চলে (পৃথক এনকোডার + লুপব্যাক সংযোগ), যেখানে সবগুলো একটি MPTS মাল্টিকাস্ট লাইনে একটি ঠিক নির্দিষ্ট বিটরেটে একত্রিত হয়।
বরাদ্দকারী দুটি সংকেতকে একত্রিত করে — উত্স জটিলতা থেকে একটি পূর্বাভাস (ফরোয়ার্ড) এবং পরিমাপ করা তার (পিছনগামী)।
C1 ডিকোডারে বিষয়বস্তুর জটিলতা পরিমাপ করে — যা পাইপলাইন লেটেন্সি দ্বারা এনকোডার আউটপুটকে নেতৃত্ব দেয়।
মিউক্স (প্রেরক-সাইড কাউন্টার) দ্বারা নির্গত প্রতি-স্ট্রীম বিটগুলি জটিলতা →বিটরেট ম্যাপিংকে ক্রমাঙ্কন করে এবং সমষ্টিটিকে পুলে ঠিক ধরে রাখে।
একটি স্ট্রিমের দাবি এনকোডার আসলে যা তৈরি করে তার দ্বারা সমর্থিত হয় (× পিক হেডরুম)।
লক্ষ্যটি সমান বিটরেট নয় কিন্তু সমান মানের — ক্রমাগত চাপ উচ্চ-মানের চ্যানেল (নিম্ন QP) থেকে বিটগুলিকে নিম্ন-মানের (উচ্চ QP) দিকে নিয়ে যায়।
যখন C1 একটি চ্যানেল ড্রপ করার সংকেত দেয়, তখন এর ব্যান্ডউইথ একই টিক দিয়ে অন্যদের কাছে হস্তান্তর করা হয় - ড্রপটি আসলে তারে পৌঁছানোর আগেই তারা র্যাম্প করে।
পুল = ক্যাপ N − ওভারহেড (PSI/EIT) − অডিও − রিজার্ভ (স্লাইডার)।
প্রতি-স্ট্রীম চাহিদা = বিতরণযোগ্য তার × C1 সামনের দিকে (আপেক্ষিক জটিলতা পরিবর্তন) + গুণমান-সমান চাপ।
চাহিদা অনুসারে আনুপাতিক পুল বরাদ্দ, ভিডিও প্রোফাইল থেকে [মিনিট, সর্বোচ্চ] এ আটকানো;
এনকোডার টার্গেট = alloc / ক্রমাঙ্কন (প্রতি-স্ট্রীম EMA পরিমাপ/লক্ষ্য);
বাফার-হোল্ড সার্ভো কিউ লেভেলকে ~1 সেকেন্ডে রাখে (ব্যান্ড), ওভারলোডের উপর জরুরী ব্যাকস্টপ;
কনফিগার করা ক্যাপে আউটপুট একটি সঠিক CBR স্ট্রিম।
পাঠান সারি ~1 s তারের একটি স্থায়ী স্তর ধারণ করে যা সাব-সেকেন্ড GOP ডিপ (আই-ফ্রেমের মধ্যে) শোষণ করে।
যখন বিষয়বস্তু ক্যাপের নিচে থাকে, তখন পার্থক্য MPEG-TS নাল প্যাকেট (PID 0x1FFF) দিয়ে পূর্ণ হয়।
নির্গমন সঠিক ক্যাপে গতিশীল (ব্যস্ত-স্পিন ABSTIME);
বাস্তব তারের একটি লাইভ স্ট্যাকড গ্রাফ — প্রতিটি ব্যান্ড একটি চ্যানেল, ডান দিক থেকে মসৃণভাবে প্রবাহিত হয়।
প্রতিটি চ্যানেলের একটি স্থিতিশীল রঙ আছে;
উপরের ড্যাশড লাইন = কনফিগার করা ক্যাপ (তারের সিলিং)।
উপরে বিন্দুযুক্ত সাদা ব্যান্ড = নাল প্যাডিং (মুক্ত ক্ষমতা)।
টাইমলাইনে লাল দাগ = সেন্ড-কিউ ওভারফ্লো (ড্রপ)।
বোতামগুলি তাত্ক্ষণিকভাবে টাইম উইন্ডোটি সুইচ করে (ক্লায়েন্ট-সাইড), সক্রিয়টির একটি ধূসর পটভূমি রয়েছে।
হোভার সেই মুহূর্তে প্রতি-চ্যানেল বিটরেট, QP এবং গুণমানের সূচক দেখায় (ঐতিহাসিক মান, লাইভ নয়)।
বর্তমান পুল নিয়ন্ত্রণ স্তর (পুল/(পুল-ট্রিম))।
ক্যাপের উপরে টলারেন্স ব্যান্ড — নাল রিজার্ভ হিসাবে কত রাখতে হবে।
শিরোনামটি % এবং ক্রমবর্ধমান ড্রপ পর্যন্ত পাঠান-সারি দেখায়।
mux-এর সমস্ত চ্যানেলের জন্য সাধারণ GOP দৈর্ঘ্য (শুরুতে ভিডিও প্রোফাইলে লক করা)।
এনকোডার VBV বাফার সাইজ (ms)।
mux-এর প্রতিটি চ্যানেলের নাম, PNR, বর্তমান এবং লক্ষ্য বিটরেট এবং অবস্থা সহ একটি কার্ড রয়েছে:
চলমান — চ্যানেলটি এনকোডিং এবং তারে প্রবাহিত হচ্ছে।
শুরু হচ্ছে — এনকোডার স্পিনিং আপ/ সেটল হচ্ছে।
বন্ধ — চ্যানেল মুক্সে আছে কিন্তু চলছে না (0 kbps)।
ত্রুটি — ইনপুট হারিয়ে গেছে/এনকোডার ক্র্যাশ হয়েছে।
StatMux NIF mux-এ সরাসরি বাধ্যতামূলক MPEG-TS/DVB টেবিলের সম্পূর্ণ সেট তৈরি করে — কোনো বাহ্যিক SI সন্নিবেশকারী নেই।
টেবিল
পিআইডি
ব্যবধান
উদ্দেশ্য/উৎস
EIT (ইভেন্ট ইনফরমেশন টেবিল, PID 0x12) স্ট্যাটিক নয় — এটি অ্যাপ্লিকেশনের EPG সিস্টেমের সাথে সম্পূর্ণ তারযুক্ত।
min = নিচতলা (স্থির দৃশ্য)।
avg = লক্ষ্য স্তর।
সর্বোচ্চ = সিলিং (চূড়া/কাটের জন্য ভিবিআর হেডরুম)।
উদাহরণ (গড়): SD 1.5–2.5M · HD 2.5–4M · FHD 4–6M · UHD 12–18M।
আমরা সত্যিকারের পরিসংখ্যানগত মাল্টিপ্লেক্সিং করি — গুণমানের সমতা সহ একটি নির্দিষ্ট তার ভাগ করে VBR চ্যানেল জুড়ে গতিশীল বিট পুনঃবন্টন।
ক্যাপ এ CBR তারের · 1 s বাফার · প্রতি-স্ট্রীম আনুপাতিক বরাদ্দ · C1 লুক-এহেড ফিডফরওয়ার্ড · গুণমান সমতা · ভবিষ্যদ্বাণীমূলক পুনর্বন্টন · নাল প্যাডিং · সঠিক গতি।
একটি সম্প্রচার স্ট্যাটামক্স এনকোডারের হার-বিকৃতি অনুমান ব্যবহার করে (সঠিক ফ্রেম খরচ, এনকোডারটি বরাদ্দকারীর দাস)।
উপসর্গ
কারণ/সমাধান
চার্টে ফাঁক / নাল স্পাইক (5–7M)
কন্টেন্ট ডিপস — হয় I-ফ্রেমের মধ্যে GOP (1s বাফার দ্বারা শোষিত) অথবা একটি যৌথ সামগ্রী স্টল (পুনঃবন্টন দ্বারা পরিচালিত)।
ড্রপ > 0 আরোহণ
উপচে পড়া সারি পাঠান — ক্যাপের উপরে বিষয়বস্তু।
একটি চ্যানেল কম বিটরেট / উচ্চ QP থাকে
হয় স্ট্যাটিক কন্টেন্ট (সঠিক — এটি ব্যান্ডউইথ প্রকাশ করে) অথবা প্রোফাইলে সর্বাধিক কম।
চার্ট stutters / বাম প্রান্ত মুছে ফেলা হয়
ক্লায়েন্ট-সাইড — নতুন JS বান্ডেলের জন্য হার্ড রিফ্রেশ (Ctrl+Shift+R)।
ক্যাপ % / বাফার সম্পাদনা করার পরে পরিবর্তন হয় না
LiveView রি-রেন্ডার — হার্ড রিফ্রেশ।
SAT UDP SSM ─┐
gst_encoder.py প্রতি স্ট্রীম: SAT UDP SSM ইনপুট → nvh264enc rc-mode=cbr।
প্রতি-ইনপুট রিং (এনকোডার থেকে টিসিপি লুপব্যাক), 2-পাস ড্রেন (অডিও অগ্রাধিকার, ভিডিও পূর্ণ), আনুপাতিক বরাদ্দকারী, নাল প্যাড ঠিক তারের ক্যাপ (সিবিআর), এনকোডার থেকে পিসিআর পাস-থ্রু।
একটি MPTS (NIF দ্বারা উৎপন্ন PAT/PMT/SDT) → VLAN আউটপুটে UDP মাল্টিকাস্ট।
সারি 1: ⚠ (বৈধকরণ সমস্যা) · PNR · একটি ফ্রেমে নাম (রঙ = অবস্থা)।
সারি 2+: min·avg·max kbps · পূর্বাভাসিত জটিলতা Δ কম/মধ্য/উচ্চ/শিখর · ইনপুট হারিয়েছে · ⚙URL · এনকোডার Mbps · SID · service_type।
নামের রঙ = স্ট্রিম অবস্থা:
এমবিপিএস
লাল 'ক্যাপ' লাইন: তারের সিবিআর সিলিং (mux.bitrate) — NULL এখানে পর্যন্ত পূরণ করে।
কমলা 'হেডরুম এন%' লাইন: = ক্যাপ × হেডরুম স্লাইডার / 100। এনকোডার সেট_বিটরেট টার্গেট এখানে লক্ষ্য করে।
বিষয়বস্তু এবং ক্যাপের মধ্যে কালো বিন্দু সহ ধূসর এলাকা = NULL প্যাডিং (অব্যবহৃত রিজার্ভ)।
একটি চ্যানেলের রঙের ব্যান্ডে ক্লিক করুন → স্বয়ংক্রিয়ভাবে নীচে সেই চ্যানেলের কার্ডটি প্রসারিত করে৷
MuxEitAdapter পরিষেবা প্রতি EPG সিস্টেম থেকে ইভেন্টগুলি পড়ে, DVB EIT বিভাগগুলি তৈরি করে (নাম, সময়, সময়কাল, বিবরণ, জেনার) এবং সেগুলিকে PID 0x12-এ প্যাকেটাইজ করে৷
EIT সরাসরি NIF mux-এ ইনজেকশন করা হয়, সমানভাবে নাল স্পেসে (1 প্যাকেট/N আউটপুট + p/f পর্যায়ক্রমে) — ফেটে যাওয়া বাহ্যিক tsp ক্যাসকেড প্রতিস্থাপন করে।
টেবিল 0x4E — বর্তমানে চলমান + পরবর্তী ইভেন্ট।
mux পর্যায়ক্রমে EPG (~15 s) থেকে EIT .bin পুনরুত্পাদন করে — একটি EPG সময়সূচী পরিবর্তন রিস্টার্ট না করেই তারে পৌঁছে যায়।
সারণি 0x50/0x51 — সম্পূর্ণ সময়সূচী ঘন্টা/দিন এগিয়ে (সেগমেন্ট)।
বাস্তব প্রবাহ বনাম ক্যাপ এর সূচক।
-5 Mbps CAP 37000 kbps +5 Mbps
নিম্ন (→78): অধিক NULL রিজার্ভ, নিরাপদ, কম টাইট ক্যাপ ব্যবহার।
উচ্চতর (→90): কড়া ক্যাপ ব্যবহার, কম শূন্য।
⚠ ≥88 %: স্লাইডার হলুদ হয়ে যায় — রিং-ওভারফ্লো ফ্রিজ সিলিং এর কাছাকাছি।
অসমতা: নির্ভরযোগ্যভাবে কমানো রিজার্ভ যোগ করে;
এনকোডার টার্গেট কতটা ক্যাপ নিয়ন্ত্রণ করে: এনকোডার টার্গেট = বাজেট × হেডরুম% / 100 (চার্টে কমলা লাইন)।
একটি চ্যানেল ব্যর্থ হয় (এনকোডার ক্র্যাশ / সিগন্যাল লস) ⇒ মিউক্স চলতে থাকে, অন্য চ্যানেলগুলি প্রভাবিত হয় না, তারের ক্যাপ ধরে থাকে (NULL বিভ্রাট শোষণ করে), বেঁচে থাকাদের উপর CC=0।
পিসিআর এবং পিইএস পিটিএস/ডিটিএস এনকোডার থেকে পাস-থ্রু (একক ঘড়ির ডোমেন ⇒ সুসংগত, কোন প্রবাহ নেই)।
CAT — শর্তাধীন অ্যাক্সেস (শুধুমাত্র যখন স্ক্র্যাম্বলিং / ECM)।
EIT — ইভেন্ট তথ্য (EPG) — EPG সিস্টেম থেকে, নীচে দেখুন।
NIT — নেটওয়ার্ক তথ্য (নেটওয়ার্ক আইডি, নাম, পরিবহন স্ট্রীম)।
PAT — প্রোগ্রাম তালিকা (মানচিত্র PNR → PMT PID)।
PMT — প্রতি প্রোগ্রাম: ভিডিও/অডিও/পিসিআর পিআইডি, কোডেক, বর্ণনাকারী।
SDT — পরিষেবার নাম এবং প্রদানকারীদের (যা STB তালিকায় দেখায়)।
TDT/TOT — সময় এবং তারিখ + স্থানীয় অফসেট (STB ঘড়ি)।