Počítám že provider neposílá streamy obyčejným multicastem, ale že jsou "zamknuté", tj všechny kanály jsou na všech dslamech neustále k dispozici i když se na ně zrovna nikdo nedívá. Přepnutí multicastu by pak mělo být záležitostí jednoho hopu, tedy zhruba 10ms.
Keyframe chodí u MPEG4 běžně jen jednou za vteřinu až tři, proto by se na něj čekat nemělo. Proč tedy nemít server, který bude stream průběžně dekódovat, a na požádání pošle unicastem jeden "virtuální" keyframe?
Buffering: Předpokládám že se používá pro korekci jitteru a hlavně dopřednou korekci chyb, a to bude také hlavní důvod proč je celé vysílání zpožděno. Není problém, prostě korekce chyb prvních pár vteřin nebude.. na 3-4 devítkové lince to není nic hrozného; když obraz naskočí ihned po přepnutí, nevadí když krátce poté výjimečně vypadne.
Korekci jitteru by šlo udělat tak že po přepnutí kanál chvíli poběží nepatrně pomaleji a bez korekce, dokud se buffer nedostane na střed. Čekat není třeba. Samozřejmě nejlepší by bylo aby linka mezi dslamem a STB byla bez jitteru, což by technicky neměl být takový problém, a kompenzaci dělal jen dslam.
Závěr: Nevidím důvod proč by přepínání kanálů nemohlo být v desítkách milisekund.