[HOW-TO] TVheadend — видеомагнитофон для IPTV
Предлагаю инструкцию по использованию Tvheadend — стриминг-сервера, поддерживающего IPTV и аналоговые (V4L) тюнеры в качестве источника сигнала. Сервер умеет автоматизированно «засасывать» обновление телепрограммы и вести запись эфира по расписанию, причём может выбирать программы для записи по ключевым словам, записывать несколько программ одновременно, а по окончанию записи перекладывать их в папки вашего UPnP/DLNA-сервера, раскладывая по тематическим папкам, присваивая файлам человеческие имена. Вечером вам будет достаточно взять в руки пульт и включить телевизор, об остальном Tvheadend уже позаботился
Из недостатков Tvheadend — потребление заметного объёма памяти.
1. Установите и запустите Tvheadend. После перезагрузки роутера он будет стартовать автоматически:
Code:
opkg install tvheadend
/opt/etc/init.d/S71tvheadend start
В стартовом скрипте S71tvheadend указаны учётные данные, с которыми стартует Tvheadend. Указанные по умолчанию пользователь/группа admin/root годятся для заводской, мерлиновской и энтузиасткой прошивок.
2. Выберете список каналов, которые будут источником ТВ-программы.
В дистрибутив включен граббер программы с сайта teleguide.info. Всю ТВ-программу с анонсами для более чем трёхста каналов tvheadend «прожевать» не сможет, поэтому надо ограничится тем, что у вас по IPTV вещается. Необходимо занести в файлик /opt/etc/tv_grab_wl500g_info.cfg перечень номеров желаемых каналов, по одному на каждую строчку. В варианте по умолчанию там указаны «Первый канал» и «Россия 1». Номера каналов можно посмотреть с помощью команды
Code:
tv_grab_wl500g_info --configure
В принципе, число грабберов ТВ-программ ничем не ограничено, вы можете поискать в сети те, что отражают ваш эфир и ваш часовой пояс. Или использовать граббер tv_grab_wl500g_info_toffset из состава пакета, который учитывает пересчёт времени в указанный вами часовой пояс.
Вся остальная настройка Tvheadend ведётся в web-интерфейсе, доступном по адресу 192.168.0.1:9981, где 192.168.0.1 — ip-адрес роутера.
3. Укажите Tvheadend использовать граббер ТВ-программы.
Для чего зайдите в web-интерфейсе в пункт «Configuration > EPG Grabber», в выпадающем списке «Module:» выберите едиственный пункт «XMLTV: teleguide.info grabber by wl500g.info community» и нажмите кн. «Save Configuration». Признаком нормальной работы граббера будут строки в области лога web-интерфейса:
Code:
февр. 15 12:55:42 /opt/bin/tv_grab_wl500g_info: grab /opt/bin/tv_grab_wl500g_info
февр. 15 12:55:53 /opt/bin/tv_grab_wl500g_info: grab took 11 seconds
4. Укажите транслируемые у вас IPTV-каналы.
Необходимо заполучить список каналов у провайдера. Вот, для примера, фрагмент плей-листа моего провайдера:
Code:
#EXTINF:-1 tvg-name="Первый_канал",Первый Канал
udp://@233.67.0.101:5510
В Tvheadend каналы заносятся на страничке «Configuration > IPTV». Нажмите кн. «Add service» и заполните все поля строки:
- Channel name: Первый канал — имя канала,
- Interface: eth0 — имя сетевого интерфейса, на который принимается вещание. eth0 — для фирменной прошивки или мерлиновского мода, vlan1 — для энтузиасткой,
- Group: 233.67.0.101 — адрес вещания канала (см. фрагмент плей-листа выше), вводите вместо написанный в поле «::»,
- UDP Port: 5510 — порт.
Не забудьте нажать кн. «Save changes». Шаг необходимо повторить для других каналов, в которых вы заинтересованы.
5. «Свяжите» ТВ-программу с введёнными каналами.
Tvheadend сделает это автоматически, если введённые вами имена каналов совпадут с названиями каналов ТВ-программы. Перейдите на закладку «Configuration > Channels» и выберите правильные значения для каждого канала в поле «EPG Grab Source» и не забудьте сохранить изменения кн. «Save changes».
С этого момента TVheadend будет с указанной периодичностью обновлять ТВ-программу (раз в 12 часов по умолчанию). Для того, чтобы его в первый раз поторопить необходимо снова зайти на закладку «Configuration > EPG Grabber» и передёрнуть значение «Module», вначале выбрав «Disabled» с последующим нажатием на кнопку «Save Configuration», затем снова выбрав «XMLTV: teleguide.info grabber by wl500g.info community» с последующим нажатием на кнопку «Save Configuration». Признаком того, что всё идёт как надо будет запись лога о том, что импортировано отличное от нуля кол-во записей тв-программы:
Code:
февр. 15 12:58:27 /opt/bin/tv_grab_wl500g_info: episodes tot= 57 new= 57 mod= 57
февр. 15 12:58:27 /opt/bin/tv_grab_wl500g_info: broadcasts tot= 57 new= 57 mod= 57
6. Настройте профили записи ТВ-программ.
Перейдите на закладку «Configuration > Digital Video Recorder», и, как минимум, измените в профиле по умолчанию (Default) место записи ТВ-программ, указав вместо «/root» путь к папке на внешнем USB-носителе. Там же можете задать для разных профилей различные места сохранения и имена записей и задать «зазор» в минутах, на какое время раньше надо начать запись программы в отличие от времени, указанного в ТВ-программе, и на сколько минут позже, чем указанно в программе, закончить.
7. Всё!
Переходите на закладку «Electronic Program Guide», отфильтровывайте желаемые программы и создавайте правила для записи! Перечень имеющихся задач записи можно увидеть и отредактировать на закладке «Digital Video Recorder».

Тех, кто будет использует Tvheadend в качестве стриминг-сервера порадует ф-ция Time shifting'а в пакете последней версии.
Спасибо тов. macek, Dext и gSpot за участие!