LINUX.ORG.RU
ФорумTalks

Насколько реально смотреть видео через vnc в стомегабитной локалке

 , , , ,


0

1

Интересует, предельные значения лэйтенси сего недопротокола и его недореализаций. TurboVNC не придумал как прикрутить к решаемой задаче, см. ниже.

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

Poc делал, на dummy драйвере интеловском и x11vnc. Но лэйтенси, оставляет желать лучшего. К просмотру даже fhd видео точно подпускать этот конфиг не стоит.

★★★★★

Оно и на гигабите лагает точно так же. Проблемы в захвате картинки с экрана в vnc. RDP как-то лучше отрабатывал относительные изменения и держал выше частоту кадров.

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

Вот вопрос - есть ли годные реализации rdp для онтопика? Что стоит потыкать?

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

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

Хочется получить эффект похожий на miracast, только с расширением дисплея.

С помощью vnc можно сделать например так. С парой дополнительных телодвижений сиё работает и поныне, но лэйтенси слегка унылое, кино не посмотреть.

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

Зависит от алгоритма сжатия. JPEG с сильной компрессией давал в принципе адекватное изображение, хотя текст заметно размывался. Есть смысл заглянуть в опции TurboVNC, там есть параметр, чтобы уменьшить задержку (по дефолту он равен 40 мс).

Ещё есть SPICE, специально заточенный под передачу видео.

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

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

В случае ffmpeg - встаёт вопрос об эффективном клиенте и выборе протокола. Почему-то по запросу lowlatency куча народу в сети волохают всё через tcp, это меня тоже слегка настораживает.

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

Настоящему рокнрольщику - нужно всё.

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

Да, видел похожее мнение в сети, видимо то, с чего стоит начать потуги. И более того это единственное решение которое rtp использовало а не непонятные пайпы на netcat.

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

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

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

dikiy ★★☆☆☆
()
Ответ на: комментарий от smilessss

Если это было не через sshfs, то прошу описать подробнее реализацию под онтопик.

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

Потому, что задача сделать именно расширение монитора а не просто видео проигрывать. Но, хочется, чтобы видео можно было проигрывать в том числе. В идеале, конечно и в игрушки играть. Тот же steam вполне себе такое позволяет, но хочется на oss стеке построить а не прикостылить стим.

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

Ого, и оно прямо может в видео? 2к в 30 fps осилит? А в 60? Я люблю открытое ПО, но без фанатизма. Реквестирую рецепт успеха. Когда saas решение с сетью как минимум из 3 пиров, работающих по tcp(кмк), и, один из пиров в интернете, таки выдаёт лэйтенси хотя бы 100 мс.

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

В локальной сети оно работает напрямую.

TCP при правильном использовании не даёт дополнительной задержки. И я не очень уверен, что там именно TCP.

h31 ★★★★
()

накой нужен такой изврат, если проще зайти на другую машину через сеть, через менеджер входа gdm с XDMCP и смотреть напрямую?

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

TCP при правильном использовании не даёт дополнительной задержки

Эта тема для отдельной дискуссии и она таки про микросекунды в основном.

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

Ну, включить моник в xrandr сильно проще, если речь идёт о ежедневном использовании. Это раз. Второй момент - хочется обходится без перетыкания hdmi кабеля в случае если надо поработать.

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

Чего я хочу: большой моник подрублен к orange pi.

Я прихожу с ноутом, и хочу потрудиться. Ставлю ноут на зарядку, врубаю в сеть и включаю в xrandr(или любом его ui) сетевой моник(dummy драйвер от интел). И пускаю некий скрипт(в poc, который я уже делал это был x11vnc и пинок по ssh tigervnc клиента на приёмной стороне). Работать - можно. Видео посмотреть уже не очень.

Это может в итоге оказаться и не удобным но хочется :)

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

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

В общем весь сырбор в том, что бы не переключать hdmi аппаратно. Ну, и потенциально, usb тоже (но это явно отдельная история).

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

Т.е. по сути - ты прав я хочу сделать сетевой kvm свитч в перспективе. По идее пропускных способностей домашних сетей на это должно хватать.

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

С учётом того, что экран обычно обновляется с частотой 60 FPS, задержки меньше 8-16 мс вообще никак не будут видны.

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

Хорошо бы тут ещё понимать, что пиковая лэйтенси может и не очень различаться в зависимости от протокола. Но, в случае udp с пропусками устаревших пакетов, лучшие результаты будут сравнимы с tcp, однако распределение будет в разы лучше при прочих равных.

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

Не осилит.

Вообще бессмысленно жать и гнать по сети, когда уже есть сжатый поток: само видео.
Вот его и надо гнать, а декодировать на приёмнике.

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

Он в первую очередь про виртуалки. Если вывести экран VM на отдельный монитор, и в этом же VM включить Spice, то будет именно так работать. Кстати, такой же трюк может работать и с VNC без виртуалок. Хочешь поработать на локальной машине? Подключаешься к локалхосту VNC-клиентом. Удалённо? Тогда как обычно. Либо через xpra или аналог организовать проксирование на уровне иксов, чтобы перекидывать приложения с одного реального экрана на виртуальный или наоборот.

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

Кстати, почему сеть именно соточка? На гигабите всё было бы гораздо проще.

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

Если сеть не перегружена, её скорости хватает и приложение отправляет данные с небольшой скоростью, то теоретически retransmission-ов быть не должно. Работает ведь как-то SSH по мобильной сети, где потери данных гигантские, как и latency.

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

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

Кстати, почему сеть именно соточка?

Какая есть.

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

Пример с ssh скорее антипоказательный, ибо mosh в сетях с высокими задержками показывает гораздо более приятное время отклика, начиная с пинга 70 это становится заметно невооружённым взглядом.

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

Ставлю ноут на зарядку, врубаю в сеть и включаю в xrandr(или любом его ui) сетевой моник(dummy драйвер от интел). И пускаю некий скрипт(в poc, который я уже делал это был x11vnc и пинок по ssh tigervnc клиента на приёмной стороне). Работать - можно. Видео посмотреть уже не очень.

Не проще ли ноутбук к монитору и клавомыши подключить через KVM-свитч?

В общем весь сырбор в том, что бы не переключать hdmi аппаратно.

А ведь HDMI для этого и сделан - чтобы аппаратно подключаться. И мониторы сделаны чтобы аппаратно подключаться. Максимум, что ты можешь сделать для беспроводного соединения - это что-то вроде передачи изображения через Miracast. Но зачем, когда можно кабель подключить или KVM-свитч прицепить?

Если тебе надо _поработать_, то обойдёшься и без видео. Достаточно будет конкретное приложение пробрасывать через иксы. Если тебе надо видео, то можешь стримить или по удалённой файловой системе покрутить. Как видишь, описанная задача решается элементарным грамотным распределением задач по соответствующим инструментам.

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

Если бы пропускной способности домашней сети для этого хватало, то все средства ввода-вывода давно бы по протоколам через LAN работали, ибо нафиг не нужно было бы париться с десятками гигабит данных без допуска малейших лагов по HDMI и DisplayPort. Так что нет - пропускной способности не только домашней, но и специализированной быстрой локальной сети не хватит.

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

Ну, это ты уже прибегаешь к излюбленной пиратскойлоровской тактике - вам не нужно, то, чего вы спрашиваете :)

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

Ты пытаешься практиковать нецелевое использование интерфейсов и получаешь закономерный результат. Я просто указываю на это и предлагаю использовать правильно подобранные инструменты для решения задачи.

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

Какая есть.

Есть смысл переделать. Тем более это пригодится не только для удаленного дисплея.

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

У распределения слишком много параметров, чтобы прямо вот так говорить «в разы». И слишком много факторов, которые оказывают влияние на работу протоколов. Лучше просто взять и попробовать. Тем более, как уже говорили выше, задержки меньше 8-16 мс несущественны при данном применении.

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

Mosh сам отрисовывает введённые с клавиатуры символы и корректирует их при неправильном предсказании, а SSH ничего не предсказывает и просто ждёт ответа с сервера. Поэтому и чувствуется, что Mosh быстрее. Если у Mosh не получается предсказать изменения на экране, то субъективно задержка там сравнивая с SSH.

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

Mosh сам отрисовывает введённые с клавиатуры символы

Это только, если ответ не прилетел через таймаут? И он эти символы подчёркивает, т.е можно понять когда это происходит(обычно тут речь уже о задержках 150мс и более). И это только про ввод.

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

Лучше просто взять и попробовать

Золотые слова, но, не та посылка с али пришла пока что:(

Есть смысл переделать.

Обязательно, но не сейчас.

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