LINUX.ORG.RU

Сопряжение компьютера с телевизором


0

1

Здравствуйте!

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

Имеем: 1. компьютер с карточкой gigabyte GV-N98TSL-1GI. Особенностью этой карточки является то, она не представляет HDMI в виде отдельного аудио устройства PCI, а просто гонит вывод с S/PDIF из (встроенного) аудио в HDMI (посредством шнурка).

2. Телевизор (Philips pfl8605H), прицепленный к компу через HDMI, а к домашнему роутеру (DLink 615) - через ethernet.

Хочется транслировать на телевизоре с компа фильмы и прочие медиа-файлы, некоторые сопкасты (сын смотрит футбольные матчи в странных чемпионатах) и, как доберутся монтажники телевидения iptv, через VLC.

В режиме nvidia twinview я подцепил телевизор без особенных проблем, но такой режим не очень удобен, т.к. во-первых, многие фулл-скриновые приложения шизеют от такого счастья, а, во-вторых таскать окошки с монитора на телевизор гораздо неудобнее, чем между двумя рядом стоящими мониторами. Телевизор поддерживает DLNA, но его на линуксе я ещё не взводил, к тому же, насколько я понимаю, раздавать через DLNA всякие сопкасты я не смогу. или смогу?

Посему вопрос: как лучше (удобнее для семейства) настроить всё это хозяйство? Пока я склоняюсь к тому, чтобы завести на линуксе какой-то (какой?) DLNA-сервер, а для того, чтобы отдавать на телевизор данные, которые я не смог отдать через DLNA, поднять отдельный скрин в X-сервере или отдельную конфигурацию X-сервера. Но, может быть, есть какие-то ещё решения? Отдельным вопросом стоит звук. Сейчас я направляю звук на телевизор через явное указание в mplayer'е:

mplayer -ao alsa:device=iec958 ...

но хотелось бы какого-то более технологичного решения. Можно ли, используя pulseaudio, например, отправить звук вот из этого конкретного инстанса приложения в s/pdif? Или какие-нибудь особые настройки в том же VLC? Можно ли переключать звук (и изображение) из данного приложения на лету? В общем, с благодарностью выслушаю обо всех возможных вариантах настройки. А, может, мне всё это не нужно, и есть какой-то DLNA-сервер или ещё какое волшебное решение, которое может раздать/перенаправить любые подходящие медиа-данные?

★★★★★

Последнее исправление: AlexM (всего исправлений: 1)

Ответ на: комментарий от kitar

Ага, спасибо. А потоки эти DLNA-серверы в принципе раздавать/форвардить умеют? Или только файлы с диска? Или зависит от набора плагинов, а сам протокол это позволяет?

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

в Mediatomb возможно потоковое видео, если я правильно понял про потоки. Про другие не знаю. «скастуй» кого-нибудь с того треда.

kitar ★★★★★
()

Задействован режим separate screen; имеем два независимых экрана, каждый со своими настройками, DE значения не имеет — работает везде. Основным медиапроигрывателем для коллективного времяпровождения является XBMC. Но для раздельного использования монитора и телевизора он не годится т.к. зачем-то перехватывает мышь, и делает невозможным совместное использование монитора и телевизора. В таких случаях переключаюсь на VLC.

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

anonymous
()

Рекомендую подцепить к телевизору неттоп, а на него поставить XBMC.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от anonymous

мышь с xbmc вполне нормально уживается(решение на xbmc.ru)

у меня у самого на тв xbmc, управляю им с андроида

ravl
()

Я пользуюсь minidlna, по шнурку десктоп пристёгнут к проигрывателю Sony.

Разницы с флэшкой нет вообще никакой, просто выбираю фильмы и смотрю.

Hoodoo ★★★★★
()
Ответ на: комментарий от anonymous

А вот возникает вопрос такой: зачем цеплять TV именно скрином в рамках одного ServerLayout, шарящим мышь, клавиатуру и, вероятно, какие-то настройки сервера, а не сделать отдельный ServerLayout и запускать для него отдельный X-сервер?

В случае отдельного ServerLayout'а для него можно указать отдельный набор периферии, н-р, беспроводную клавиатуру, мышь или вон, например, народ цепляет ATI Remote Wonder как мышку.

Какие минусы могут быть у такого решения?

AlexM ★★★★★
() автор топика

у меня телевизор через hdmi получает и видео и звук. Настроил автостарт вторых Х-ов и xbmc.

SevikL ★★★★★
()
Ответ на: комментарий от anonymous

смысл в том что надо сделать xbmc не на фулскрин. А чтобы рамок не было, нарулить правил для окна (not-resizable, fixed, no-decoration)

SevikL ★★★★★
()

Плюсую медиатомб

Функций там много, тот же sopcast вроде как поддерживается, но я лично не проверял. Если телевизор нормально поддерживает DLNA, то сервер должен работать почти из коробки, поэтому попробовать всегда стоит.

Gary ★★★★★
()
Ответ на: комментарий от AlexM

Какие минусы могут быть у такого решения?

Никаких наверное… Ещё-бы понять, как это грамотно (без костылей) всё настроить. Сколько ни пробовал, толком не выходит ничего — то одно не работает, то другое виснет или отваливается. Как правильно можно организовать (с подробностями желательно: xorg.conf и т.д.) такое:

Имеется nvidia (blob), подключена через dvi к монитору, и через hdmi к телевизору. Хотелось-бы получить две раздельные Х-сессии с отдельными входами черех xdm — это я знаю как сделать, не пойму, как заставить автоматом первую выводится на монитор, а вторую на телевизор (обе выводятся на монитор), и чтобы были: одна сессия — один экран, т.е. никаких xinerama, twinview и пр.

anonymous
()
Ответ на: комментарий от anonymous

В общем, я достиг некоторых промежуточных результатов, правда, не могу сказать, что они меня обрадовали.

Итак: путём несложных манипуляций определяется два ServerLayout'а, и запускается 2 X-сервера, каждый со своим layout. Проблема только в том, что в один момент времени на одной карточке может командовать только один X-сервер. Поэтому, когда я переключаюсь на VT7 - у меня зажигается монитор, а на телевизоре появляется надпись «Нет сигнала». Когда на VT8 - монитор уходит в «зелень», а на телевизоре - полноценный иксовый экран (вход KDM итп). Если подключить вторую мышь и клавиатуру, их можно развести в конфиге так, чтобы определённый ServerLayout пользовался только определёнными InputDevice'ами. Наверное, если в компе две видюхи (н-р, встроенная и внешняя в слоте), то можно решить исходную задачу совсем гладко, как решают её, например, здесь, но у меня на MB нет встроенного видео (специально брал без, хы-хы).

Таким образом, пока идея двух независимых X-серверов для двух устройств оказывается не слишком удачной. Есть Debian bug 529043, но непохоже, чтобы им кто-нибудь занимался.

Так что, по-видимому, придётся довольствоваться или Xinerama/Twinview, или отдельными скринами в одном X-сервер, и то, и другое настраивается стандартными утилитами (той же nvidia-settings).

При этом, я так понял, придётся решать проблему захвата мышки. Возможно, поможет вот эта страничка: http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors/Mouse_Control

И со звуком: кто умеет настраивать pulseaudio, чтобы динамически перебрасывать выхлоп определённого приложения на S/PDIF (у меня фигурирует под именем «Цифровое стерео (IEC958) Output»)?

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

В общем, если интересно, мой xorg.conf для двух независимых ServerLayout находится здесь.

Магия с UseDisplayDevice и CustomEDID нужна для того, чтобы точно объяснить драйверу, какой монитор он должен использовать в каждом из случаев. Как видно, в этом примере в качестве монитора используется CRT CTX (виден как CRT-1), а телевизор виден как DFP-1. EDID'ы сохраняются в файлик, н-р, при помощи той же nvidia-settings. Как карточка идентифицирует подключённые к ней мониторы и PCI BusID, смотрел через nvidia-xconfig --query-gpu-info.

AlexM ★★★★★
() автор топика
Ответ на: комментарий от Gary

Запустил mediatomb. Файлы раздаются [почти все] нормально, но не очень понравился [дефолтный] способ организации меню по доступа к файлам - слишком долго прыгать до файла с данными. Плюс я не понял, отсутствие возможности промотать фильм до нужного места - это недостаток протокола, mediatomb, телевизора или не слишком очевидного управления в телевизоре. В общем, пока разбираюсь...

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

Проблема только в том, что в один момент времени на одной карточке может командовать только один X-сервер.

И эта проблема сводит на нет всю затею, поэтому возвращаемся с чего начали: к SeparateScreen.

При этом, я так понял, придётся решать проблему захвата мышки.

Мне известна только одна такая программа: XBMC, и по-человечески проблема не решается. А ещё есть такая неприятность, связанная с соотношением сторон: имеются монитор 1600х1200 (4:3) и телевизор 1920х1080 (16х9), nvidia blob. Так вот если запускать всё по дефолту, то изображение на мониторе поджимается по вертикали, и растягивается по горизонтали выходя за границы экрана. Если дописать в xorg.conf секцию телевизора что-нибудь 4:3 (к уже имеющимся 16:9), например 1600х1200, то изображение на телевизоре расширяется до виртуальных 1920х1200, что также не особо радует. Решение нашёл в виде костыля: телевизору прописываю наиболее близкое уменьшенное (меньше чем у монитора) единственное разрешение, например 1360х768, а когда залогиниваюсь в DE, запускаю nvidia-settings и в ней проставляю телевизору 1920х1080. Всё в принципе нормально, но есть один нюанс — некоторые приложения остаются в рамках прописанных в xorg.conf 1360х768, и ничего нельзя с ними поделать. Кто как с этим борется? Или как применить настройки которые делает nvidia-settings вместе со стартом X-сервера? И где она их берёт и куда кладёт? Смотрел в ~/.nvidia-settings-rc но ничего подобного там нет, да и после перезагрузки сбрасывается всё, и надо проставлять по новой, почему-то именно эти данные не сохраняются.

anonymous
()
Ответ на: комментарий от anonymous

Насчёт разрешения - ни-ни-ни, незачем это всё.

У меня сейчас монитор работает в (родном) 1280x1024, а телевизор - опять же в родном 1920x1080, и друг другу они не мешают.

Более того, мышка сейчас заперта в мониторе до тех пор, пока я явно не запускаю mouse-wrapscreen/mouse-switchscreen. Правда, xbmc ещё не проверял, «оставлю это на завтра».

Сейчас мне на #pulseaudio присоветовали написать кастомный профайл для того, чтобы звук выбранного приложения можно было на лету двигать между синками, сижу, изучаю доки, как это сделать по-человечьи.

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

У меня сейчас монитор работает в (родном) 1280x1024, а телевизор - опять же в родном 1920x1080, и друг другу они не мешают.

В SeparateScreen? Как вам это удалось? Сколько бьюсь, ничего, кроме вышеописанного способа больше не получается.

Более того, мышка сейчас заперта в мониторе до тех пор, пока я явно не запускаю mouse-wrapscreen/mouse-switchscreen.

А, вот это странно, с этим к счастью у меня проблем нет, — бегает между экранами (с той стороны, к которой пристыкован второй экран).

anonymous
()
Ответ на: комментарий от anonymous

В общем, пощу сюда, чтобы не потерялось: вот мой текущий конфиг xorg.conf, в котором Screen 0 - это монитор, а Screen 1 - телевизор. Монитор и телевизор разнесены друг от друга (смещение 2000 в ServerLayout), поэтому мышка НЕ бегает свободно между двумя экранами. Полноэкранные приложения (Chromium, Trine, Эйнштейн) тоже чувствуют себя нормально.

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 280.13  (builder@apiary.orion.altlinux.org)  Wed Aug 17 15:23:02 UTC 2011

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 2000 0
    Option         "Xinerama" "0"
EndSection

Section "Module"
    SubSection     "extmod"
        Option         "omit xfree86-dga"
    EndSubSection
EndSection

Section "ServerFlags"
    Option      "AllowMouseOpenFail"  "true"
#    Option      "AutoAddDevices"      "false"
EndSection

Section "Files"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Philips FTV"
    HorizSync       15.0 - 70.0
    VertRefresh     48.0 - 62.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 9800 GT"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 9800 GT"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

У меня работает автодетект всего подряд, даже, как выяснилось, Monitor0 не определён и подхватывается автоугадавом. Если нужны специальные опции (например, явно прописанные разрешения или там, например, физические размеры картинки монитора, чтобы DPI правильно считался) - ну, их надо явно прописывать, см. предыдущий вариант конфига выше по треду.

Если кажется, что мышка не должна быть заперта внутри Screen0 и должна свободно перемещаться без специальных приспособлений - ну, в строке

Screen      1  "Screen1" 2000 0

2000 0 нужно заменить на что-нибудь типа LeftOf «Screen0». Но, честно, в целом, мышь в телевизоре не нужна :)

По совету людей с #pulseaudio я раскомментировал секцию [Profile output:analog-stereo+output:iec958-stereo...] в конце /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf в итоге у меня появился профиль с двумя Sink'ами и я могу любое запущенное приложение на лету переключить между колонками компьютера и телевизором. Если на лету не надо, то тогда можно обойтись явным указанием целевого ALSA-устройства (через параметры командной строки или переменную окружения)

То есть, задачу вывода выхлопа программ с компьютера на телевизор можно считать решённой.

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

Монитор и телевизор разнесены друг от друга (смещение 2000 в ServerLayout), поэтому мышка НЕ бегает свободно между двумя экранами.

Она бегает, проверьте. Просто вы её не дотянули до зоны перехода. Значение 2000 0 просто обозначают, что второй экран смещён вправо на 2000px. Но не в этом дело. Я не могу понять, как у вас мирно (да ещё и автоматом) соседствуют два экрана с разным отношением сторон 5:4 и 16:9? И почему я не могу этого никак добиться? Вы писали ещё какие нибудь конфиги, или может edid самодельный, или ещё что-нибудь в этом роде?

anonymous
()
Ответ на: комментарий от anonymous

Нет, если экраны разнесены, то мышка не убегает, совершенно точно. я всегда вижу её [часть], когда вожу ей возле любого из краёв экрана.

Кастомных EDID'ов у меня в этой конфигурации тоже нет (в варианте 2 X-серверов они были нужны), конфиг в ровности такой, как я привёл. Если хотите, могу показать ещё /etc/X11/xorg.conf.d и ХАЛовскую конфигурацию, но там в целом ничего интересного.

А вот за медиатомб и другие DLNA-серверы я бы послушал. Такое ощущение, что прокрутка и позиционирование внутри файла - это их ахиллесова пята.

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

Нет, если экраны разнесены, то мышка не убегает, совершенно точно. я всегда вижу её [часть], когда вожу ей возле любого из краёв экрана.

Мистика, какая-то, у меня в SeparateScreen она бегает между экранами при любом позиционировании, и насколько я понимаю — именно так и должно быть.

Такое ощущение, что прокрутка и позиционирование внутри файла - это их ахиллесова пята.

Скорее — это убогий софт в телевизорах. У меня два телевизора Samsung (UE40* и UE55*), контент раздаётся minidlna по wifi, и перемотка и прочие вещи работают из коробки. Но я всё равно не могу этим пользоваться, т.к. идиотизм софта не выдерживает просто никакой критики (предпочитаю SeparateScreen и bluetooth мышь). Когда я настраивал это хозяйство (года полтора назад), то на форумах слышал от многих людей, что у них это не работает, особенно это касалась моделей предыдущих серий, и требовались всевозможные хаки: от банальных кодов с пульта, до полной перепрошивки. Возможно за последнее время что-то изменилось в лучшую сторону, давно не интересовался.

anonymous
()
Ответ на: комментарий от anonymous

Насчёт поведения мышки - ну, всё в точном соответствии с тем, что я прочёл об этом (а люди, соответственно, спец. тулзы написали, для того, чтобы перемещать мышь между экранами). Более того, говорят, можно заводить экраны «один под другой»: если телевизор меньше монитора, тогда мышь будет бегать по монитору, при помощи mouse-switchscreen её можно будет переместить на телевизор, а потом при выходе за край телевизора она автоматом будет перемещаться на монитор. Но это уже какой-то изврат.

minidlna попробую, может, проканает...

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

прокрутка работает, но сильно зависит от телика и соответственно софта в нем.

kitar ★★★★★
()
Ответ на: комментарий от AlexM

minidlna попробую, может, проканает...

Попробуйте ещё XBMC, но не думаю что дело в компьютерном софте. Если телевизор этого не умеет, то ему что ни подай работать не будет, только шить (и то ещё не факт).

anonymous
()
Ответ на: комментарий от SevikL

Можно ман/скриптик, как запустить отдельные иксы на втором дисплее? (nvidia blob => без использования xrandr)

CYB3R ★★★★★
()
Ответ на: комментарий от AlexM

Плюс я не понял, отсутствие возможности промотать фильм до нужного места - это недостаток протокола, mediatomb, телевизора или не слишком очевидного управления в телевизоре.

Надо настроить custom-http-headers, зависит от телевизора. Для некоторых самсунгов это выглядит так:

<add header=«transferMode.dlna.org: Streaming»/>
<add header=«contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000»/>

У некоторых самсунгов флаги другие, 025000. Это надо в гугле искать.

Ну, это всё при условии что телевизор поддерживает перемотку.

Способы организации меню доступа к файлам при автоматической генерации этого меню вроде как настраиваются, но там надо ковыряться в скриптах индексирования, информация по этой теме есть на сайте mediatomb. Ну и ещё можно добавлять каталоги вручную.

И последний момент, у меня самсунг напрочь отказывался играть видео из некоторых нестандартных контейнеров типа матрёшки, пока ему не подменили типы через настройку mappings сервера. Поэтому если что-то такое случится, надо посмотреть список поддерживаемых форматов и всё нестандартное выдавать за них.

Gary ★★★★★
()
Ответ на: комментарий от CYB3R

вся конструкция дома, буду по памяти: в хомяке сделал скрипт примерно такого вида

#!/bin/bash
DISPLAY=:0.1 compiz-decorator --replace
sleep 2
DISPLAY=:0.1 xbmc &

иксы запускаются без костылей после настройки в nvidia-settings.


А! и еще в компиз-сеттингсах надо для окна xbmc на настроить поведение: развернуто, не двигается, на переднем плане.

как-то так, пишу с телефона (пеар нокии н9), не пинать.

SevikL ★★★★★
()
Ответ на: комментарий от AlexM

Да, KDE плоховасто работает с двойным экраном.

https://bugs.launchpad.net/ubuntu/ source/kde-workspace/ bug/881031

у меня не убунта, альт, но симптомы те же: когда подцеплен второй независимый экран, alt-tab срабатывает хорошо, если через раз.

AlexM ★★★★★
() автор топика
Ответ на: комментарий от AlexM

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

SevikL ★★★★★
()
Ответ на: комментарий от Revent

Кстати, о птичках - завёл minidlna, в Philips'е 8605 заработала прокрутка в фильмах. Возможно, там есть проблемы ещё, но, вроде, дети смотрят.

AlexM ★★★★★
() автор топика
Ответ на: комментарий от SevikL

Дело не в фобиях, дело в количестве усилий по настройке. Впрочем, действительно, непринципиально.

AlexM ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.