Некоторое время назад Valve представила приставку для телевизора Steam Link, позволяющую использовать телевизор в качестве удаленного монитора. Как владелец Raspberry Pi, я тут же озаботился вопросом: «А оно, сможет?».

Заинтересовавшихся прошу далее.

Для стримминга используется обычная Raspbian. Это для Raspberry. А для компьютера-источника, является обязательным наличие видеокарты GeForce не хуже чем GTX 650 и установленный GeForce Experience.

На компьютере-источнике должен быть запущен клиент Steam, в GeForce Experience должна быть разрешена потоковая передача данных.

Запускаем Raspberry Pi, входим в консоль, качаем Java Development Kit. Пишем:
sudo apt-get install oracle-java8-jdk

Далее скачиваем клиент limelight:
wget https://github.com/irtimmer/moonlight-embedded/releases/download/v1.2.2/limelight.jar

Или более свежий отсюда: https://github.com/irtimmer/moonlight-embedded/releases

Устанавливаем кодек Opus:
sudo apt-get install libopus0

Если звук и так идет через HDMI, то следующие команды пропускаем, если нет то:
sudo nano /boot/config.txt

И прописываем hdmi_drive=2

Соединяем Raspberry с компьютером-источником:
java -jar limelight.jar pair IP-источника

Через минуты две в консоли появится сообщение “Please enter the following PIN on the target PC: **** “, где звездочки — это предложенный код. На компьютере-источнике вылезет такая табличка:



Туда и вбивается этот PIN.

Выходим из графической оболочки (Ctrl+Alt+F1) и вбиваем:
java -jar limelight.jar stream IP-источника

Steam-клиент переходит в режим BigPicture и на экране телевизора появляется его копия. Игры из Steam поддерживаются все. Даже такие тяжеловесные, как CoD Advanced Warfire, Bioshock Infinite и Wolfenstein The New Order. Управление производится привычным образом с помощью клавиатуры и мыши подключенных к Raspberry. Так что для компьютера за 29$ нашлось еще одно применение, кроме как медиа-центр и ретро-консоль. Что, учитывая предварительную стоимость для Steam Link в 49$, выглядит более чем заманчиво. А уж отсутствие еще одной «коробки с проводами», это вообще подарок небес.

Комментарии (34)


  1. timsoid
    20.07.2015 11:37

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


    1. AllexIn
      20.07.2015 11:46

      А почему графика должна отличаться?
      Там единственная проблема — лаги.


      1. timsoid
        20.07.2015 11:47

        ну он же как то пережимает графику, врядли там один в один передача как с HDMI выхода видеокарты


        1. agranom555
          20.07.2015 12:49
          -1

          А почему бы и нет? Скорости сети локальной думаю хватает на трансляцию в оригинале.


          1. Mnemonik
            20.07.2015 13:18
            +2

            1920 * 1080 * 3 (3 байта на пиксель RGB) * 60 (кадров в секунду) = 373248000 байт в секунду. 373 мегабайта (3 гигабита) в секунду несзжатый поток 1080р 60fps


            1. synchrone
              20.07.2015 14:57

              Существуют же lossless видео кодеки


              1. Mnemonik
                20.07.2015 15:30
                +4

                кодеки? h264 по ссылке как минимум несет картинку в формате 4:2:0, а это значит она будет заблюрена, просто по факту формата как такового. Даже если кодек будет настроен не делать кадры из разницы следующего и предыдущего, или не знаю как там они добиваются того что они называют 'loseless', но картинка будет заблюрена это точно.
                возможно на телевизоре этого и не видно будет, но блин, покупать видео-карту за n00 долларов которая изо всех сил будет обсчитывать миллионы полигонов со всей их четкостью, чтобы потом просто смазать все при передаче?.. купить playstation4 и то эффективней будет.


                1. Meklon
                  20.07.2015 23:50

                  Эмм… А как тогда Blu-ray с битрейтом 36—216 Мб/с живет? Просто хочу разобраться.


                  1. Mnemonik
                    21.07.2015 10:23

                    видео формат изначально несет 4:2:0 картинку, поэтому видео кодеки и ориентированы на нее. нет смысла хранить полную информацию для исходника который уже несет половину. 4:4:4 картинка обычно только на монтаже, это исходник. собственно это сразу уполовинивает размер. да и позволяет применять кодеки, тот же самый mpeg2, который сжимает не сильно, как jpeg с максимальными настройками.
                    если вкратце что это за 4:2:0 и 4:4:4 это байты на точку — 4:4:4 это по байту на Y (яркость точки, выглядит как черно белая картинка), U и V (цветоразность, то, по чему можно восстановить цвет имея их обе). Либо просто RGB, где тоже по байту на цвет. А 4:2:0 это YUV где есть байт на Y (яркость точки, черно белая картинка), а вот U и V в два раза меньше (в четыре раза меньше точек на каждую), и применяются по одной точки на 4 из Y. Т.е. яркость точки, черно-белая картинка, равна исходнику и контрастность деталей та же самая, но цветовая информация по 1-й точке на 4 соседа. Из-за того что яркость все-таки присутствует на каждую точку все цветовые переходы достаточно плавные и все это выгядит как легкое замыливание только цветовой информации. Зато в два раза меньше размер (байт на Y, 1/4 на U и 1/4 на V).
                    собственно я не говорю что очень много будет потеряно, разница будет не громадная, возможно даже приятная глазу (эффект всего этого — такое легкое замыливание всей картинки), просто все-таки это не трансляция в оригинале и как минимум люди трудились, соединяли миллионы транзисторов в видео карте чтобы получить ту самую четкость которую требуют миллионы геймеров по всему миру, чтобы потом они пустили все это по пережатому каналу на телевизор… обидно.


          1. Hertz
            21.07.2015 00:10

            Я играю по steam In-home streaming, так как нет возможности подключить экран к компьютеру и сидеть около него.
            FullHD @ 60Hz, в большинстве игр видны артефакты от сжатия, и хост и клиент — мощные машинки, соединены проводом, хороший роутер, но битрейта не хватает.
            Причем довольно странно, во всяких внутриигровых cut-сценах никаких артефактов не видно, картинка будто на дисплее, подключенном напрямую к компьютеру, но как только cut-сцена заканчивается, качество серьезно падает и становятся видны артефакты. Возможно cut-сцены имеют меньшую частоту кадров (30 FPS например), но вряд ли это относится ко всем играм. Наблюдал это в Far Cry 3, Assassin's Creed 4, GTA 5, Battlefield 4. В Dota 2 и Heroes of the Storm артефактов как-будто бы нет.


      1. Sketch_Turner
        20.07.2015 14:18

        У них (Steam) написано, что крайне желательно подключение по проводу или как минимум Wi-Fi 100Mbit (который не у всех есть). Так что лаги точно будут.


        1. Hertz
          21.07.2015 00:15

          Будут зависания звука и падение качества картинки (bitrate уменьшается), но в целом лагов может и не быть. Однако играть, когда картинка внезапно может расплыться, не очень приятно.


          1. Sketch_Turner
            21.07.2015 21:03

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


            1. Hertz
              24.07.2015 14:50

              Честно говоря в BF4 не заметил input lag'а, возможно я так долго не играл на нормально мониторе, что потерял чувствительность к нему. Но не могу сказать, что у меня хорошо получается играть в BF по in-home streaming, как минимум из-за смазывания картинки очень сложно целиться в противников.


      1. AxisPod
        20.07.2015 17:02

        А потому что даже на очень больших битрейтах получается мыло. И уж никак я не поменяю прямое подключение по HDMI на это.


        1. Hertz
          21.07.2015 01:36

          То есть эффект замыливания никуда не деть? Он так заметен, из-за того что есть с чем сравнивать? Когда я смотрю видео из того же BF4 на ютубе, я не замечаю мыча, хоть там те же 1080p, как-то по-другому пожато?
          P.S. Впрочем да, мыло действительно и там.


          1. AxisPod
            21.07.2015 06:31

            Пробовал стримить стим и напрямую, заметны проблемы на границах объектов, в динамических играх это особо и не заметно, некогда смотреть, а вот в спокойных замечается еще как.


            1. Hertz
              21.07.2015 13:04

              Играя в Battlefield 4, размытие высокочастотной составляющей сильно сказывается на моей способности замечать противника на средней-дальней дистанции и в низкоконтрастном окружении :(


    1. asocial
      20.07.2015 14:56

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

      Видео


      1. timsoid
        20.07.2015 15:01

        Они говорят 60 FPS лагает, поэтому играют в 30.
        Ладно по прежнему буду играть с 5м HDMI кабелем)


    1. FatCat8 Автор
      20.07.2015 20:56

      Вот здесь, есть видео как это работает на windows habrahabr.ru/post/223999
      Дабы не умножать печалей видео вставлять не стал


    1. Hertz
      21.07.2015 13:21

      Могу показать несколько скринов или записей, сделанных параллельно на хосте и клиенте, при использовании steam in-home streaming (не совсем то, о чем говорится в после, но все же).


  1. sergey_dobrodey
    20.07.2015 13:50

    Какую именно модель и ревизию Raspberry вы использовали?


    1. FatCat8 Автор
      20.07.2015 20:51

      Raspbery Pi ver. 1 mod B


  1. NikitosZs
    20.07.2015 13:55
    +1

    А для компьютера-источника, является обязательным наличие видеокарты GeForce не хуже чем GTX 650 и установленный GeForce Experience.

    AMD нельзя?


    1. Jeditobe
      20.07.2015 15:28

      Непонятно, почему автор не пытается стримить через встроенную функцию стима.


      1. Dima_Sharihin
        21.07.2015 09:47

        Я стримил себе на планшет с десктопа, оборудованного недовидеокартой R7 250 с DDR3 памятью или вообще встроенной Intel HD4600. Так что требования какие-то завышенные, на мой взгляд


      1. ZeroOne_01
        21.07.2015 20:21

        Так там нужно залогиниться в стим с локальной машины — на RPI клиента steam вроде как нету.


    1. FatCat8 Автор
      20.07.2015 21:00

      Можно, называется Gaming Evolved. Но ее по понятным причинам (у меня, таки GForce) не пробовал.


  1. BlackSwan
    20.07.2015 13:59

    Жаль, я думал вы нашли способ запустить стимовский клиент и Steam In-home streaming. Про limelight читал раньше


  1. Pe4enie
    20.07.2015 18:56

    А в чём, собственно, новость? limelight — достаточно старый проект уже, сам пробовал его использовать чуть ли не год назад. С картинкой всё ок, а вот с такими лагами с устройств ввода играть решительно невозможно.


    1. FatCat8 Автор
      20.07.2015 21:06
      -1

      В игре CoD Advanced Warfire в сетевых режимах задержек ввода замечено не было.


  1. LexB
    30.07.2015 21:47

    Кстати разработчик переписал этот проект на си

    Moonlight Embedded is a complete rewrite of Limelight Embedded written in C instead of Java for much better performance. All the functionality of the java version has been ported.
    После этого была пара релизов с исправлениями. Никто не пробовал устанавливать на pi си-шную версию?
    Если да — отпишите пожалуйста о результатах.


    1. LexB
      31.07.2015 07:57

      Кстати, java клиент возможно не поддерживает новые GeForce Expirience
      При попытке pair вы получите ошибку

      GFE error: The client is not authorized. Certificate verification failed. (Error code: 401)
      Подробности тут github.com/irtimmer/moonlight-embedded/issues/169
      The old Java client doesn't work with newer GFE versions. You'll have to use the new C client. Instructions for installing the package are in the readme.