Продължавам с работата по OpenWRT, сега ще ви покажа как да си направите IPTV headend домашна станция върху рутерчето (TP-LINK 1043).
Предпоставките са: да имате работещ USB DVB адаптер - вижте по-горе за af9015.
Аз имам 2 адаптера едновременно - DVB-T af9015 и DVB-S lmedm04 (QQBOX)
1. TVHEADEND - успях с малки компромиси да компилирам работеща версия за OpenWRT -
https://docs.google.com/leaf?id=0B8oQFOm_9mQ3NTI5YjVjNjctYjBmOC00MzU3LTg1NTYtZjZjZWQ1OGRjYmNh&hl=en_USВътре в този ipk пакет има един изпълним файл - "tvheadend".
Поставил съм го в / (ако го сложите на друго място - просто променете реда в скрипта по-долу)
стартиращ скрипт:
/etc/init.d/tvheadend#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org
START=92
STOP=15
# This method starts tvheadend
start_cam ()
{
/usr/sbin/killall -9 tvheadend
mkdir /dev/dvb
mkdir /dev/dvb/adapter0
ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
ln -s /dev/dvb0.frontend0 /dev/dvb/adapter0/frontend0
sleep 1
/tvheadend -f -u tv -g root -s
sleep 1
}
# This method stops tvheadend
start() {
start_cam
}
stop() {
sleep 1
/usr/bin/killall -9 tvheadend
}
как се използва:
Първоначално трябва да се направи един потребител на OS,
от чието име да се стартира процеса tvheadend.
аз го правя, чрез ръчно добавяне на ред в /etc/passwd:
tv:*:111:0:TV:/etc/tv:/bin/false
След това трябва да направите 1-во стартиране така:
по този начин ще се стартира процеса, ще започне да изписва в конзолата какви адаптери е намерил и т.н и ще осигури пълен достъп без парола до web interface.
влизаме от WEB Browser на
http://ip.na.openwrt:9981желателно е веднага да отидем в configuration, access control и да си добавим например достъп само от вътре.
След това, отиваме на configuration, tv adapters и избираме от падащото меню DVB адаптера. Отиваме на multiplexes, add manual, въвеждаме ръчно параметрите на приемане (за София - 3 мултиплекса, с параметри : Freq: 818000; bandwidth 8, всичко останало на "auto". Натискаме Add, след което само променяме Freq на 626000, натискаме Add, след това променяме на 490000 и пак add)
Съхраняваме промените (Save changes).
Сега тънък момент:
конфигурацията се е генерирала във /root/.hts/....
спраме процеса от друга конзола със:
местим конфигурацията:
mkdir /etc/tv
cp -r /root/.hts /etc/tv/
chown -R tv:nogroup /etc/tv
и накрая стартираме окончателно:
/etc/init.d/tvheadend start
по този начин процеса tvehadend се стартира от името на потребител tv
Ако всичко е нормално, отиваме на web интерфейса,
configuration, tv adapters, services и трябва да открием доста канали.
При мен се наложи ръчно да им задам channel name.
От тук нататък - щом канала си има име - той е готов за streaming.
Можем да гледаме от Configuration, Channels - play;
или от бутончето watch TV когато сме извън Configuration.
Така направена системата, на моя TP-LINK 1043 работи със натоварване около 20-30 % CPU докато гледам канал (повече е от варианта с mumudvb, но имам странното чувство, че каналите се възпрозивеждат по-добре, а и има една интересна подробност - за DVB-S има възможност за изпозване на OSCAM чрез newcamd протокол, или чрез dvbapi capmt_so.
това е само лирично отклонение, но ефекта е такъв (с oscam работещ на същия рутер):
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (Discovery Channel Bulgaria)
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (0000:03F8 unknown)
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 0] CAID: 5581 ECM_PID: 0D51 PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 1] CAID: 5501 ECM_PID: 0C89 PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: [ADD PID 2] CAID: 0604 ECM_PID: 0CED PROVID: 000000
2011/08/12 14:12:18 5CDB10 c dvbapi: new program number: 03F8 (Discovery Channel Bulgaria)
2011/08/12 14:12:19 5CDB10 c localuser (5581&000000/03F8/4F:B998): rejected group (1 ms) (of 0 avail 0) (no matching reader)
2011/08/12 14:12:19 5CDB10 c localuser (5501&000000/03F8/3E:DCBA): rejected group (1 ms) (of 0 avail 0) (no matching reader)
2011/08/12 14:12:19 5CDB10 c dvbapi: Found 2 IRDETO ECM CHIDs
2011/08/12 14:12:19 5CDB10 c dvbapi: Start descrambling PID #2 (CAID: 0604) 1
2011/08/12 14:12:19 5CDB10 c localuser (0604&000000/03F8/34:1C36): cache1 (0 ms) by fausto (of 1 avail 1)
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 0] CAID: 5581 ECM_PID: 0D51 PROVID: 000000
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 1] CAID: 5501 ECM_PID: 0C89 PROVID: 000000
2011/08/12 14:12:23 5CDB10 c dvbapi: [ADD PID 2] CAID: 0604 ECM_PID: 0CED PROVID: 000000