Кто хочет научится сам лишние пиды отсеивать вот не большой FAQ
Для чего использовать replace.list-- для упорядочивания PIDов (альтернатива сразу обох файлов priority.list + ignore.list)
К примеру берём пакет каналов нтв+, где используются 4 разных провайдера Viaccess:
020710, 023700,030600,040600Для каналов для HD нужен один провайдер на первом месте 030600, для Нтв+рос и укр 023700,но не на всех серверах у некоторых украина идёт 040600 или 020710
Если просто вписать их в
priority.list , то хорошо будет только одной из этих трех частей каналов. Две же других части будут напарываться каждый раз на ненужный PID, а одна из трех частей будет напарываться на целых 2 ненужных PIDa
Запретить провайдеров с помощью
ignore.list тоже нельзя, тогда просто перестанет открываться часть каналов. Вот тут и приходит на помощь
replace.list!
Включим для примера HD канал (без
ignore.list и без
priority.list) и увидим в логе такое (все данные, которые нам потребуются для создания
replace.list выделены):
Лучше всего для просмотра лога использовать прогу 3сислог - самая простая прога
[mg0] stoping camd..
[mg0] service 2F47 index 0 pmt pid 0 (45)
ECM: CaID: 0x0500 -> CaPID: 0x0FA3 ProvID: 023700<--
первым попадается этот провайдер и север нам не даст нам ключ потому что он для другого пакета каналовECM: CaID: 0x0500 -> CaPID: 0x0BBB ProvID: 030600 <--
вот этот нужен нам первым, канал HD ниже получит ключи по PIDу 0BBB[mg1] service 2F47 already started with index 0
[mg1] service 2F47 index 1 pmt pid 0 (46)
[mg0] No viaccess key(s) found for id 23700 keynr 08
[mg0] -> ECM to newcamd server1.com:1234
[mg0] network can't decode
[mg0] pid 0x0FA3 failed to decode.
[mg0] -> ECM to newcamd server1.com:1234
[mg0] <- CW from newcamd server1.com:1234 (134ms)
[mg0] 174 msec -- Wed Jun 10 01:13:31 2009
===== Viaccess ECM on CaID 0x0500, pid 0x0bbb ====== <-
этим PIDом открылся канал HDprov: 030600
cw0:0 00 00 7E 7E 0F 83 29 BB <--
и вот пошли ключиcw1:0 C7 9C 0F 72 07 E0 00 E7
Всё вот теперь канал открывается по PIDу 0BBB, у которого карта=0500 и провайдер=030600.
Создаем новый файл replace.list и пишем в него следующее:
R:{{2F47}{0500}{023700}{0FA3}{0500}{030600}{0BBB}}
[mg0]
service 2F47 index 0 pmt pid 0 (45) вот сервис ид его мы вписываем первым ,далее вписываем CaID идент и CaPID это то, что надо игнорировать для этого канала ,теперь пишем CaID идент и CaPID приоритетного канала
Что это значит?
Это значит, что мы предписываем mgcamd сделать следующий шаг:
Для канала, у которого Service ID (или SID) = 2F47, поменять PID с параметрами CaID=0500, ProvID=023700 и CaPID=0FA3 на PID, с параметрами CaID=0500, ProvID=030600 и CaPID=0BBB.
Что теперь получается при перезапуске mgcamd?
Смотрим
[mg0] stoping camd..
[mg0] service 2F47 index 0 pmt pid 0 (45)
ECM: CaID: 0x0500 -> CaPID: 0x0BBB ProvID: 030600
[mg1] service 2F47 already started with index 0
[mg1] service 2F47 index 1 pmt pid 0 (46)
[mg0] -> ECM to newcamd server1.com:1234
[mg0] <- CW from newcamd server1.com:1234 (174ms)
[mg0] 174 msec -- Wed Jun 10 01:15:31 2009
===== Viaccess ECM on CaID 0x0500, pid 0x0bbb ======
prov: 030600
cw0:0 78 03 FF 7A 67 98 00 FF
сw1:0 DF 33 18 2A 19 3E 1F 76
Одной строчкой в replace.list мы сделали сразу две вещи:
1) убили ненужный PID
2) превратили убитый PID в правильный, который работает
Только нужно помнить, что это мы сделали для одного единственного канала! У каждого канала на отдельно взятом транспондере всегда свой уникальный service ID (SID).
Поэтому, для полного счастья поступаем таким же образом для остальных HD каналов, открывающихся по провайдеру 030600, и получаем вот что в replace.list для пяти каналов:
R:{{2F45}{0500}{023700}{0FA1}{0500}{030600}{0BB9}}
R:{{2F46}{0500}{023700}{0FA2}{0500}{030600}{0BBA}}
R:{{2F47}{0500}{023700}{0FA3}{0500}{030600}{0BBB}}
R:{{2F48}{0500}{023700}{0FA4}{0500}{030600}{0BBC}}
R:{{2F49}{0500}{023700}{0FA5}{0500}{030600}{0BBD}}
Теперь для этих пяти каналов будет совершенно не важно, что вы напишете в priority.list, ведь мы практически создали "локальный" ignore и priority специально для этих каналов, в результате чего всегда будет оставаться только один нужный PID.
автор Ligioner