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

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

    Имеем:
    — телевизор Самсунг с функцией 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 минут.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 24

      +1
      А почему так редко? Это ведь всего лишь один широковещательный UDP пакет, несколько сотен байт. Вполне можно поставить интервал в 1-2 секунды.
      У себя в я вижу по 3-5 UPnP пакета в секунду от разных устройств, и ничего, никто не жалуется на перегрузку сети.
        +1
        Естественно можно и чаще, я об этом так и написал. Но насчет одного пакета Вы не совсем правы, ибо tcpdump показывает, что при работающем телевизоре на каждый нотифи сервера идет небольшой обмен между ними, порядка 15-20 пакетов. Это конечно тоже фигня и на производительность ни сервера, ни телевизора повлиять не должна даже при просмотре фильмов, но меня смущает что дефолтное значение 900. Может есть какой-то нюанс тут, которого я не учитываю. К тому же у меня телевизор не самый навороченный, ue46eh5307, и он включается несколько секунд, потом еще несколько секунд тупит с выводом списка доступных источников сигнала и я думаю, что 30 секунд хватит. А если будет не хватать — то я уменьшу значение.
          0
          А этот обмен каждый раз происходит? Телевизор не запоминает, что этот сервер он уже видел ранее?
            0
            каждый раз, судя по трафику. Может опрашивает не изменилось ли имя у сервера или еще что-то такое.
        0
        У меня вообще Samsung иногда теряет DLNA-сервер прямо во время просмотра фильма. Самое плохое в этом то, что телевизор в данном случае не запоминает, где был прерван просмотр и приходится вручную перематывать.
          0
          Была такая-же лажа с LG и Mediatomb, к сожалению так и не смог найти где косяк! Единственный выход был при подвисании сразу выйти из проигрывателя и подключиться снова. Тогда он ещё помнил где остановился и предлагал продолжить… Но бесило ужасно!
            +1
            Я не так давно всё проклял на старой домашней файлопомойке, пытаясь разобраться с этим. Всё думал, какой-то фоновый сервис отжирает ресурсы и телевизор теряет фильм из-за очень короткого таймаута (при игре по сети на другой комп случались иногда затыки, но тот же mplayer проигрывание на таких не рвёт, как прочихается — дальше играл). Через какое-то время заметил, что обрывы начинают идти часто при наличии стороннего сетевого трафика. Не обязательно плотного. Google ходит по домашнему форуму — вероятность обрыва раз в десяток-другой минут. Качаешь торрент — обрыв каждые несколько минут. Останавливаешь все сетевые сервисы, порождающие трафик, кроме DLNA — всё прекрасно, не рвётся часами.

            А потом машинка начала «свистеть/потрескивать». Сперва думал, что винты накрываются, очень звук на проблемы с подшипниками похож был. Потому что свист начинался при дисковой активности, прекращался при отсутствии. Морально готовился к замене. Но через некоторое время убедился, что дело не в винтах. Это материнка так свистит. Судя по всему, свист на преобразователе питания. Ну, ладно, свистит и свистит… Может, накроется скоро, может — ещё годы протянет. Пока не заметил, что интенсивная работа с сетью вызывает самый сильный свист. И сеть стала периодически вообще вставать колом.

            Начал подумывать о замене материнки. И тут она, отмучившись так месяца три, сдохла окончательно.

            Сделал «ползучий апгрейд» (новая мать на десктоп, старая мать — в файлопомойку) и… любые проблемы с DLNA исчезли. Хоть как нагружай машину, сеть, диски — больше не было ни одной потери сервера. Вообще.

            Не фак, что у Вас именно проблема с сетевой подсистемой сервера, но в моём случае телевизор терял сервер именно по этой причине.
              0
              Не, у меня явно не тот случай. Плеер вылетает (не подвисает, а вылетает сразу, как-будто выдергиваю Ethernet-кабель) при проигрывании файлов с двух разных физических дисков, один из которых Enterprise-класса, другой совершенно новенький Green. Так же могу исключить влияние постороннего трафика.
                +1
                Я, наверное, слишком многословно расписал :) Выжимка (и дополнения):
                — Мои вылеты были никак не связаны с дисковой системой
                — Телевизор терял DLNA-сервер во время проигрывания. Именно как полную внезапную потерю, как если бы кабель выдёргивали. Повторное определение шло через пару минут (вероятно вопрос топикстарта) или после выключения/выключения ТВ.
                — Проблемы были однозначно связаны с работой интегрированной сетевой карты на материнской плате DLNA-сервера. Вероятно, из-за проблем питания. Происходил кратковременный затык сети, который телевизор сходу воспринимал как потерю сети/сервера.
                  0
                  Я тоже подумал, что сеть затыкается, тем более что minidlna у меня живет на HP Microserver с довольно дохлым Geode.
                  Купил внешнюю сетевую карту от Intel с NAPI, второй день работает. Пока вылетов не было.
                  Как себя дальше поведет — поделюсь.
                    0
                    Действительно все работает.
                    Сетевая карта: Intel , распределил tx и rx очереди по ядрам, mediatomb заикаться перестал,
                    даже торренты ему сильно не мешают. NFS теперь умеет отдавать файлы в темпе 70 мб/c.
                    sftp все равно не выдает больше 8-ми, упирается в процессор.
                    smb — 30-40 мб/c.
                      0
                      У меня так точно не сеть узкое место, потому что стоит адаптер Intel E1G44HTBLK, по двум портам, объединенным Cisco в один логический, которого и идет раздача сигнала с домашнюю сеть, к которой подключен телевизор. Интернеты с торрентами на другом физическом интерфейсе. При чем странно то, что еще полгода назад таких проблем не было.
            0
            У меня на связке Samsung D7000 + Ubuntu 12.04 вообще работает 2 инстанса DLNA-серверов. Один — Mediatomb, для шаринга видео дома, и один minidlna, для шаринга музыки дома и на работе. Почему 2 — при отдаче видеопотока, minidlna постоянно вылетает, зато музыку раздает на ура и умеет искать по artist, album, title и т.д. При этом Mediatomb нормально стримит видео, делает превьюхи и т.д., но не годится для музыки, потому что не отдает стандартный DeviceDescription.xml и работает только в локалке, и на него невозможно натравить foobar2k через инет. Плюс, поиск в нем отсутствует как класс.
            Все жду, когда появится продукт, имеющий достоинства обоих и лишенный вышеуказанных недостатков.
              0
              У меня D8000 и minidlna, работающий на NAS от Synology. notify_interval выставлен в 90 (сборщиком пакета, не мной), видимо, для таких случаев. Я запустил на роутере tcpdump и вижу, что телевизор делает опрос на присутствие DLNA-сервера раз в 10 секунд порцией пакетов. Может вам багрепорт в самсунговский саппорт написать? Явно косяк телевизора.
                0
                Хммм, вообще интересная идея в саппорт обратиться. Посмотрел что вообще телевизор при старте по сети шлет. Шлет он ssdp запросы, и находит виндовые компы в моей сетке, которые там нафик не нужны, ибо ничего не отдают. А вот dlna похоже совсем не пытается обнаружить, ждет пока они сами доложатся.
                0
                сталкивался с таким (правда компьютер под виндой). Временный фикс был зайти в сетевые настройки ТВ, и обновить параметры IP. Полностью вылечилось заменой роутера с Dir320 на Keenetic. Начинает видеть сервер сразу же после включения, равно как и наоборот, в контекстном меню появляется «Воспроизвести на...»
                  0
                  У меня Самсунговский телек со SmartTV и Serviio-сервер в качестве DLNA. Работает даже слишком хорошо. Почему «слишком»? Serviio поддерживает профили, а значит знает как работать с телевизором Samsung, а значит реализует все его фишки. Но люди на форумах Самсунг жалуются (и я с этим же столкнулся) что если всё работает как надо, то через N секунд после включения телевизора вылезает всплывающее окно о том, что этот сервер найден. Это окно надо вручную закрыть, оно даже по таймауту не закрывается, так и будет висеть хоть день.
                  Ни разу не помню чтобы в связки с Serviio что-то не находилось, всё работало сразу.
                  Основное заметное отличие правильно сконфигурированного сервера для SmartTV от просто сервера — возможность продолжить просмотр любого фильма с места, на котором в предыдущий раз просмотр был прерван. Ну и конечно знание что телек ест, транскодирование форматов которые не ест…
                    0
                    Ага, периодически пропадает mediatomb. Занятно, но если включаешь закачку торрентов — теряет на 100%, и иногда просто так. Хотя если торренты не врубать — довольно редко.
                      0
                      Я пробовал dlna использовать, у меня тоже самсунг, что то мне не понравилось качество. В итоге подцепил его к ПК по HDMI и так смотрю.
                        0
                        Спасибо автору!
                        Я уже полгода мирюсь с этим глюком, просто перезапуская minidlna на устройстве.
                        Теперь надеюсь будет все ОК!
                          0
                          Оффтопик — но я пользуюсь PS3 Media Server, тк достался по наследству от PS3.
                          Проблем с поиском нет. Запускаю любое устройство, где PS3MS установлен и сразу появляется в AllShare.
                            0
                            После подобных проблем на виртуалку поставил вин7 + Plex Media Server… пока без вариантов :(
                              –3
                              Ну да бог с ним…

                              Вы оскорбили религиозные чувства моего соседа, немедленно перепишите слово бог с большой буквы!
                                0
                                Mediatomb с правильным конфигом отлично работает с Самсунгом. Если нужен конфиг — могу выложить, но оно легко гуглится по «Samsung mediatomb config»: ключевая для Самсунга фишка — секция «custom-http-headers»

                                Only users with full accounts can post comments. Log in, please.