Pull to refresh

Почему телевизор Самсунг «теряет» minidlna сервер

Reading time 2 min
Views 59K
Короткий пост напишу только потому, что сам долго мучился и искал на него ответ, но в итоге пришлось разобраться самому.

Имеем:
— телевизор Самсунг с функцией SMART TV и соответственно AllShare, который заменяет поддержку DLNA, как говорят люди, потому что где-то что-то у них не соответствует спецификациям и потому не смогли они это назвать именно DLNA. Ну да бог с ним, в этих тонкостях я решил не разбираться.
— домашний серверок на линуксе, который качает, хранит и показывает фильмы на телевизор через этот самый DLNA. В качестве DLNA сервера был выбран minidlna методом тыканья пальцем в небо в репозитории федоры.

Проблема:
— регулярно сталкиваемся с тем, что хотим посмотреть это самое кино, включаем телевизор… и не имеем в списке SOURCE или же в интерфейсе самого AllShare своего сервера. Обидно. Особенно когда приходят гости и ты им с воодушевлением рассказываешь как у тебя круто показывает новый телевизор, что у тебя есть собственный сервер и на нем мы сейчас будем выбирать кино в высоком разрешении.

После перезапуска minidlna телевизор сервер сразу находит. Я так и не смог найти ответа на вопрос, сформулированный в заголовке, или близкий по форме. Также не смог найти нигде в доступном виде информации о том, как работает DLNA на сетевом уровне (только не надо тыкать пальцами в англоязычные полные спецификации протокола, там также довольно сложно разобраться, я же не собираюсь писать свою реализацию оного). И только методом глубокого анализа тыкания кнопочек и рассматривания вывода tcpdump я понял как оно работает и в чем проблема.

Итак:
minidlna сервер сидит себе и слушает порт (какой в настройках задашь), и изредка выдает в эфир, что он тут есть. А телевизор включается и почему-то ничего не опрашивает насчет того, а есть ли тут кто-то. И получается, что с момента включения телевизора по момент, когда minidlna сервер подаст признаки жизни, телевизор знать ничего не знает, а что делает кнопочка «обновить» — великая тайна (во всяком случае для меня). И проблемой это становится, так как обычно включаешь телевизор именно для того чтобы посмотреть кино.

Решение:
может и есть более правильные решения, но я тупо в конфиге minidlna (по умолчанию в федоре /etc/minidlna.conf) поставил параметр
notify_interval=30
думаю можно поставить и меньше, но мне хватает и столько для счастья. То есть максимум ожидание пока телевизор увидит сервер составляет 30 секунд. По умолчанию этот параметр в федоровском пакете установлен в 900, то есть получается время ожидания до 15 минут.
Tags:
Hubs:
+11
Comments 24
Comments Comments 24

Articles