PDA

Bekijk de volledige versie : [HOW-TO] TVheadend - видеомагнитофон для IPTV на роутере



ryzhov_al
15-06-2011, 01:39
[HOW-TO] TVheadend — видеомагнитофон для IPTV

Предлагаю инструкцию по использованию Tvheadend (https://www.lonelycoder.com/redmine/projects/tvheadend) — стриминг-сервера, поддерживающего IPTV и аналоговые (V4L) тюнеры в качестве источника сигнала. Сервер умеет автоматизированно «засасывать» обновление телепрограммы и вести запись эфира по расписанию, причём может выбирать программы для записи по ключевым словам, записывать несколько программ одновременно, а по окончанию записи перекладывать их в папки вашего UPnP/DLNA-сервера, раскладывая по тематическим папкам, присваивая файлам человеческие имена. Вечером вам будет достаточно взять в руки пульт и включить телевизор, об остальном Tvheadend уже позаботился:)

Из недостатков Tvheadend — потребление заметного объёма памяти.

1. Установите и запустите Tvheadend. После перезагрузки роутера он будет стартовать автоматически:

opkg install tvheadend
/opt/etc/init.d/S71tvheadend start
В стартовом скрипте S71tvheadend указаны учётные данные, с которыми стартует Tvheadend. Указанные по умолчанию пользователь/группа admin/root годятся для заводской, мерлиновской и энтузиасткой прошивок.

2. Выберете список каналов, которые будут источником ТВ-программы.
В дистрибутив включен граббер программы с сайта teleguide.info (http://www.teleguide.info/). Всю ТВ-программу с анонсами для более чем трёхста каналов tvheadend «прожевать» не сможет (http://wl500g.info/showthread.php?27065&p=258309#post258309), поэтому надо ограничится тем, что у вас по IPTV вещается. Необходимо занести в файлик /opt/etc/tv_grab_wl500g_info.cfg перечень номеров желаемых каналов, по одному на каждую строчку. В варианте по умолчанию там указаны «Первый канал» и «Россия 1». Номера каналов можно посмотреть с помощью команды

tv_grab_wl500g_info --configure
В принципе, число грабберов ТВ-программ ничем не ограничено, вы можете поискать в сети те, что отражают ваш эфир и ваш часовой пояс. Или использовать (http://wl500g.info/showthread.php?27065&p=258374#post258374) граббер 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-интерфейса:

февр. 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-каналы.
Необходимо заполучить список каналов у провайдера. Вот, для примера, фрагмент плей-листа моего провайдера:

#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». Признаком того, что всё идёт как надо будет запись лога о том, что импортировано отличное от нуля кол-во записей тв-программы:

февр. 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».
http://s61.radikal.ru/i173/1302/b6/4377ba6973cd.png

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

macek
17-06-2011, 14:08
Уважаемые, а пробовал ли кто собрать TVheadend Олеговской прошивке?

ryzhov_al
17-06-2011, 14:28
Вряд ли. Цитирую (http://www.lonelycoder.com/hts/tvheadend_overview.html):

Tvheadend is a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources.
DVB-источники скорее всего потребуют непосильного для роутера перекодирования потока (в зависимостях вижу (https://www.lonelycoder.com/redmine/projects/tvheadend/wiki/Tvheadend_debian) FFmpeg). А для стриминга IPTV можно использовать легковесный pshare (http://www.wl500g.info/showthread.php?t=26630).

macek
17-06-2011, 14:40
А XBMC с ним будет дружить?

macek
17-06-2011, 14:47
Вряд ли. Цитирую (http://www.lonelycoder.com/hts/tvheadend_overview.html):

DVB-источники скорее всего потребуют непосильного для роутера перекодирования потока (в зависимостях вижу (https://www.lonelycoder.com/redmine/projects/tvheadend/wiki/Tvheadend_debian) FFmpeg). А для стриминга IPTV можно использовать легковесный pshare (http://www.wl500g.info/showthread.php?t=26630).

вот если бы его обрезать и оставить только IPTV+EPG, цены бы не было :)

LnrMn
17-06-2011, 16:33
вот если бы его обрезать и оставить только IPTV+EPG, цены бы не было :)

А как вы себе это представляете??
У роутера нет ни одного устройства ввода/вывода TV.
Ну, положим, на входе поток IPTV, а на выходе что? Только такой же IP поток. И где преимущества?

Я пользую UDPproxy.. Вполне устраивает. Плеер O!Play.

Может в теме O!Play этот вопрос поднять? Посоветоваться с FarVoice ?

macek
18-06-2011, 14:12
А как вы себе это представляете??
У роутера нет ни одного устройства ввода/вывода TV.
Ну, положим, на входе поток IPTV, а на выходе что? Только такой же IP поток. И где преимущества?

Я пользую UDPproxy.. Вполне устраивает. Плеер O!Play.

Может в теме O!Play этот вопрос поднять? Посоветоваться с FarVoice ?

На выходе - HTSP поток, плюс EPG, плюс PVR. Изящное было бы решение для XBMC-боксов. Включил HTS plugin, прописал IP роутера и пользуйся.

UDProxy идеален для O!Play, но в XBMC пользоваться достаточно геморно. Хотя, может есть в природе какой-нить удобный ТВ-плугин, с удобной навигацией, который бы принимал источники UDPxy?

ryzhov_al
27-10-2011, 12:11
На выходе - HTSP поток, плюс EPG, плюс PVR. Изящное было бы решение для XBMC-боксов. Включил HTS plugin, прописал IP роутера и пользуйся.Забыл написать про результаты наших с тов.macek'ом безуспешных попыток порта TVheadend под нашу прошивку. При исключении из кода механизма epoll TVHeadend переставал работать. Он компилируется, стартует и даже пишет о своих телодвижениях в собственный лог, но при этом не отвечает на внешние раздражители.

Попытки приостановлены как минимум до обновления репозитория (http://www.wl500g.info/showthread.php?t=28036).

AlexeyS
27-10-2011, 14:13
При исключении из кода механизма epoll TVHeadend переставал работать.

А зачем epool исключали? Помнится lly делал бэкпорт epool под нашу прошивку...

lly
27-10-2011, 14:16
А зачем epool исключали? Помнится lly делал бэкпорт epool под нашу прошивку...
ryzhov_al собирает под Optware, а там... шаром покати.

ryzhov_al
06-01-2012, 09:50
На выходе - HTSP поток, плюс EPG, плюс PVR. Изящное было бы решение для XBMC-боксов. Включил HTS plugin, прописал IP роутера и пользуйся.Забыл написать про результаты наших с тов.macek'ом безуспешных попыток порта TVheadend под нашу прошивку...
tvheadend побеждён и находится в репозитории OpenWRT.
Как залить в него каналы XML-TV сходу не разобрался, пакет требует дополнительного тестирования.

$ opkg install http://wl500g-repo.googlecode.com/svn/ipkg/openwrt-dev/tvheadend_2.12.99-1_rtn.ipk

ЗЫ Актуализировал инструкцию в первом посте темы.

Dext
10-02-2013, 12:38
Раньше в репозитории был tvheadend, потом почему-то убрали. Можно его опять добавить? Или отдельно скачать?

ryzhov_al
11-02-2013, 11:04
Раньше в репозитории был tvheadend, потом почему-то убрали. Можно его опять добавить? Или отдельно скачать?Частично причина описана здесь (http://wl500g.info/showthread.php?26630-IPTV-%F7%E5%F0%E5%E7-UPNP-DNLA-%F1%E5%F0%E2%E5%F0-(pshare-amp-xupnpd)&p=239826#post239826).
Это первое проявление интереса к пакету за прошедшие полтора года с того момента как мы с тов. macek (https://plus.google.com/113637053262322768866/posts)'ом его пытались привести к рабочему состоянию. По понятным причинам из него выпилена поддержка DVB, так что вся польза от tvheadend сводилась к мифическому XML-TV, которого ныне не сыскать. Зачем он такой красивый нужен?

У меня всё ещё не выходит из головы идея по использованию DVB (спутникового) или DVB-T2 (эфирного) USB-приёмника как UPnP-источника для медиа-плеера. Ещё не понятно надо ли при этом какое-либо транскодирование, да и попытки приручить DVB-T2-тюнеры в большом линуксе пока в зачаточном состоянии.

Dext
11-02-2013, 11:49
Частично причина описана здесь (http://wl500g.info/showthread.php?26630-IPTV-%F7%E5%F0%E5%E7-UPNP-DNLA-%F1%E5%F0%E2%E5%F0-(pshare-amp-xupnpd)&p=239826#post239826).
Это первое проявление интереса к пакету за прошедшие полтора года с того момента как мы с тов. macek (https://plus.google.com/113637053262322768866/posts)'ом его пытались привести к рабочему состоянию. По понятным причинам из него выпилена поддержка DVB, так что вся польза от tvheadend сводилась к мифическому XML-TV, которого ныне не сыскать. Зачем он такой красивый нужен?
Tvheadend это не только DVB но и IPTV. Я пользую неттоп с установленной Openelec, IPTV смотрю с помощью клиента tvheadend. Сам tvheadend крутится на том же неттопе. Хочется tvheadend переместить на роутер (rt-n16). Зачем? Роутер работает 24 часа в сутки, а неттоп я выключаю, когда не использую. Бывает (довольно часто) ставлю какую-нибудь передачу на запись и потом забыв выключаю неттоп. Передача не записывается. Также появилась бы возможность включать запись телепрограммы удаленно.
Мифический XMLTV - это файл телепрограммы, который свободно можно взять например на teleguide.info

ryzhov_al
11-02-2013, 11:55
Tvheadend это не только DVB но и IPTVТогда возьмите пакет из архива (http://demongloom.dyndns.info:81/entware/) ув.тов.DemonGloom'а. Если по результатам тестирования он будет признан сколь-нибудь полезным, то я восстановлю его в репозитории.

Dext
11-02-2013, 13:20
Тогда возьмите пакет из архива (http://demongloom.dyndns.info:81/entware/) ув.тов.DemonGloom'а. Если по результатам тестирования он будет признан сколь-нибудь полезным, то я восстановлю его в репозитории.
Поставил, запустил, пробую открыть вэб морду просит логин и пароль. Пробывал всякие типа admin и root - не идет, также не могу найти его конфиги. Может что подскажите?

upd1: C логином и паролем проблему решил - нужно запустить с ключем -С. Веб морда работает!!! Тестирую дальше...

upd2: Работает!!! Спасибо огромное, до последнего сомневался в этой затее. При воспроизведении и записи нагрузка на проц минимальная. Не могу разобраться куда ложить конфиги. Осталось все настроить и вот оно, счастье...

upd3: C конфигами разобрался - нужно запускать с ключем -с /папка с конфигами/

Может много прошу, но не могли бы вы скомпилировать более свежую версию tvheadend?

ryzhov_al
11-02-2013, 13:24
Может много прошу, но не могли бы вы скомпилировать более свежую версию tvheadend?Пробовал, сходу не вышло: в новых версиях пошли «завязки» на ф-ции, которые в нашем ядре k2.6.22.19 отсутствуют. Посмотрю в будущем подробнее.

Пожалуйста, опишите минимальный набор телодвижений для того, чтобы на tvheadend «взлетело» IPTV.

Dext
11-02-2013, 13:33
Пробовал, сходу не вышло: в новых версиях пошли «завязки» на ф-ции, которые в нашем ядре k2.6.22.19 отсутствуют. Посмотрю в будущем подробнее.

Пожалуйста, опишите минимальный набор телодвижений для того, чтобы на tvheadend «взлетело» IPTV.
Открываете веб морду по адресу ваш роутер:9981 переходите на вкладку configuration, далее IPTV, жмете add servise. Chanell name - имя,
interface - внешний интерфеис (у меня vlan2), group - адрес потока, udp port - порт. Сохраняете. Так для каждого канала.

В последней версии добавили таймшифт, может из-за этого не получается сходу. Версия 3.2.18 - последний стабильный релиз без таймшифта, может его получится.

ryzhov_al
11-02-2013, 14:22
А запись как? Работает?

Dext
11-02-2013, 14:28
А запись как? Работает?
Отлично работает, попробовал несколько каналов одновременно - 3 канала пишет, при включении записи четвертого вылетает.

ryzhov_al
11-02-2013, 14:29
Отлично работает, попробовал несколько каналов одновременно - 3 канала пишет, при включении записи четвертого вылетает.На роутере?! Тогда это первый видеорекордер для наших роутеров.

Dext
11-02-2013, 14:46
На роутере?! Тогда это первый видеорекордер для наших роутеров.
Честно говоря сам очень сомневался, что будет работать.

gSpot
11-02-2013, 16:47
На роутере?! Тогда это первый видеорекордер для наших роутеров.
А как же udpxy/udpxrec? Он же был первым рекордером для iptv в наших "белых коробках", причём без репозиториев и пакетов, прямо из прошивки.
Уже, можно сказать, много лет :) прекрасно работает и исправно пишет на usb хард. Пару SD-каналов параллельно на WL-500gp пишу весьма успешно...

http://wl500g.info/showthread.php?17805-%C7%E0%EF%E8%F1%FC-IPTV-%F7%E5%F0%E5%E7-udpxrec&p=227492#post227492
http://wl500g.info/showthread.php?p=86747#post86747

ryzhov_al
11-02-2013, 20:16
А как же udpxy/udpxrec?Я и не знал об этом. Обязательно нам добавлю.


Отлично работает, попробовал несколько каналов одновременно - 3 канала пишет, при включении записи четвертого вылетает.Попробовал сам, приятно удивился: tvheadend записал отрезок IPTV-трансляции в MKV-файл, причём не сказать, что при этом сильно грузил роутер. Восстановил пакет в репозитории, разрешил V4L-тюнеры, завтра закомитчу патч для того, чтобы xmltv grabber'ы искались по путям /opt/{bin,sbin}. Можно будет отфильтровывать в web-интерфейсе нужные ТВ-программы и отмечать их галками для записи.

ЗЫ Полную ТВ-программу на неделю для www.teleguide.info (335 каналов, 23Мб) tvheadend «сварить» не может из-за недостатка памяти, хорошо бы найти более компактный файл ТВ-программы для России.

AndreyUA
11-02-2013, 21:57
ЗЫ Полную ТВ-программу на неделю для www.teleguide.info (335 каналов, 23Мб) tvheadend «сварить» не может из-за недостатка памяти, хорошо бы найти более компактный файл ТВ-программы для России.Вот это не пойдет http://linux-sat.tv/epg/tvprogram_ua_ru.gz в формате xmltv? Вот тут можно посмотреть http://linux-sat.tv/ и тут https://github.com/E2OpenPlugins/e2openplugin-CrossEPG в исходниках ссылки посмотреть.

Dext
12-02-2013, 01:09
ЗЫ Полную ТВ-программу на неделю для www.teleguide.info (335 каналов, 23Мб) tvheadend «сварить» не может из-за недостатка памяти, хорошо бы найти более компактный файл ТВ-программы для России.
Есть замечательная программа КИТ (http://pctuner.ru/forums-m-posts-q-9228.html), с помощью которой можно создавать свой xmltv только с нужными каналами.

PS На HD каналах нет звуковой дорожки, что при записи, что при просмотре. Интересно почему? Может версия слишком старая?

PSPS До этого пробывал запись каналов на ntfs - максимум три одновременных потока, при этом роутер загружен на столько, что перестает отвечать на внешние раздражители. Сейчас попробывал на ext3 - пять спокойно пишется, при этом загрузка цп не более 50%. Думаю и больше сможет, пробывать не стал т.к. у меня раздел с ext3 не большой.

skuwakin
12-02-2013, 08:15
да, хорошо бы вот это дожать http://wl500g.info/showthread.php?17805-%C7%E0%EF%E8%F1%FC-IPTV-%F7%E5%F0%E5%E7-udpxrec&p=227975#post227975

а так пользуюсь иногда вот этим - http://wl500g.info/showthread.php?17805-%C7%E0%EF%E8%F1%FC-IPTV-%F7%E5%F0%E5%E7-udpxrec&p=99893#post99893

работает, правда есть одно неудобство, в имени файла с записью нет имени канала. А поправить быстро не получилось, надо копаться...

http://wl500g.info/attachment.php?attachmentid=7837&stc=1&d=1300911308

ryzhov_al
12-02-2013, 09:35
работает, правда есть одно неудобство, в имени файла с записью нет имени канала. А поправить быстро не получилось, надо копаться...В tvheadend с этим проблем нет, файлы записей можно именовать как вручную, так и автоматизированно, по ТВ-программе:

http://s56.radikal.ru/i152/1302/f8/bfc3b56a4d5bt.jpg (http://radikal.ru/F/s56.radikal.ru/i152/1302/f8/bfc3b56a4d5b.png.html)


А как же udpxy/udpxrec? Он же был первым рекордером для iptv в наших "белых коробках", причём без репозиториев и пакетов, прямо из прошивки.Добавил.


Может много прошу, но не могли бы вы скомпилировать более свежую версию tvheadend?Насчёт завязок на новое ядро наврал, там другие ошибки. Позже посмотрю можно ли обновить пакет.

«Проверил» поддержку V4L-девайсов: при старте tvheadend «обнюхал» мою UVC-камеру и не обнаружив на ней mpeg-энкодера, выдал в лог сообщение об её игнорировании.


Есть замечательная программа КИТ (http://pctuner.ru/forums-m-posts-q-9228.html), с помощью которой можно создавать свой xmltv только с нужными каналами.Отлично! Я, в свою очередь, сделал так, чтобы грабберы искались в привычных для нас папках, всё работает:

http://s61.radikal.ru/i173/1302/b6/4377ba6973cdt.jpg (http://radikal.ru/F/s61.radikal.ru/i173/1302/b6/4377ba6973cd.png.html)

Мне пришлось выгрузить файл xmltv-файл из КИТа и подложить под граббер (http://code.google.com/p/tv-grab-file/source/browse/trunk/tv_grab_file). Всё! У нас DVR с полноценным EPG. Для того, чтобы ассоциировать ТВ-программу с IPTV-каналом только пришлось добавить «связку» на закладке Channels.

Кроме того, подправил стартовый скрипт, т.к. без явного указания user\group tvheadend пытается налету создать свои учётные данные, которым не хватит прав ни на запись программ, ни на сохранение собственных конфигов.

Dext
12-02-2013, 11:58
Отлично! Я, в свою очередь, сделал так, чтобы грабберы искались в привычных для нас папках, всё работает:
Что-то не получается заставить увидеть граббер. Если запускать просто командой (tvheadend), то запускается с настройками по умолчанию, в вебморду не пускает. Если через скрипт (/opt/etc/init.d/S71tvheadend start), то в вебморду пускает но настройки из папки /opt/etc/tvheadend не берет и граббер не видит. Если запускать с командой -с /конфиги, то работает как и раньше, граббер не видит. Что делаю не так?

ryzhov_al
12-02-2013, 12:06
Что делаю не так?
граббер увидит только актуальный бинарник из репозитория, предыдущие версии не смогут его найти,
конкретно этот граббер написан на bash'е, поэтому его необходимо доустановить и после чего убедиться в работоспособности граббера из командной строки.

Кстати, не забудьте изменить /usr/bin/bash на /opt/bin/bash в первой строчке скрипта. Вот (http://pastebin.com/DvpRuE4z) мой вариант.

Dext
12-02-2013, 12:43
граббер увидит только актуальный бинарник из репозитория, предыдущие версии не смогут его найти,
конкретно этот граббер написан на bash'е, поэтому его необходимо доустановить и после чего убедиться в работоспособности граббера из командной строки.

Кстати, не забудьте изменить /usr/bin/bash на /opt/bin/bash в первой строчке скрипта. Вот (http://pastebin.com/DvpRuE4z) мой вариант.

Да я уже раз пять переустанавливал tvheadend, не видит и все. Из командной строки граббер работает.

upd Все, заработало... Что изменил сам не понял, но работает. Ура!!!

Да наверное как всегда какую-то мелочь упустил. Сделал все с нуля и заработало. Спасибо.

ryzhov_al
12-02-2013, 12:51
Dext, нечистой силы не бывает, если не работает, то есть причина: корявые права при запуске tvheadend, отсутствие исполняемого атрибута у файла граббера, нахождение граббера за пределами папок /opt/{,s}bin и пр. Когда граббер «подхватится», то он станет доступен в выпадающем списке на закладке XMLTV.

skuwakin
12-02-2013, 14:56
эх, а хорошо бы инструкцию по шагам, как, чего и куда.. Чтобы не путаться. Темка интересная и полезная, наверняка заинтересует многих.

gSpot
12-02-2013, 15:57
да, хорошо бы вот это дожать http://wl500g.info/showthread.php?17805-%C7%E0%EF%E8%F1%FC-IPTV-%F7%E5%F0%E5%E7-udpxrec&p=227975#post227975
Я совсем забыл про ту тему... Честно говоря, не увидел тогда особого спроса. Вообще, идея была в создании веб-морды для рекордера на базе udpxy и wget (или udpxrec), средствами утилит доступных исключительно в самой прошивке, без зависимостей и дополнительных пакетов (в прошивке есть всё необходимое: udpxy, веб-сервер busybox_httpd, текстовые процессоры(awk, sed) для реализации webui, шедулер busybox_cron, wget). Сейчас это уже не имеет смысла при наличии tvheadend, хотя для собственных нужд из udpxy получился вполне приличный рекордер с webui и EPG... Эх, если б три года назад был tvheadend в optware, я бы и заморачиваться не стал.



ЗЫ Полную ТВ-программу на неделю для www.teleguide.info (335 каналов, 23Мб) tvheadend «сварить» не может из-за недостатка памяти, хорошо бы найти более компактный файл ТВ-программы для России.
Кстати, на моём древнем WL-500gp парсер xmltv на sed и awk (вытаскивающий из файла xmltv передачи определённых каналов по xmltv-id и преобразующий их в формат json) прекрасно справляется с xmltv-файлом от teleguide.info. Выполняет обработку программы для ≈40 каналов где-то минут за 20. Это с учётом обработки тэгов описания и категории передачи.http://i51.fastpic.ru/big/2013/0212/fc/dff1f374f6d167d1f36732f13d4e0afc.jpg ("Кстати, на моём древнем WL-500gp парсер xmltv на sed и awk (вытаскивающий из файла xmltv передачи определённых каналов по xmltv-id и преобразующий их в формат json) прекрасно справляется с xmltv-файлом от teleguide.info. Выполняет обработку программы для 40 каналов где-то минут за 20. Это с учётом обработки тэгов описания и категории передачи [URL) .

ryzhov_al
13-02-2013, 11:45
Кстати, на моём древнем WL-500gp парсер xmltv на sed и awk (вытаскивающий из файла xmltv передачи определённых каналов по xmltv-id и преобразующий их в формат json) прекрасно справляется с xmltv-файлом от teleguide.info. Выполняет обработку программы для ≈40 каналов где-то минут за 20.Если найдёте время сделать фильтр, отсеивающий из пакета teleguide только требуемый перечень каналов с программой, то я, в свою очередь, напишу пошаговый HOW-TO для tvheadend. Даже включу граббер в состав пакета для упрощения использования.

AndreyUA
13-02-2013, 11:54
Если найдёте время сделать фильтр, отсеивающий из пакета teleguide только требуемый перечень каналов с программой, то я, в свою очередь, напишу пошаговый HOW-TO для tvheadend. Даже включу граббер в состав пакета для упрощения использования.
Попробуй пока прикрутить отсюда http://linux-sat.tv/index.php/board,66.0.html файлик с xmltv. Там программа с русскоязычных каналов. Для большинства каналов достаточно
http://linux-sat.tv/epg/tvprogram_ua_ru.gz

Dext
13-02-2013, 13:22
Попробуй пока прикрутить отсюда http://linux-sat.tv/index.php/board,66.0.html файлик с xmltv. Там программа с русскоязычных каналов. Для большинства каналов достаточно
http://linux-sat.tv/epg/tvprogram_ua_ru.gz
По вашей ссылке файл телепрограммы в два раза больше весит, чем с teleguide. Какой смысл?

PS мой rt-n16 меньше чем за минуту переваривает программу с teleguide, правда памяти при этом начинает кушать под 80 мб

С портированием новой версии есть подвижки?

ryzhov_al
13-02-2013, 13:33
С портированием новой версии есть подвижки?Предлагаю сделать готовое рабочее легкоиспользуемое решение, тем более что все составные части для этого уже есть. Затем уже подумаем над обновлением.

Dext
13-02-2013, 13:41
Предлагаю сделать готовое рабочее легкоиспользуемое решение, тем более что все составные части для этого уже есть. Затем уже подумаем над обновлением.
Напрягает меня просто, что на HD каналах звука нет, у меня их 23, многие часто используемые. Ладно, будем ждать.

ryzhov_al
13-02-2013, 15:37
Напрягает меня просто, что на HD каналах звука нет, у меня их 23, многие часто используемые. Ладно, будем ждать.Ждать кого? Девелоперов OpenWRT? Для того, чтобы привести tvheadend в работоспособный вид мне пришлось понизить (http://code.google.com/p/wl500g-repo/source/detail?r=1118) версию с 3.2 до нашей работоспособной 2.12.99.

Правильно ли я понимаю, что желания допилить граббер нет? Тогда жаль, я не владею sed и awk на требуемом уровне.

AndreyUA
13-02-2013, 16:19
По вашей ссылке файл телепрограммы в два раза больше весит, чем с teleguide. Какой смысл?

PS мой rt-n16 меньше чем за минуту переваривает программу с teleguide, правда памяти при этом начинает кушать под 80 мбДа, действительно, не обратил внимания, прошу прощения. Я использую тв программу оттуда для энигмы, там файл размером 7 МБ.

gSpot
13-02-2013, 16:29
Если найдёте время сделать фильтр, отсеивающий из пакета teleguide только требуемый перечень каналов с программой, то я, в свою очередь, напишу пошаговый HOW-TO для tvheadend. Даже включу граббер в состав пакета для упрощения использования.
Боюсь, что мой парсер не подойдёт для tvh, ибо преобразует xmltv в json. У меня, так сказать, своя система записи на основе udpxy и EPG именно на json, а tvh требует xmltv на выходе парсера. В любом случае, парсер будет требовать ручной настройки списка id каналов из программы xmltv. Т.е юзеру придётся открывать текстовым редактором файл xmltv и выписавать в список id каналов.
Щас набросал пример tv_grab_ru для teleguide.info с простой "дробилкой" для xmltv на sed (пути к файлам в начале скрипта правьте по своему усмотрению):


#/bin/sh


IDLIST="/opt/etc/idlist"
XMLTV_FILE="/opt/tmp/xmltv"

XMLTV_SRC="http://www.teleguide.info/download/new3/xmltv.xml.gz"

SEDCMD="/bin/sed"
WGETCMD="/usr/bin/wget"
GZIPCMD="/bin/gunzip"


$WGETCMD -q -O ${XMLTV_FILE}.gz $XMLTV_SRC && $GZIPCMD -f $XMLTV_FILE && rm -f ${XMLTV_FILE}.gz


[ -e "$XMLTV_FILE" ] || exit 1;


printf "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE tv SYSTEM \"xmltv.dtd\">\n<tv>\n"

while read chanid
do

$SEDCMD -n -e "
/id=\"${chanid}\"/,/<\/channel\>/p
/channel=\"${chanid}\"/,/programme\>/{
/<[/]\{0,1\}programme/{
p
b end
}
/<[/]\{0,1\}title/{
p
b end
}
b end
}
:end
" $XMLTV_FILE

done < $IDLIST

printf "</tv>\n"

rm -f $XMLTV_FILE


exit 0;

Файл /opt/etc/idlist должен содержать xmltv-id необходимых каналов из файла xmltv, по одному на строку, например с teleguide.info (Первый, Россия, НТВ, 2х2, РБК):


1
2
4
276
326

Попробуйте. Я протестировать на роутере немогу сейчас, да и tvh я врядли буду пользоваться. Тяжеловат он для моего WL-500gp.

ryzhov_al
13-02-2013, 18:52
Щас набросал пример tv_grab_ru для teleguide.info с простой "дробилкой" для xmltv на sed (пути к файлам в начале скрипта правьте по своему усмотрению):Отлично! Всё работает как ожидается.
Включаю (http://code.google.com/p/wl500g-repo/source/detail?r=1123) граббер в репозиторий, с его помощью настройка tvheadend упрощается до предела. Завтра обновлю бинарники и напишу HOW-TO.

ryzhov_al
14-02-2013, 09:10
Предлагаю инструкцию по использованию Tvheadend (https://www.lonelycoder.com/redmine/projects/tvheadend) — стриминг-сервера, поддерживающего IPTV и аналоговые (V4L) тюнеры в качестве источника сигнала. Сервер умеет автоматизированно «засасывать» обновление телепрограммы и вести запись эфира по расписанию, причём может выбирать программы для записи по ключевым словам, записывать несколько программ одновременно, а по окончанию записи перекладывать их в папки вашего UPnP/DLNA-сервера, раскладывая по тематическим папкам, присваивая файлам человеческие имена. Вечером вам будет достаточно взять в руки пульт и включить телевизор, об остальном Tvheadend уже позаботился:)

Из недостатков Tvheadend — потребление заметного объёма памяти и запись HDTV-каналов без звука.

1. Установите и запустите Tvheadend. После перезагрузки роутера он будет стартовать автоматически:

opkg install tvheadend
/opt/etc/init.d/S71tvheadend start
В стартовом скрипте S71tvheadend указаны учётные данные, с которыми стартует Tvheadend. Указанные по умолчанию пользователь/группа admin/root годятся для заводской, мерлиновской и энтузиасткой прошивок.

2. Выберете список каналов, которые будут источником ТВ-программы.
В дистрибутив включен граббер программы с сайта teleguide.info (http://www.teleguide.info/). Всю ТВ-программу с анонсами для более чем трёхста каналов tvheadend «прожевать» не сможет, поэтому надо ограничится тем, что у вас по IPTV вещается. Необходимо занести в файлик /opt/etc/tv_grab_wl500g_info.cfg перечень номеров желаемых каналов, по одному на каждую строчку. В варианте по умолчанию там указаны «Первый канал» и «Россия 1». Номера каналов можно посмотреть с помощью команды

tv_grab_wl500g_info --configure
В принципе, число грабберов ТВ-программ ничем не ограничено, вы можете поискать в сети те, что отражают ваш эфир и ваш часовой пояс.
Вся остальная настройка Tvheadend ведётся в web-интерфейсе, доступном по адресу 192.168.0.1:9981, где 192.168.0.1 — ip-адрес роутера.

3. Укажите Tvheadend использовать граббер ТВ-программы.
Для чего зайдите в web-интерфейсе в пункт «Configuration > XML TV», в выпадающем списке «XML-TV Source:» выберите едиственный пункт «teleguide.info grabber by wl500g.info community» и нажмите кн. «Save Configuration». Признаком нормальной работы граббера будут строки в области лога web-интерфейса:

Feb 14 12:41:02 xmltv: Grabbing "teleguide.info grabber by wl500g.info community" using command "/opt/bin/tv_grab_wl500g_info"
Feb 14 12:41:13 xmltv: /opt/bin/tv_grab_wl500g_info: Parsing completed. XML contained 2 channels, 368 events, 0 new events injected in EPG

4. Укажите транслируемые у вас IPTV-каналы.
Необходимо заполучить список каналов у провайдера. Вот, для примера, фрагмент плей-листа моего провайдера:

#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» и выберите правильные значения для каждого канала в поле «XMLTV source» и не забудьте сохранить изменения кн. «Save changes».
С этого момента TVheadend будет с указанной периодичностью обновлять ТВ-программу (раз в 12 часов по умолчанию). Для того, чтобы его в первый раз поторопить необходимо снова зайти на закладку «Configuration > XML TV» и нажать на кнопку «Save Configuration». Признаком того, что всё идёт как надо будет запись лога о том, что импортировано отличное от нуля кол-во записей тв-программы:

Feb 14 12:58:24 xmltv: Grabbing "teleguide.info grabber by wl500g.info community" using command "/opt/bin/tv_grab_wl500g_info"
Feb 14 12:58:34 xmltv: /opt/bin/tv_grab_wl500g_info: Parsing completed. XML contained 2 channels, 368 events, 85 new events injected in EPG

6. Настройте профили записи ТВ-программ.
Перейдите на закладку «Configuration > Digital Video Recorder», и, как минимум, измените в профиле по умолчанию (Default) место записи ТВ-программ, указав вместо «/root» путь к папке на внешнем USB-носителе. Там же можете задать для разных профилей различные места сохранения и имена записей и задать «зазор» в минутах, на какое время раньше надо начать запись программы в отличие от времени, указанного в ТВ-программе, и на сколько минут позже, чем указанно в программе, закончить.

7. Всё!
Переходите на закладку «Electronic Program Guide», отфильтровывайте желаемые программы и создавайте правила для записи! Перечень имеющихся задач записи можно увидеть и отредактировать на закладке «Digital Video Recorder».


В будущем посмотрю возможность обновления пакета. Спасибо тов. macek, Dext и gSpot за участие!

ryzhov_al
14-02-2013, 13:06
По ссылке — тестовый бинарник tvheadend, собранный из последних исходников со следующей конфигурацией:

<Update 13:20 Новая версия tvheadend уже в репозитории.>

Time shifting отключен по той причине, что в нашем GCC нет некоторых атомарных ф-ций:

mipsel-uclibc-gcc -o build.linux/tvheadend ./build.linux/src/main.o ./build.linux/src/utils.o ./build.linux/src/wrappers.o ./build.linux/src/version.o ./build.linux/src/access.o ./build.linux/src/dtable.o ./build.linux/src/tcp.o ./build.linux/src/http.o ./build.linux/src/notify.o ./build.linux/src/file.o ./build.linux/src/epg.o ./build.linux/src/epgdb.o ./build.linux/src/epggrab.o ./build.linux/src/spawn.o ./build.linux/src/packet.o ./build.linux/src/streaming.o ./build.linux/src/teletext.o ./build.linux/src/channels.o ./build.linux/src/subscriptions.o ./build.linux/src/service.o ./build.linux/src/psi.o ./build.linux/src/parsers.o ./build.linux/src/parser_h264.o ./build.linux/src/parser_latm.o ./build.linux/src/tsdemux.o ./build.linux/src/bitstream.o ./build.linux/src/htsp_server.o ./build.linux/src/serviceprobe.o ./build.linux/src/htsmsg.o ./build.linux/src/htsmsg_binary.o ./build.linux/src/htsmsg_json.o ./build.linux/src/htsmsg_xml.o ./build.linux/src/misc/dbl.o ./build.linux/src/misc/json.o ./build.linux/src/settings.o ./build.linux/src/htsbuf.o ./build.linux/src/trap.o ./build.linux/src/avg.o ./build.linux/src/htsstr.o ./build.linux/src/rawtsinput.o ./build.linux/src/iptv_input.o ./build.linux/src/avc.o ./build.linux/src/huffman.o ./build.linux/src/filebundle.o ./build.linux/src/config2.o ./build.linux/src/lang_codes.o ./build.linux/src/lang_str.o ./build.linux/src/imagecache.o ./build.linux/src/epggrab/module.o ./build.linux/src/epggrab/channel.o ./build.linux/src/epggrab/module/pyepg.o ./build.linux/src/epggrab/module/xmltv.o ./build.linux/src/plumbing/tsfix.o ./build.linux/src/plumbing/globalheaders.o ./build.linux/src/dvr/dvr_db.o ./build.linux/src/dvr/dvr_rec.o ./build.linux/src/dvr/dvr_autorec.o ./build.linux/src/webui/webui.o ./build.linux/src/webui/comet.o ./build.linux/src/webui/extjs.o ./build.linux/src/webui/simpleui.o ./build.linux/src/webui/statedump.o ./build.linux/src/webui/html.o ./build.linux/src/muxer.o ./build.linux/src/muxer/muxer_pass.o ./build.linux/src/muxer/muxer_tvh.o ./build.linux/src/muxer/tvh/ebml.o ./build.linux/src/muxer/tvh/mkmux.o ./build.linux/src/timeshift.o ./build.linux/src/timeshift/timeshift_filemgr.o ./build.linux/src/timeshift/timeshift_writer.o ./build.linux/src/timeshift/timeshift_reader.o ./build.linux/src/dvr/dvr_inotify.o ./build.linux/src/v4l.o ./build.linux/src/webui/extjs_v4l.o ./build.linux/bundle.o -O2 -pipe -mips32 -mtune=mips32 -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/include -I/opt/entware-toolchain/include -std=gnu99 -O2 -pipe -mips32 -mtune=mips32 -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -I/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/include -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations -Wmissing-prototypes -fms-extensions -g -funsigned-char -O2 -D_FILE_OFFSET_BITS=64 -I./build.linux -I/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src -I/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209 -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/lib -Wl,--dynamic-linker=/opt/lib/ld-uClibc.so.0 -Wl,-rpath,/opt/lib -Wl,-rpath-link=/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -L/opt/entware-toolchain/lib -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/lib -Wl,--dynamic-linker=/opt/lib/ld-uClibc.so.0 -Wl,-rpath,/opt/lib -Wl,-rpath-link=/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -L/opt/entware-toolchain/lib -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -lssl -lcrypto -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -lz -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -lavcodec -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -lavutil -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -lavformat -L/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib -lcurl -lrt -ldl -lpthread -lm
./build.linux/src/tcp.o: In function `tcp_connect':
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/tcp.c:59: warning: gethostbyname_r is obsolescent, use getnameinfo() instead.
/home/BuildRepo/openwrt_trunk/staging_dir/target-mipsel-linux-gnu/opt/lib/libcrypto.so: warning: gethostbyname is obsolescent, use getnameinfo() instead.
./build.linux/src/timeshift/timeshift_filemgr.o: In function `atomic_add_u64':
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
./build.linux/src/timeshift/timeshift_writer.o: In function `atomic_add_u64':
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
collect2: ld returned 1 exit status
make[3]: *** [build.linux/tvheadend] Error 1
, а в имеющейся libatomicops (https://dev.openwrt.org/browser/packages/libs/libatomicops/Makefile) их тоже нет. Хотя у меня есть чувство, что я не там ищу:)

lly
14-02-2013, 14:00
...
Time shifting отключен по той причине, что в нашем GCC нет некоторых атомарных ф-ций:


./build.linux/src/timeshift/timeshift_filemgr.o: In function `atomic_add_u64':
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
./build.linux/src/timeshift/timeshift_writer.o: In function `atomic_add_u64':
/home/BuildRepo/openwrt_trunk/build_dir/target-mipsel-linux-gnu/tvheadend-3.2.3-20130209/src/atomic.h:36: undefined reference to `__sync_fetch_and_add_8'
collect2: ld returned 1 exit status
make[3]: *** [build.linux/tvheadend] Error 1
, а в имеющейся libatomicops (https://dev.openwrt.org/browser/packages/libs/libatomicops/Makefile) их тоже нет. Хотя у меня есть чувство, что я не там ищу:)

Народ уже на это налетел в Raspberry Pi - http://www.lonelycoder.com/redmine/boards/5/topics/7421 но там ARM. Эта бага/недоделка зарегистрирована в багзилле 56300 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56300), но официальна решена только в gcc 4.8(в 4.7 ещё нет). В 4.7 довольно несложно сбекпортить, но я не хотел бы без критической необходимости(а её вроде пока нет) мигрировать тулчейн на 4.7 до выхода 4.7.3, а с бэкпортом в gcc 4.6 придётся повозиться - много изменений и я не знаю потрохов gcc (требуемые функции определены в gcc/config/mips/sync.md).

Внимание вопрос - а надо ли?

ryzhov_al
15-02-2013, 18:30
Внимание вопрос - а надо ли?
На мой взгляд — нет. Слишком жирно из-за одной софтины весь тулчейн править. Уж лучше посмотрю возможность сторонней реализации необходимых ф-ций, если они не завязаны на внутренности GCC. Точнее даже из-за одной фичи: time shift ощутят только владельцы самодельных плееров на xmbc/openelec и клиентом tvheadend на борту.

Обновил tvheadend до последней версии, обновил инструкцию на первой странице. Крайне желательно снести старые конфиги из /opt/etc/tvheadend перед апгрейдом.

Насколько я понял, у tvheadend проблема записи HD-звука давняя (https://www.lonelycoder.com/redmine/boards/5/topics/6808) и решается выбором контейнера ts или raw вместо matroska.

На картинке ниже — график потребления памяти процессом tvheadend на RT-N66U при загрузке ТВ-программы для всех 340 каналов с teleguide.info. По оси абсцисс — время в секундах, по оси ординат — mapped память в килобайтах:

http://s018.radikal.ru/i510/1302/75/180db13706f6.png

Картинка поможет вам ответить на ряд вопросов:

сколько времени занимает загрузка программы для N каналов,
сколько каналов вы можете подгружать из ТВ программы на вашем роутере,
когда ждать «вылета» tvheadend,
и прочих.

gSpot, не бросайте свой скрипт (http://wl500g.info/showthread.php?17805&p=227975#post227975):)

skuwakin
16-02-2013, 19:06
Во первых, огромное спасибо всем приложившим руки и главное, голову! Я правда еще разбираюсь, но... уже предвкушаю какие красивые вещи можно вытворять. Один вопрос, пока... В настройках есть выбор русского языка, но он что-то не появляется... Просто по русски было бы ну совсем красиво!

ryzhov_al
16-02-2013, 19:13
Только на порядок предпочитаемых звуковых дорожек при многоканальном звуке.

skuwakin
17-02-2013, 09:32
Только на порядок предпочитаемых звуковых дорожек при многоканальном звуке.

Добрый день. Спасибо, понятно. Теперь еще одна непонятка всплыла... Что-то я не увидел параметра сдвига времени в програме. Ну ладно с "Орбитами" можно выкрутиться, а как быть с каналами, которые вещают только по московскому времени, например "Вести". Переводить часы роутера на московское время или я чего недопонимаю?

ryzhov_al
17-02-2013, 16:57
Что-то я не увидел параметра сдвига времени в програме. Ну ладно с "Орбитами" можно выкрутиться, а как быть с каналами, которые вещают только по московскому времени, например "Вести". Переводить часы роутера на московское время или я чего недопонимаю?Лучше поискать локальную ТВ-программу:

В принципе, число грабберов ТВ-программ ничем не ограничено, вы можете поискать в сети те, что отражают ваш эфир и ваш часовой пояс.
Ещё проще, наверно, править sed'ом налету часовой пояс в имеющемся граббере. Tvheadend, судя по strace, опирается на /etc/TZ.

PS помню, что когда жил во Владивостоке и Севастополе меня самого подбешивало то, что некоторый софт не имеет настройки тайм-зоны.

gSpot
17-02-2013, 17:06
Добрый день. Спасибо, понятно. Теперь еще одна непонятка всплыла... Что-то я не увидел параметра сдвига времени в програме. Ну ладно с "Орбитами" можно выкрутиться, а как быть с каналами, которые вещают только по московскому времени, например "Вести". Переводить часы роутера на московское время или я чего недопонимаю?
Не помню умеет ли tvh пересчитывать время передач самостоятельно, но могу предложить версию граббера с пересчётом времени в передачах на awk. Для своего рекордера писал подобный парсер, хотя потом отказался от этой идеи в виду пожирания лишних ресурсов и, в целом, ненужности (я в Москве обитаю и программа с teleguide.info не требует дополнительных преобразований). В последствии реализовал пересчёт часового пояса в EPG на клиентской стороне средствами Java Script, это значительно удобнее, можно в любой момент "пересчитать" программу c любым доступным сдвигом без новой обработки xmltv. Но коли уж "быдлокод" написан, то чего добру пропадать...
В общем, предлагаю добавить в пакет tvheadend два граббера: первый без пересчёта времени (tv_grab_wl500g_info - предыдущий, без awk. Это позволит тем, кому не нужен пересчёт времени, избежать лишних трат системных ресурсов), второй с пересчётом часового пояса (tv_grab_wl500g_info_toffset)...

tv_grab_wl500g_info (немного переписал его, но суть осталась прежней):


#!/bin/sh

# Please edit /opt/etc/tv_grab_wl500g_info.cfg first!
# Place desired channel id's there, one number per line.
# You may see channel id list by running tv_grab_wl500g_info --configure

IDLIST="/opt/etc/tv_grab_wl500g_info.cfg"
XMLTV_FILE="/opt/tmp/xmltv"
XMLTV_SRC="http://www.teleguide.info/download/new3/xmltv.xml.gz"
SEDCMD="/bin/sed"
WGETCMD="/usr/bin/wget"
GZIPCMD="/bin/gunzip"


GetXmltv () {

$WGETCMD -q -O - $XMLTV_SRC | $GZIPCMD > $XMLTV_FILE
[ -e "$XMLTV_FILE" ] || exit 1;

}


case $1 in

"--configure")
GetXmltv
$SEDCMD -n '/<channel/p;/<display-name/p' $XMLTV_FILE
rm -f $XMLTV_FILE
;;
"--version")
echo "This is a tv_grab_wl500g_info v.0.1 grabber"
echo "for russian www.teleguide.info site. Made by wl500g.info community."
;;
"--description")
echo "teleguide.info grabber by wl500g.info community"
;;
"--capabilities")
echo "teleguide.info"
;;
*)
GetXmltv

printf "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE tv SYSTEM \"xmltv.dtd\">\n<tv>\n"

while read chanid
do

$SEDCMD -n -e "
/id=\"${chanid}\"/,/<\/channel\>/p
/channel=\"${chanid}\"/,/programme\>/{
/<[/]\{0,1\}programme/{
p
b end
}
/<[/]\{0,1\}title/{
p
b end
}
b end
}
:end
" $XMLTV_FILE

done < $IDLIST

printf "</tv>\n"

rm -f $XMLTV_FILE

;;

esac


exit 0;


tv_grab_wl500g_info_toffset:


#!/bin/sh

# Please edit /opt/etc/tv_grab_wl500g_info.cfg first!
# Place desired channel id's there, one number per line.
# You may see channel id list by running tv_grab_wl500g_info --configure

IDLIST="/opt/etc/tv_grab_wl500g_info.cfg"
OFFSET_FILE="/opt/etc/tv_grab_wl500g_info.offset"
XMLTV_FILE="/opt/tmp/xmltv"
XMLTV_SRC="http://www.teleguide.info/download/new3/xmltv.xml.gz"
SEDCMD="/bin/sed"
AWKCMD="/usr/bin/awk"
WGETCMD="/usr/bin/wget"
GZIPCMD="/bin/gunzip"


if [ -e "$OFFSET_FILE" ]; then
TIME_OFFSET=`$SEDCMD -n '1p' $OFFSET_FILE`
else
TIME_OFFSET="0"
fi


GetXmltv () {

$WGETCMD -q -O - $XMLTV_SRC | $GZIPCMD > $XMLTV_FILE
[ -e "$XMLTV_FILE" ] || exit 1;

}


case $1 in

"--configure")
GetXmltv
$SEDCMD -n '/<channel/p;/<display-name/p' $XMLTV_FILE
rm -f $XMLTV_FILE
;;
"--version")
echo "This is a tv_grab_wl500g_info v.0.1 grabber"
echo "for russian www.teleguide.info site. Made by wl500g.info community."
;;
"--description")
echo "teleguide.info grabber by wl500g.info community"
;;
"--capabilities")
echo "teleguide.info"
;;
*)
GetXmltv

printf "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE tv SYSTEM \"xmltv.dtd\">\n<tv>\n"

while read chanid
do

$SEDCMD -n -e "
/id=\"${chanid}\"/,/<\/channel\>/p
/channel=\"${chanid}\"/,/programme\>/{
/<[/]\{0,1\}programme/{
p
b end
}
/<[/]\{0,1\}title/{
p
b end
}
b end
}
:end
" $XMLTV_FILE | $AWKCMD -v chanid="$chanid" -v TIME_OFFSET="$TIME_OFFSET" '
function toDD(_val) {
if(length(_val) == 1) return "0"_val;
else return _val;
}
{
if($0 ~ "<programme") {
edate=match($0, "stop=\"");
eyear=substr($0, edate+6, 4); emonth=substr($0, edate+10, 2); eday=substr($0, edate+12, 2); ehour=substr($0, edate+14, 2); ehour=TIME_OFFSET+ehour; emin=substr($0, edate+16, 2);
emonth+=0;
if(ehour > 23) {ehour-=24; eday++}
else if(ehour < 0) {ehour+=24; eday--};
leapyear=eyear%4;
if(leapyear == 0) feb=29; else feb=28;
montharray[1]=31; montharray[2]=feb; montharray[3]=31; montharray[4]=30; montharray[5]=31; montharray[6]=30; montharray[7]=31; montharray[8]=31; montharray[9]=30; montharray[10]=31; montharray[11]=30; montharray[12]=31;
emdays=montharray[emonth];
if(eday > emdays) {eday-=emdays; emonth++};
if(eday <= 0 && emonth == "1") {emonth--; eday+=emdays}
else if(eday <= 0 && emonth != "1") {emdays=montharray[emonth-1]; emonth--; eday+=emdays};
if(emonth <= 0) {emonth+=12; eyear--}
else if(emonth > 12) {emonth-=12; eyear++};
sdate=match($0, "start=\"");
syear=substr($0, sdate+7, 4); smonth=substr($0, sdate+11, 2); sday=substr($0, sdate+13, 2); shour=substr($0, sdate+15, 2); shour=TIME_OFFSET+shour; smin=substr($0, sdate+17, 2);
smonth+=0;
if(shour > 23) {shour-=24; sday++}
else if(shour < 0) {shour+=24; sday--};
smdays=montharray[smonth];
if(sday > smdays) {sday-=smdays; smonth++};
if(sday <= 0 && smonth == "1") {smonth="12"; sday+=31}
else if(sday <= 0 && smonth != "1") {smdays=montharray[smonth-1]; smonth--; sday+=smdays};
if(smonth <= 0) {smonth+=12; syear--}
else if(smonth > 12) {smonth-=12; syear++};
print "<programme start=\"" syear toDD(smonth) toDD(sday) toDD(shour) smin "00 +0400\" stop=\"" eyear toDD(emonth) toDD(eday) toDD(ehour) emin "00 +0400\" channel=\"" chanid "\">";
}
else if($0 ~ "<channel" || $0 ~ "</channel>" || $0 ~ "<display-name" || $0 ~ "<icon" || $0 ~ "<url" || $0 ~ "<title" || $0 ~ "</title>" || $0 ~ "</programme") print $0;
}'

done < $IDLIST

printf "</tv>\n"

rm -f $XMLTV_FILE

;;

esac


exit 0;

Файл /opt/etc/tv_grab_wl500g_info.offset должен содержать значение сдвига часового пояса для передач. Например:
ко времени каждой передачи прибавляется 2 часа:


2

от времени передач отнимается 3 часа:


-3

время остаётся неизменным:


0

Естественно, при песчёте времени передач учитывается не только час, но и день(включая кол-во дней в феврале), месяц, год.

Думаю, что практичнее использовать для определения значения сдвига именно отдельный файл, чтобы юзеры не лазили шаловливыми ручками в сам скрипт граббера.

Файл со списком xmltv-id необходимых каналов - /opt/etc/tv_grab_wl500g_info.cfg - используется также как и прежде.

Протестируйте пожалуйста. После приведённых выше графиков утилизации памяти от ryzhov_al, я даже не пытаюсь ставить tvh на свой WL-500gp :).



gSpot, не бросайте свой скрипт (http://wl500g.info/showthread.php?17805&p=227975#post227975):)

Ох, скриншоты там кошмарны, это довольно старая версия, практически чистый html :). Сейчас всё изрядно обросло ajax'ом и jquery. Я забросил идею публикации этого дела, а само по себе решение функционирует у меня уже три года и, в некотором смысле, прошло несколько эволюционных этапов. В общем-то, я использую свой старый WL-500, помимо его прямых задач, лишь в качестве рекордера iptv, поэтому и справляется он весьма сносно с этой задачей.

gSpot
17-02-2013, 17:07
ryzhov_al, Вы меня опередили :)

Dext
18-02-2013, 01:36
Только вчера заметил, что версия изменилась. Хочу сказать большое спасибо товарищу ryzhov_al за труды.
Все отлично работает, звук на HD каналах есть, парсер работает гораздо шустрее, xbmc грузит список каналов и епг практически мгновенно (на старой версии очень медленно было), единственное на одном канале звук периодически пропадает, но это проблема этой версии программы, на неттопе так же было.
Хочу рассказать о классной фишке, которая есть в новой версии - автоматический рекордер. Он ищет необходимые вам программы в епг и добавляет таймеры записи для них. Вкладка Digital Video Recorder -Automatic Recorder.
Title (Regexp) - название телепередачи, по которому будет производится поиск (указывать точное название учитывая регистр).
Channel - канал, если оставить пустым поиск по всем каналам
Weekdays - день недели, пригодится, если например в понедельник телепередачу показывают в первый раз, а во вторник повторяют, выбираем только понедельник и два раза одно и тоже не запишется.
Starting Around - примерное время начала телепередачи, если выставить например 10.00, то поиск будет во временном промежутке 9.45-10.15, если оставить пустым, то весь день.
Создав правило один раз программа будет автоматически искать соответствия в при обновлении епг и создавать таймеры на запись нужных вам передач.

skuwakin
18-02-2013, 08:53
Мужики, огромное ВСЕМ спасибо! Классную фичу запустили на наших зверьках! Правда непонятки еще есть. Например, не появляется прогррамма для некоторых выбранных каналов, хотя их номера в cfg выставлены верно. Но потом еще поковыряюсь, може че и найду (пойму). Еще раз ВСЕМ респект и уважуха!

ryzhov_al
19-02-2013, 11:03
Народ уже на это налетел в Raspberry Pi - http://www.lonelycoder.com/redmine/boards/5/topics/7421 но там ARM. Эта бага/недоделка зарегистрирована в багзилле 56300 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56300), но официальна решена только в gcc 4.8(в 4.7 ещё нет). В 4.7 довольно несложно сбекпортить, но я не хотел бы без критической необходимости(а её вроде пока нет) мигрировать тулчейн на 4.7 до выхода 4.7.3, а с бэкпортом в gcc 4.6 придётся повозиться - много изменений и я не знаю потрохов gcc (требуемые функции определены в gcc/config/mips/sync.md).Вопрос закрыт, авторы сделали workaround (https://github.com/tvheadend/tvheadend/commit/8f49909e9e5245782bbb14d6468f1c7684229f76).

gSpot, Dext, обновлённые грабберы вложу вместе с очередным обновлением. Теперь нам ничего, кроме роутерных ресурсов, не мешает включить Time Shift.

ryzhov_al
25-02-2013, 06:02
Обновил, последняя версия в репозитории: time shifting включен, image cache и ffmpeg отключены, обновлённые грабберы в комплекте.

Dext
25-02-2013, 13:48
Обновил, последняя версия в репозитории: time shifting включен, image cache и ffmpeg отключены, обновлённые грабберы в комплекте.
Не долгим было счастье, у меня time shifting почему-то работает только один раз - всмысле ставишь паузу, буфер пишется, при снятии с паузы все воспроизводится (нагрузка на роутер минимальная), жму стоп, включаешь другой канал, паузу и буфер уже не пишется, жмешь плей, воспроизводится пара секунд и изображение замирает. После рестарта tvh та же история.
Может попробуете скомпилировать последний релиз, а не тесовую версию? https://github.com/tvheadend/tvheadend/tree/release/3.4
Хотя... может и не в версии дело...

ryzhov_al
26-02-2013, 10:28
Хотя... может и не в версии дело...Посмотрел, не в этом. Time shift активно пилится, в частности последний фикс timeshift: fix bug that can cause failure when seeking hits start of file (https://github.com/tvheadend/tvheadend/commit/ebc9c4a48d07c713961541c4b2db0f6b206ce14d) у нас включен, а толку — нет.

Dext
26-02-2013, 11:29
Сейчас сидел, пытался понять в чем проблема, похоже что неправильно работает механизм определения максимального времени и размера буфера. В логах сначало появляется using timeshift buffer (60 mins), затем ts 1 buffer full. При установке галочек на unlimited тайм сшифт вроде работает нормально, но надо еще потестировать. Позже отпишусь.

skuwakin
27-02-2013, 19:53
попробовал свежую версию, заинтересовал таймшифт. Пауза нормально отрабатывается, но хотелось бы таймшифт как на телеках... То есть мотание назад, вперед до точки трансляции, и вот это у меня пока не вышло... Пробовал в vlc на писюке и на телеке.

ryzhov_al
28-02-2013, 05:58
…но хотелось бы таймшифт как на телеках... То есть мотание назад, вперед до точки трансляции, и вот это у меня пока не вышло... Мдя-а. Разбаловал, ага. Time Shifting ещё у авторов толком не допилен, я вообще не обещаю того, что он нормально на роутере заработает.


а есть ли пакет для роутера чтоб торрент поток преобразовывал в http поток или в dlna?.
мне это необходмо для просмотра торрент-тв и с трекеров фильмов.Пока только проприетарщина без каких-либо исходников. Ещё не понятно какая будет нагрузка на роутер при этом. Однако ж какк-то это, скажем в uTorrent работает?! Пока есть зачатки в виде btslave (http://btslave.sourceforge.net/) — FUSE-based проект, способный представлять torrent-файл в виде локальной файловой системы и действующий соответственно.

skuwakin
28-02-2013, 06:56
Мдя-а. Разбаловал, ага. Time Shifting ещё у авторов толком не допилен, я вообще не обещаю того, что он нормально на роутере заработает.

Ну а як же... Вон сколь хорошего понаделали! Да и хорошую железяку грех не пользовать по полной программе.

Dext
01-03-2013, 01:13
Что-то у меня последняя версия работает не очень хорошо, на некоторых каналах периодически пропадает поток на несколько секунд, один канал вообще показывает "в режиме слайдшоу". Откатился на 3.2
З.Ы. Time shifting после установки галок на unlimited работал без сбоев.

skuwakin
02-03-2013, 14:39
а можно ли как-то откл. вывод в syslog вот таких строк (начало строки)

Mar 2 20:43:12 RT-N66U daemon.info tvheadend[933]: /opt/bin/tv_grab_wl500g_info_toffset:

gSpot
02-03-2013, 17:05
Кстати, интервал обновления программы с teleguide.info ставьте в неделю. Там программа обновляется с недельным интервалом (обычно в воскресенье), обновлять чаще смысла не имеет. Если слишком часто качать, не долго и бан схватить по ip...

maksim_ur
16-04-2013, 09:01
4. Укажите транслируемые у вас IPTV-каналы.
Необходимо заполучить список каналов у провайдера. Вот, для примера, фрагмент плей-листа моего провайдера:

#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». Шаг необходимо повторить для других каналов, в которых вы заинтересованы. а как быть с плейлистом от домашнего интернета билайна? список у него выглядит иначе:
#EXTM3U
#EXTINF:0,Первый Канал
rtp://@233.33.210.86:5050
#EXTINF:0,Россия 1
rtp://@233.33.210.92:5050
#EXTINF:0,Россия 2
rtp://@233.33.210.93:5050
и т.д.

ryzhov_al
16-04-2013, 09:20
Встречный вопрос: что мешает попробовать?

maksim_ur
16-04-2013, 09:27
Встречный вопрос: что мешает попробовать?
ок, попробую, просто для просмотра IPTV на телевизоре я использую связку xupnpd+udpxy, т.к. вещание IPTV используя RTP для xupnpd не по зубам...


3. Укажите Tvheadend использовать граббер ТВ-программы.
Для чего зайдите в web-интерфейсе в пункт «Configuration > EPG Grabber», в выпадающем списке «Module:» выберите едиственный пункт «XMLTV: teleguide.info grabber by wl500g.info community» и нажмите кн. «Save Configuration». Признаком нормальной работы граббера будут строки в области лога web-интерфейса:

февр. 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
лог выдает иное:

Apr 16 14:35:59.506 /opt/bin/tv_grab_wl500g_info: grab /opt/bin/tv_grab_wl500g_info
Apr 16 14:35:59.586 /opt/bin/tv_grab_wl500g_info: no output detected
Apr 16 14:35:59.586 /opt/bin/tv_grab_wl500g_info: grab returned no data
в чем может быть дело? прошивка tomato-K26USB-1.28.RT-MIPSR2-108-Big-VPN

anri_dedis
24-04-2013, 17:37
Приветствую!
Установил на своем роутере TVheadend. Потоковое вещание работает, а программу прикрутить не получается.
Все делаю по мануалу. Но на пункте 3 получаю затык. При выборе любого граббера (offset или обычного) лог отзывается следующими фразами:

апр. 24 18:30:03.783 /opt/bin/tv_grab_wl500g_info_toffset: grab /opt/bin/tv_grab_wl500g_info_toffset
апр. 24 18:30:04.518 /opt/bin/tv_grab_wl500g_info_toffset: no output detected
апр. 24 18:30:04.521 /opt/bin/tv_grab_wl500g_info_toffset: grab returned no data
В итоге программы нет...
Подскажите, пожалуйста, куда копать?

gSpot
25-04-2013, 14:45
Приветствую!
Установил на своем роутере TVheadend. Потоковое вещание работает, а программу прикрутить не получается.
Все делаю по мануалу. Но на пункте 3 получаю затык. При выборе любого граббера (offset или обычного) лог отзывается следующими фразами:

апр. 24 18:30:03.783 /opt/bin/tv_grab_wl500g_info_toffset: grab /opt/bin/tv_grab_wl500g_info_toffset
апр. 24 18:30:04.518 /opt/bin/tv_grab_wl500g_info_toffset: no output detected
апр. 24 18:30:04.521 /opt/bin/tv_grab_wl500g_info_toffset: grab returned no data
В итоге программы нет...
Подскажите, пожалуйста, куда копать?
Запустите граббер из консоли, вне tvheadend:

/opt/bin/tv_grab_wl500g_info_toffset
Есть вывод xmltv в консоль?

skuwakin
25-04-2013, 17:56
поддержу товарища, программы нема. вот вывод

/opt/bin/tv_grab_wl500g_info_toffset

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv>
</tv>

ryzhov_al
25-04-2013, 18:24
А я вам не верю:):)

wget -O /opt/etc/tv_grab_wl500g_info.cfg http://wl500g-repo.googlecode.com/svn/trunk/packages/tvheadend/tv_grab_wl500g_info.cfg
wget -O - http://wl500g-repo.googlecode.com/svn/trunk/packages/tvheadend/tv_grab_wl500g_info | sh
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv>
<channel id="1">
<display-name lang="ru">Первый канал</display-name>
<icon src="http://www.teleguide.info/img/channel/1.gif" />
</channel>
<programme start="20130422000000 +0400" stop="20130422010000 +0400" channel="1">
<title lang="ru">Познер</title>
</programme>
...
Проверяйте то, что…

wget -O - http://wl500g-repo.googlecode.com/svn/trunk/packages/tvheadend/tv_grab_wl500g_info | grep CMD=
SEDCMD="/bin/sed"
WGETCMD="/usr/bin/wget"
GZIPCMD="/bin/gunzip"
…находятся на своих местах. Если это не так, то правьте пути в скрипте граббера под свою томатовскую прошивку.

skuwakin
25-04-2013, 18:45
так странность-то в том, что оно работало, работало и... перестало... причем я туда не лазил... Ну а в остальном... проверю приведенные вами команды... може чего и нарою. Спасибо.

P.S. а вообще было бы гораздо удобнее настраивать программу, адреса каналов не через вэб. интерфейс, уж больно долно. Случайно никто не пробовал так настраивать?

skuwakin
25-04-2013, 21:18
Кажись причина найдена. Набираем в браузере http://www.teleguide.info и получаем 403 - forbidden, что само по себе по меньшей мере грубо... (в настройках tveadend стоит обновление через 7 дней) Даже обратится к админу не дают.

ну и извечный русский вопрос - "что делать"... Насколько я понимаю, никто не будет делать парсер под другой сайт...

gSpot
25-04-2013, 22:17
Кажись причина найдена. Набираем в браузере http://www.teleguide.info и получаем 403 - forbidden, что само по себе по меньшей мере грубо... (в настройках tveadend стоит обновление через 7 дней) Даже обратится к админу не дают.

Не хочу говорить: "А ведь я предупреждал!", но тем не менее: "А ведь я предупреждал!" ))) А может просто провайдера забанили или конкретный ип... У них такое раньше бывало. По поводу альтернативных источников: вот есть такой сайт http://star.poltava.ua/index.php?id=132, и по кл-ву каналов не уступает. Проблема лишь в том, что при скачивании программы надо капчу вводить, а значит про автоматизацию процесса можно забыть, придётся вручную.

И соглашусь с ryzhov_al:

which wget sed awk gzip
в студию...

skuwakin
26-04-2013, 10:18
В общем спасибо МТС... Через него зашел на сайт и связался с админом. Он на удивление быстро ответил и снял бан. Бум надеяться. что дальше все будет нормально.

skuwakin
28-05-2013, 18:18
Кто-нибудь юзал сие чудо на большом числе каналов (70)? Что-то я ни фига не понимаю, почему-то после ввода большого числа каналов программа "сбивается". То есть тыкаешь показать программу канала А, а оно выводит программу канала Б... Я даже на выходных написал программу генерирующую настройки, и оно даже срабоало, но потом решил добавить еще канал и кирдык. ни программой, ни с рук оно корректно не работает... В общем было бы интересно послушать мнения знающих людей. Заранее спасибо.

кажись найден способ как поправлять программу... надо в configuration-channel/epg-channel в колонке epg grab source
выбирать нужное. Но... делается это почему-то через одно место... после клика на нужной строке нужно сначала это поле очистить, затем ткнуть мышой куда-нить, и только потом уже выбирать из выпадающего списка.

Omega
03-10-2013, 22:41
Кажись причина найдена. Набираем в браузере http://www.teleguide.info и получаем 403 - forbidden, что само по себе по меньшей мере грубо... (в настройках tveadend стоит обновление через 7 дней) Даже обратится к админу не дают.

ну и извечный русский вопрос - "что делать"... Насколько я понимаю, никто не будет делать парсер под другой сайт...

А сейчас данный сайт работает? :rolleyes: Может не у всех? :confused:
Что-то видно с настройками не так, нужно разбираться :p

ryzhov_al
04-10-2013, 06:23
Проверил, программа в XML-TV с сайта отдаётся. Видимо, задрюкали сайт частыми коннектами.

h1Nt
31-10-2013, 18:56
Как-то мимо прошло приложение для Android (https://play.google.com/store/apps/details?id=org.tvheadend.tvhguide). Теперь совсем здОрово :-) добавьте в шапку.

ryzhov_al
01-11-2013, 05:48
Спасибо за ссылку.
Как-то мимо прошло приложение для Android (https://play.google.com/store/apps/details?id=org.tvheadend.tvhguide). Теперь совсем здОрово :-) добавьте в шапку.TVHeadend является частью другого проекта о котором в первом посте нет ни слова.

У нас не было задачи собирать все новости вокруг TVHeadend, мы просто сделал так, чтобы он работал на роутере.

h1Nt
01-11-2013, 06:50
... мы просто сделал так, чтобы он работал на роутере.

ииии чёрт возьми, это круто)))

AlexeyS
12-11-2013, 11:13
На днях поднял tvheadend на nas, но столкнулся с необходимостью переноса большого числа каналов. Через интерфейс это делать долго и нудно, спасибо добрым людям, которые написали скрипт конвертации m3u в формат tvheadend:
http://xbmc.ru/forum/showthread.php?t=1254
9726

achilles_85
16-02-2019, 23:43
Установил сабж на роутер RT-N66U с DD-WRT (DD-WRT v3.0-r38581M). Запустил в консоли, чтоб посмотреть все ли в порядке, но сыпятся две ошибки

2019-02-17 02:39:56.259 [ ERROR] spawn: Unable to fork() for "/opt/bin/tv_grab_wl500g_info_toffset" -- Cannot allocate memory
2019-02-17 02:39:56.262 [ ERROR] spawn: Unable to fork() for "/opt/bin/tv_grab_wl500g_info" -- Cannot allocate memory

free
total used free shared buff/cache available
Mem: 236884 14620 200020 0 22244 0
-/+ buffers/cache: 14620 222264
Swap: 0 0 0

Неужели памяти ему не хватает? Свап подключить не смог, хз что с прошивкой. Ни файлом, ни разделом.