shocker: (Default)
[personal profile] shocker
Сразу скажу - IPTV на Sony PlayStation 3 реально, при этом без компьютера!
Достаточно иметь подходящий роутер и прямые руки.
Первым шагом делаем это: clark15b.livejournal.com/110936.html
Вторым шагом качаем мой pshare и запускаем на том же роутере рядом с udpxy.

Кому интересны подробности читаем дальше...

История началась с того как решил я пробросить в домашнюю сеть сквозь D-Link DIR-320 мультикастовое TV от Butovo.com

В общем-то эффекта добился и теперь у меня на роутере крутится udpxy для подписки на мультикаст потоки провайдера и трансляции их внутри юникастом (HTTP) по требованию клиентов.
Остается подсунуть правильный плейлист плееру и вот тебе IPTV даже через WiFi и даже в HD.

Следующим шагом захотел я смотреть это дело не на компе, а на хардварном медиаплеере IconBit HDS4L.

К сожалению в официальной прошивке нет возможности подсунуть плейлист для просмотра потокового видео по сети, а альтернативная кривая и тормозная.

В общем самый естественный вариант - UPnP который есть в родной прошивке.

Задача: Парсить плейлисты и раздавать их по UPnP в качестве набора ссылок на юникастовые потоки udpxy.
Главное требование: Никакого транскодинга видео и все должно работать на роутере или насе (никаких компов).

Для эксперимента добавил линк в TVercity и попробовал посмотреть на PS3 - консоль ругнулась на тип файла и отказалась показывать. На этом я понял что PS3 мне TV не покажет :(
Ну хоть IconBit и ладно.

Начал экспериментировать с моим насом.
Родной Twonky вроде как умеет раздавать плейлисты, но только для радио и, похоже, что именно в виде файла, а не набора ссылок из плейлиста как надо.
Пробовал ushare - плейлисты знает, но раздает их как файлы и не понимает UTF-8.
MediaTomb должен уметь то, что надо, но вместе с Twonky жить отказался да и не легкий он.
Переходить с Twonky на MediaTomb не хочу т.к. первый, на мой взгляд, гораздо лучше.
Другого софта не нашел, только упоминания какого-то мода ushare - ushare_iptv для какой-то железки. Видимо он и должен уметь парсить плейлисты и отдавать по UPnP ссылки как набор медиафайлов.

Вообще похоже весь софт который в состоянии работать на роутерах и насах раздает плейлисты просто как файлы в надежде что клиент умеет с ними обращаться. В UPnP для m3u файлов даже и mime-тип есть: "audio/mpegurl" (ключевое слово audio).
Неужели есть клиенты которые это умеют?

Решил написать свой DLNA медиасервер с единственным сервисом ContentDirectory.
Интерфейс этого сервиса предназначен для навигации по библиотеке медиасервера, но он не обязан отдавать наружу ссылки на свой контент - это могут быть ссылки куда угодно (в нашем случае на udpxy).

Потратил неделю и вот оно чудо - моя штука заставила показывать IPTV через udpxy не только IconBit, но и Sony PlayStation3.
Причем не только каналы стандартной четкости, но и высокой четкости (HDTV).

В результате вчера ночью смотрел MCM TOP на PS3 :)

Программу назвал pshare, вот линк: ps3muxer.org/pshare.html

Стабильно работает на PC и на mipsel (D-Link DIR-320 с DD-WRT) .

Исходники (для DD-WRT/OpenWRT собирать так) и пакет для mipsel тут: code.google.com/p/tsdemuxer/downloads/list
SVN: 'svn co https://tsdemuxer.googlecode.com/svn/trunk/pshare'

С pshare нормально работают: PS3, IconBit, VideoLAN и Windows Media Player.

В общем на DIR-320 у меня крутится udpxy и pshare, Бутово.Ком раздает мультикастом ТВ каналы (в т.ч. и HD), смотрю все это на PS3 и IconBit.
При этом PS3 показывает все, показывает очень хорошо и не глючит.

IconBit странно сортирует плейлист и долго тупит в начале - картинка есть, а звука секунд 5 нет.

Как ни странно PS3 опять лучше :)

Теперь смотрю и в комнате и на кухне с наса HD кино, а с роутера ТВ - высокие технологи :))))
И главное ничего не шумит и не греется, а роутер у меня работает всегда и готов раздавать ТВ.



(просмотр IPTV на Sony PlayStation 3 без компьютера и транскодирования)

Re: pShare

Date: 2011-06-16 10:12 (UTC)
From: [identity profile] clark15b.livejournal.com
Поищи есть ли на машине файлы getopt.h и uuid.h

Если есть укажи соответствующие пути gcс ключами '-I', например '-I/usr/local/include' (в Makefile).

Если нет, то надо искать в какие пакеты/порты оно входит и ставить.
getopt.h вообще с libc должен идти, а uuid.h с библиотекой libuuid (на Дебиане пакет uuid-dev)

Re: pShare

Date: 2011-06-17 07:19 (UTC)
From: [identity profile] Илья Ваганов (from livejournal.com)
теперь вот так...:
FREEBSD# make
gcc -I/usr/include -fno-exceptions -fno-rtti -O2 -DWITH_LIBUUID -o pshare main.cpp upnp.cpp soap.cpp tmpl.cpp mem.cpp proxy.cpp common.cpp -luuid
upnp.cpp: In function 'void upnp::uuid_gen(char*)':
upnp.cpp:34: error: 'uuid_generate' was not declared in this scope
upnp.cpp:36: error: 'uuid_unparse_lower' was not declared in this scope
upnp.cpp: In function 'int upnp::get_if_info(const char*, upnp::if_info*)':
upnp.cpp:73: error: 'struct ifreq' has no member named 'ifr_ifrn'
upnp.cpp: In function 'int upnp::get_if_list(upnp::if_info*, int)':
upnp.cpp:132: error: 'struct ifreq' has no member named 'ifr_ifrn'
*** Error code 1

Stop in /tmp/src.

Re: pShare

Date: 2011-06-17 07:21 (UTC)
From: [identity profile] clark15b.livejournal.com
Ясно, тогда делаем проще... в Makefile ищем '-DWITH_LIBUUID' '-luuid' и стираем.

Re: pShare

Date: 2011-06-17 08:21 (UTC)
From: [identity profile] Илья Ваганов (from livejournal.com)
gcc -I/usr/include -fno-exceptions -fno-rtti -O2 -o pshare main.cpp upnp.cpp soap.cpp tmpl.cpp mem.cpp proxy.cpp common.cpp
upnp.cpp: In function 'int upnp::get_if_info(const char*, upnp::if_info*)':
upnp.cpp:73: error: 'struct ifreq' has no member named 'ifr_ifrn'
upnp.cpp: In function 'int upnp::get_if_list(upnp::if_info*, int)':
upnp.cpp:132: error: 'struct ifreq' has no member named 'ifr_ifrn'
*** Error code 1

Profile

shocker: (Default)
shocker

December 2019

S M T W T F S
1234567
891011121314
15161718 192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 11 Jan 2026 01:44
Powered by Dreamwidth Studios