Некоторое время назад Valve представила приставку для телевизора Steam Link, позволяющую использовать телевизор в качестве удаленного монитора. Как владелец Raspberry Pi, я тут же озаботился вопросом: «А оно, сможет?».
Заинтересовавшихся прошу далее.
Для стримминга используется обычная Raspbian. Это для Raspberry. А для компьютера-источника, является обязательным наличие видеокарты GeForce не хуже чем GTX 650 и установленный GeForce Experience.
На компьютере-источнике должен быть запущен клиент Steam, в GeForce Experience должна быть разрешена потоковая передача данных.
Запускаем Raspberry Pi, входим в консоль, качаем Java Development Kit. Пишем:
Далее скачиваем клиент limelight:
Или более свежий отсюда: https://github.com/irtimmer/moonlight-embedded/releases
Устанавливаем кодек Opus:
Если звук и так идет через HDMI, то следующие команды пропускаем, если нет то:
И прописываем hdmi_drive=2
Соединяем Raspberry с компьютером-источником:
Через минуты две в консоли появится сообщение “Please enter the following PIN on the target PC: **** “, где звездочки — это предложенный код. На компьютере-источнике вылезет такая табличка:
Туда и вбивается этот PIN.
Выходим из графической оболочки (Ctrl+Alt+F1) и вбиваем:
Steam-клиент переходит в режим BigPicture и на экране телевизора появляется его копия. Игры из Steam поддерживаются все. Даже такие тяжеловесные, как CoD Advanced Warfire, Bioshock Infinite и Wolfenstein The New Order. Управление производится привычным образом с помощью клавиатуры и мыши подключенных к Raspberry. Так что для компьютера за 29$ нашлось еще одно применение, кроме как медиа-центр и ретро-консоль. Что, учитывая предварительную стоимость для Steam Link в 49$, выглядит более чем заманчиво. А уж отсутствие еще одной «коробки с проводами», это вообще подарок небес.
Заинтересовавшихся прошу далее.
Для стримминга используется обычная 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$, выглядит более чем заманчиво. А уж отсутствие еще одной «коробки с проводами», это вообще подарок небес.
timsoid
А есть какие нибудь тесты, как выглядит графика через такой стрим?
AllexIn
А почему графика должна отличаться?
Там единственная проблема — лаги.
timsoid
ну он же как то пережимает графику, врядли там один в один передача как с HDMI выхода видеокарты
agranom555
А почему бы и нет? Скорости сети локальной думаю хватает на трансляцию в оригинале.
Mnemonik
1920 * 1080 * 3 (3 байта на пиксель RGB) * 60 (кадров в секунду) = 373248000 байт в секунду. 373 мегабайта (3 гигабита) в секунду несзжатый поток 1080р 60fps
synchrone
Существуют же lossless видео кодеки
Mnemonik
кодеки? h264 по ссылке как минимум несет картинку в формате 4:2:0, а это значит она будет заблюрена, просто по факту формата как такового. Даже если кодек будет настроен не делать кадры из разницы следующего и предыдущего, или не знаю как там они добиваются того что они называют 'loseless', но картинка будет заблюрена это точно.
возможно на телевизоре этого и не видно будет, но блин, покупать видео-карту за n00 долларов которая изо всех сил будет обсчитывать миллионы полигонов со всей их четкостью, чтобы потом просто смазать все при передаче?.. купить playstation4 и то эффективней будет.
Meklon
Эмм… А как тогда Blu-ray с битрейтом 36—216 Мб/с живет? Просто хочу разобраться.
Mnemonik
видео формат изначально несет 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).
собственно я не говорю что очень много будет потеряно, разница будет не громадная, возможно даже приятная глазу (эффект всего этого — такое легкое замыливание всей картинки), просто все-таки это не трансляция в оригинале и как минимум люди трудились, соединяли миллионы транзисторов в видео карте чтобы получить ту самую четкость которую требуют миллионы геймеров по всему миру, чтобы потом они пустили все это по пережатому каналу на телевизор… обидно.
Hertz
Я играю по 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 артефактов как-будто бы нет.
Sketch_Turner
У них (Steam) написано, что крайне желательно подключение по проводу или как минимум Wi-Fi 100Mbit (который не у всех есть). Так что лаги точно будут.
Hertz
Будут зависания звука и падение качества картинки (bitrate уменьшается), но в целом лагов может и не быть. Однако играть, когда картинка внезапно может расплыться, не очень приятно.
Sketch_Turner
Играл у себя дома прямо рядом с роутером. Импутлаг хоть и слабый, но все же заметный. Играть в нечто динамичное было бы невозможно. Собственно, пофиг на графику и мыло. Импутлаг всё портит.
Hertz
Честно говоря в BF4 не заметил input lag'а, возможно я так долго не играл на нормально мониторе, что потерял чувствительность к нему. Но не могу сказать, что у меня хорошо получается играть в BF по in-home streaming, как минимум из-за смазывания картинки очень сложно целиться в противников.
AxisPod
А потому что даже на очень больших битрейтах получается мыло. И уж никак я не поменяю прямое подключение по HDMI на это.
Hertz
То есть эффект замыливания никуда не деть? Он так заметен, из-за того что есть с чем сравнивать? Когда я смотрю видео из того же BF4 на ютубе, я не замечаю мыча, хоть там те же 1080p, как-то по-другому пожато?
P.S. Впрочем да, мыло действительно и там.
AxisPod
Пробовал стримить стим и напрямую, заметны проблемы на границах объектов, в динамических играх это особо и не заметно, некогда смотреть, а вот в спокойных замечается еще как.
Hertz
Играя в Battlefield 4, размытие высокочастотной составляющей сильно сказывается на моей способности замечать противника на средней-дальней дистанции и в низкоконтрастном окружении :(
asocial
Пару недель назад натыкался на ролик на ютубе, где как раз показан этот способ. По крайней мере на видео выглядит все достойно
timsoid
Они говорят 60 FPS лагает, поэтому играют в 30.
Ладно по прежнему буду играть с 5м HDMI кабелем)
FatCat8 Автор
Вот здесь, есть видео как это работает на windows habrahabr.ru/post/223999
Дабы не умножать печалей видео вставлять не стал
Hertz
Могу показать несколько скринов или записей, сделанных параллельно на хосте и клиенте, при использовании steam in-home streaming (не совсем то, о чем говорится в после, но все же).
sergey_dobrodey
Какую именно модель и ревизию Raspberry вы использовали?
FatCat8 Автор
Raspbery Pi ver. 1 mod B
NikitosZs
AMD нельзя?
Jeditobe
Непонятно, почему автор не пытается стримить через встроенную функцию стима.
Dima_Sharihin
Я стримил себе на планшет с десктопа, оборудованного недовидеокартой R7 250 с DDR3 памятью или вообще встроенной Intel HD4600. Так что требования какие-то завышенные, на мой взгляд
ZeroOne_01
Так там нужно залогиниться в стим с локальной машины — на RPI клиента steam вроде как нету.
FatCat8 Автор
Можно, называется Gaming Evolved. Но ее по понятным причинам (у меня, таки GForce) не пробовал.
BlackSwan
Жаль, я думал вы нашли способ запустить стимовский клиент и Steam In-home streaming. Про limelight читал раньше
Pe4enie
А в чём, собственно, новость? limelight — достаточно старый проект уже, сам пробовал его использовать чуть ли не год назад. С картинкой всё ок, а вот с такими лагами с устройств ввода играть решительно невозможно.
FatCat8 Автор
В игре CoD Advanced Warfire в сетевых режимах задержек ввода замечено не было.
LexB
Кстати разработчик переписал этот проект на си
После этого была пара релизов с исправлениями. Никто не пробовал устанавливать на pi си-шную версию?Если да — отпишите пожалуйста о результатах.
LexB
Кстати, java клиент возможно не поддерживает новые GeForce Expirience
Подробности тут github.com/irtimmer/moonlight-embedded/issues/169При попытке pair вы получите ошибку