Можно и так,тогда переформулируем ответ.
Использование replace.list для упорядочивания PIDов (альтернатива priority.list + ignore.list)
Инфа отсюда автор den_y
Итак, классика жанра, (сами знаете какой) пакет каналов где используются три разных провайдера Viaccess: 023700, 020710 и 030600.Для одной части каналов нужен один провайдер на первом месте, для другой части каналов - другой, а для HD - третий. Если просто вписать их в priority.list (как это часто советуют на форумах), то хорошо будет только одной из этих трех частей каналов. Две же других части будут напарываться каждый раз на ненужный PID, а одна из трех частей (самая невезучая) будет напарываться на целых 2 ненужных PIDa. Запретить провайдеров с помощью ignore.list тоже нельзя, тогда просто перестанет открываться часть каналов. Вот тут и приходит на помощь replace.list! Включим для примера HD канал (без ignore.list и без priority.list) и увидим в логе такое (все данные, которые нам потребуются для создания replace.list выделены): [mg0] stoping camd..[mg0] service 2F47 index 0 pmt pid 0 (45)ECM: CaID: 0x0500 -> CaPID: 0x0FA3 ProvID: 023700ECM: CaID: 0x0500 -> CaPID: 0x0BBB ProvID: 030600[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 (174ms)[mg0] 174 msec -- Wed Jun 10 01:13:31 2009===== Viaccess ECM on CaID 0x0500, pid 0x0bbb ====== <- смотрим здесь каким PIDом открывается каналprov: 030600cw0:0 00 00 7E 7E 0F 83 29 BBcw1:0 C7 9C 0F 72 07 E0 00 E7 Видно, что первым попадается провайдер 023700, который не работает (идет запрос на сервер, но он нас посылает подальше).Видно, что в конце концов канал открывается по PIDу 0BBB, у которого карта=0500 и провайдер=030600.Создаем новый файл replace.list и пишем в него следующее: R:{{2F47}{0500}{023700}{0FA3}{0500}{030600}{0BBB}} Что это значит? Это значит, что мы предписываем 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: 030600cw0:0 78 03 FF 7A 67 98 00 FFсw1:0 DF 33 18 2A 19 3E 1F 76 Одной строчкой в replace.list мы сделали сразу две вещи:1) убили ненужный PID2) превратили убитый 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.