Название: Miracast (WiFi Display) RTP, RTSP Отправлено: NoIdea от Октябрь 16, 2018, 17:08 Технологии не стоят на месте, наверное, за этим будущее - уже сейчас телевизоры, телефоны, а теперь и PC (Windows 10) поддерживают эту технологию.
А что с отдельными программами? Кто-нибудь уже реализовывал в своих приложениях для стрима видео? В основе всё тот же RTSP, для которого в большинстве случаев используют GStreamer: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/qt-gstreamer/html/examples.html С удивлением обнаружил, что Qt, вроде как, умеет стримить "из коробки" для любого приложения: https://code.woboq.org/qt5/qtbase/src/plugins/platforms/openwfd/ Код Как использовать? Это работает?... (https://stackoverrun.com/ru/q/5871760) На сколько понял, реализация в Qt основана на старом, не поддерживаемом проекте: https://www.freedesktop.org/wiki/Software/openwfd/ Уже есть реинкарнация: https://github.com/albfan/miraclecast Ещё натыкался на реализацию от Intel: https://github.com/intel/wds Название: Re: Miracast (WiFi Display) RTP, RTSP Отправлено: Igors от Октябрь 17, 2018, 07:32 Не уверен что вполне понимаю о чем Вы, предполагаю речь идет о захвате видео/аudio с внешних устройств. Мой интерес чуть другой - чтение/запись видео и захват его с экрана, но технология видимо та же. Да, GStreamer. Долго я пытался отвертеться, пытались нанять человека, но увы :'( Пришлось самому. Впечатления
- многое можно сделать просто командной строкой или ее аналогом в runtime. Богатый набор кодеков, рулить ими научиться несложно. Вообще все очень солидно. "Собирать" самому хотя и можно, но не советуют, предоставляют готовые сборки, очень приятно. - но если где-то заклинило - решение может оказаться весьма сложным, а то и вообще не найтись. Дока хотя и обильная, но реальных примеров - раз-два и обчелся. Чистый "С" (написано без плюсов) изрядно бьет по ушам. Спрашивать на ихнем mailist - шансов на ответ мало. Название: Re: Miracast (WiFi Display) RTP, RTSP Отправлено: kuzulis от Октябрь 17, 2018, 13:16 У gstreamer не все кодеки аппаратные. Зависит от платформы. Оно более-менее работает в Linux, где для разных видео-карт (или ембеддед железок) сразу в дистрибутиве и gstreamer-овские кодеки для них идут (там где есть аппаратное кодирование). Но если gstreamer нужен для Windows - то нужно очень хорошо постараться чтобы оно заработало с аппаратными кодеками (их надо компилять из отдельных проектов, используя Intel/NVidia SDK и прочую фигню, как мне объясняли, я просто в итоге забил). Под андройд тоже кодеков может не быть.
Мы делали некий проект с передачей некоей двигающейся картинки на удаленный дисплей в режиме "реалтайма", т.е. почти без задержек, картинка передавалась по изменениям, а не с каким-то определенным фрейм-рейтом, через WiFi. В итоге получилась хрень, т.к. часто возникали артефакты от кодирования и потери кадрови прочая гадость... Да и сас WiFi еще та какашка. Еще и кодеки не все нормально настраиваемые там.. более менее софтварный x264 там можно поднастроить... Но если аппаратные, да еще для разных платформ - то фигвам :) ЗЫ: А мож руки у меня кривые. ЗЫЗЫ: Но как бы там ни было, но ИМХО, альтернативы у gstreamer нету. Название: Re: Miracast (WiFi Display) RTP, RTSP Отправлено: NoIdea от Октябрь 18, 2018, 20:39 У Windows 10 при стриме 1080p на телевизор (виртуальный дисплей) через Miracast, это занимает не более 5% CPU и ~8Mbit WiFi хотелось бы сопоставимой производительности, но похоже, что с gstreamer всё не так просто (раз нет аппаратных кодеков под Windows), как и с Miracast (бывают аппаратные ограничения WiFi).
OFFTOP: А текущую задачу со стримом возможно получится решить и как-то проще через генерацию и отправку JPEG: https://libjpeg-turbo.org https://github.com/roehrdor/opencl-jpeg-encoder Или это дохлый номер?... Просто есть вероятность, что принимающая сторона (аппаратная) сможет принять только JPEG кадры, но боюсь даже представить какого FPS и нагрузки удастся в этом случае добиться. Вот ещё наткнулся на интересный проект со стримом: https://github.com/obsproject/obs-studio Там даже есть аппаратные кодеки, стримит в огромное количество web-сервисов (WebRTC, RTMP) Название: Re: Miracast (WiFi Display) RTP, RTSP Отправлено: Igors от Октябрь 19, 2018, 08:00 У Windows 10 при стриме 1080p на телевизор (виртуальный дисплей) через Miracast, это занимает не более 5% CPU и ~8Mbit WiFi хотелось бы сопоставимой производительности, но похоже, что с gstreamer всё не так просто (раз нет аппаратных кодеков под Windows), как и с Miracast (бывают аппаратные ограничения WiFi). Что там есть или нет - лучше проверить самому, это написания кода не требует. Скачайте и установите GStreamer. Подберите нужные кодеки/модули используя утилиту gst-inspect. Потом запустите цепочку этих модудей утилитой gst-launch направив выход на экран (playbin) или в файл (filesink). Примеры работы с командной строкой найдете, на худой конец есть маны. Или это дохлый номер?... Просто есть вероятность, что принимающая сторона (аппаратная) сможет принять только JPEG кадры, но боюсь даже представить какого FPS и нагрузки удастся в этом случае добиться. Могу только сказать что такой "контейнер" (jpеg анимация) существует давно и используется многимиНазвание: Re: Miracast (WiFi Display) RTP, RTSP Отправлено: kuzulis от Октябрь 19, 2018, 09:31 > Скачайте и установите GStreamer. Подберите нужные кодеки/модули используя утилиту gst-inspect
Нет там аппаратных кодеков для Windows! Название: Re: Miracast (WiFi Display) RTP, RTSP Отправлено: Igors от Октябрь 19, 2018, 10:40 > Скачайте и установите GStreamer. Подберите нужные кодеки/модули используя утилиту gst-inspect Даже если и так - лучше убедиться в этом самому :). И откуда такая уверенность? Навксидку гуглим напр "GStreamer rtsp windows" - совсем не пусто. Пусть товарищ изучаетНет там аппаратных кодеков для Windows! Название: Re: Miracast (WiFi Display) RTP, RTSP Отправлено: kuzulis от Октябрь 19, 2018, 12:54 > И откуда такая уверенность?
Оттуда что я уже ранее этим заморачивался. Gstreamer-овское SDK для Windows не содержит никаких аппаратных кодеков. Их нужно искать и компилять самому под конкретную видеокарту. |