LINUX.ORG.RU

Избранные сообщения xperious

Как прошёл FOSDEM 2021 на Matrix

Новости — Open Source
Группа Open Source

6-7 февраля 2021 года прошла одна из крупнейших бесплатных конференций, посвящённая свободному программному обеспечению — FOSDEM. Обычно конференция проводилась вживую в Брюсселе, но из-за пандемии коронавируса её пришлось перенести в онлайн. Для реализации этой задачи организаторы скооперировались с командой Element и выбрали чат на основе свободного протокола Matrix для построения федеративной сети коммуникаций в реальном времени, свободную VoIP-платформу Jitsi Meet для интеграции видеоконференций, и собственные инструменты для их автоматизации. Конференцию посетило более 30 тысяч пользователей, из которых 8 тысяч — активные, а 24 тысячи — гости.

Протокол Matrix построен на основе линейной истории событий (events) в формате JSON внутри ациклического графа событий (DAG): простыми словами, является распределённой базой данных, хранящей полную историю отправленных сообщений и данные участвующих пользователей, реплицируя эту информацию между участвующими серверами — ближайшей аналогичной по работе технологией может быть Git. Основной реализацией этой сети является мессенджер с поддержкой сквозного шифрования и VoIP (аудио- и видеозвонков, групповых конференций). Эталонные реализации клиентов и серверов разрабатываются коммерческой компанией Element, сотрудники которой также возглавляют некоммерческую организацию Matrix.org Foundation, курирующую разработку спецификации протокола Matrix. На данный момент в сети Matrix насчитывается 28 миллионов аккаунтов и 60 тысяч серверов.

( читать дальше... )

>>> Подробности

 , , , ,

commagray
()

Свободная графика для RISC-V

Новости — Hardware and Drivers
Группа Hardware and Drivers

Группа разработчиков обещает создать расширение RISC-V для работы с графикой. Анонс упоминает троих:

  • Атиф Зафар (Atif Zafar), директор компании Pixilica, выпускающей Arduino-совместимые платы FPGA для разработчиков RISC-V.
  • Грант Дженнингс (Grant Jennings), директор по международному маркетингу GOWIN Semiconductor, выпускающей неколько семейств FPGA (в том числе DSP и микроконтроллеры) и инструментарий для дизайна.
  • Тед Мэрина (Ted Marena), старший директор экосистемы RISC-V в Western Digital и временный директор CHIPS Alliance, разработчика и хостера проектов открытого аппаратного обеспечения.

План предусматривает:

  1. Завершить разработку набора векторных команд «V».
  2. Создать на его базе набор 32-битных инструкций «X» (RV32X) — для обработки изображений и 3-мерной графики, и с добавлением новых типов данных для графики.
  3. Выпустить эталонную реализацию RV32X (в FPGA).
  4. Масштабировать RV32X в 64 бита — RV64X.

Заявленные цели включают:

  • Экономное использование площади чипа.
  • Отсутствие конкуренции с коммерческими предложениями.
  • Ориентация на FPGA, ASIC, микроконтроллеры с низким энергопотреблением.
  • Соответствие DirectX Shader Model 5, OpenGL/ES и Vulkan.

Как видно из рисунка, возможны будут и маломощный процессор RISC-V с единственным графическим блоком, и использование множества таких процессоров в качестве шейдеров большого GPU параллельно с основным процессором RISC-V.

Согласно статье в EE Times будут использованы некоторые идеи Libre GPU.

>>> Презентация о планируемых инструкциях и типах данных

 ,

question4
()

Проброс порта в VPN

Форум — Admin

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

У него там вообще шлюз свой прописан и все что не из его подсети, он отвечает на свой шлюз. Вопрос в том как сделать, чтоб мой изначальный запрос (tcp пакет) содержал обратный адрес, который комп на той стороне туннеля поймет куда отвечать.

Блин, я так объясняю, наверное них.. не понятно)

 ,

ZugDuk
()

Детектировать троттлинг процессора

Форум — Linux-hardware

Есть ноутбук с AMD E1-1200. И периодически система начинает очень сильно тормозить, с загрузкой cpu 100% от самых элементарных действий типа просто держать DE открытым. И при этом временно помогает смена термопасты. Я подозреваю, что что-то не в порядке с охлаждением, проц греется и начинает снижать производительность чтобы не перегреться.

cpufreq-info при этом ничего необычного не пишет, частоты 777 - 1400 МГц.

Температура в районе 50 градусов.

Есть ли возможность как-то явно у процессора спросить, троттлится ли он по температуре?

 ,

cvs-255
()

NeoChat 1.0, KDE клиент для сети Matrix

Новости — Open Source
NeoChat 1.0, KDE клиент для сети Matrix
Группа Open Source

Matrix является открытым стандартом для интероперабельной, децентрализованной связи в реальном времени по IP. Она может быть использована для обмена мгновенными сообщениями, голосом или видео по VoIP/WebRTC или в любом другом месте, где вам нужен стандартный HTTP API для публикации и подписки на данные при отслеживании истории разговоров.

NeoChat – кроссплатформенный Matrix клиент для KDE, работающий на ПК и мобильных телефонах. NeoChat использует фреймворк Kirigami и QML для отрисовки интерфейса.

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

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

NeoChat также включает в себя базовый редактор изображений, который позволяет обрезать и поворачивать изображения перед их отправкой. Редактор изображений реализован с помощью KQuickImageEditor.

>>> Подробности

 , ,

cocucka
()

ffmpeg дропает кадры с камеры, если битрейд увеличивается (too full or near too full)

Форум — Development

Вкратце: стримминг камеры(+звука) на rtmp сервисы через ffmpeg

Проблема в следующем: Кадры со входа дропаются, если битрейд передачи потока превышает ~400kbps.

По умолчанию, если ffmpeg получает видеокадр «слишком рано» (в то время как предыдущий кадр еще не закончен), он отбрасывает этот кадр, чтобы он мог поддерживать ввод в реальном времени

Вот что в доках:
https://trac.ffmpeg.org/wiki/DirectShow

By default FFmpeg captures frames from the input, and then does whatever you told it to do, for instance, re-encoding them and saving them to an output file. By default if it receives a video frame «too early» (while the previous frame isn't finished yet), it will discard that frame, so that it can keep up the the real time input.

Ну ок, тут вроде понятно, если кадры с камеры идут очень быстро, а я их не успеваю обрабатывать, то их нужно отбрасывать, для достижения реалтайма. Но я не вижу узких мест. Кодировщик настроен на минималку, FPS на входе и на выходе одинаков. Процессор нагружен на 2-3%. Сеть ДОМРУ ну где то 50Mbps. Сервер тоже тянет.

В целом все хорошо работает. Но сбился с толку уже с этим rtbufsize, который постоянно «too full or near too full», если битрейд превышает 400kbps

rtbufsize - буфер памяти для входа для realtime устройств. Я его установил в 10M(мегабайт). Играть с ним нет вообще никакого смысла, если установишь хоть в гигабайт, то все равно он со временем переполнится, а latency будет огромный

Камеру установил на минималку (640x480@20), выходной поток такой же (640x480@20), битрейд максимальный - 800k.

ffmpeg -f dshow -video_size 640x480 -framerate 20 -rtbufsize 10M -i "video=dev_realtime" -vcodec libx264 -preset veryfast -b 800k -maxrate 800k -bufsize 1600K -r 20 -f flv "rtmp://x.y"


Ещё заметил:
* если на выход установить файл (out.flv), то все четко идет.
* если поднять локально rtmp сервер (ffmpeg -y -f flv -listen 1 -i «rtmp://127.0.0.1:1935/app/live») и передавать на него, то тоже все четко идет
* udp://microsoft.com:666 - хорошо идет, буфер не переполняется

Удаленный сервер менял (от оборудования до провайдера), на сервере замерял битрейд - приходит четко 800kpbs. То есть успевает ffmpeg в сеть передавать?

Не пойму в чем затык! Вроде и на сервер успевает передавать своевременно, но и в тоже время на входе дропаются кадры. Ничего не пойму

Все гугления сводятся к бестолковым «увеличь rtbufsize»

UDP
Кажется баг в rtmp под windows. Помогают правки в реестре (DefaultReceiveWindow, DefaultSendWindow)
https://trac.ffmpeg.org/ticket/1604

 , , , ,

gobot
()

condition_variable без мьютекса

Форум — Development

Привет. Надо такое: есть некоторое количество потоков (на стадии компиляции количество неизвестно, в рантайме количество изменяется), нужно их всех усыпить и разбудить из вне в нужный момент. condition_variable - нафиг мне там мьютекс не нужен. Заюзать барьеры - можно, но я тут покумекал, есть свои минусы и лишний гемор. Нужно просто в ждущих потоках сделать wait(), а в управляющем wakeup(), и все ждущие потоки просыпаются, поработали и пошли на новый круг. Без всяких счетчиков - если кто-то затормозил на прошлом круге и не успел сделать wait(), то следующий круг просто пропустил.

 ,

pavlick
()

video streaming proxy server

Форум — General

Задача реализовать потоковое видео по схеме:

  1. вебкамера через браузер транслирует поток на сервер.
  2. к серверу подключаются клиенты через браузер.
  3. вебкамер может быть много, у разных стримеров.
  4. серверов тоже может быть много, чтобы не упираться в пропускную способность сети.
  5. все это управляется через родительский сервер с сайтом на php.

Подскажите куда копать? наткнулся на нечто похожее здесь https://flashphoner.com/webrtc-server-potokovogo-video-dlya-onlajjn-t/?lang=ru какие есть еще варианты?

 

commetaR37
()

Проигрывание торрентов.(фильмов). Аналог MediaGet для linux

Форум — General

Ищу аналог mediaget на Линукс. wine не подходит. Совет виндоссам, у вас есть такая штука как Soda Player.

 , ,

MelomanIk
()

Gitter становится частью сети Matrix

Новости — Open Source
Группа Open Source

Компания Element приобретает Gitter у GitLab, чтобы адаптировать сервис для работы в условиях федеративной сети Matrix. Это первый крупный мессенджер, который планируется прозрачно перенести в децентрализованную сеть вместе со всеми пользователями и историей сообщений.

Gitter является свободным централизованным средством для групповой коммуникации между разработчиками. Помимо типовой функциональности командного чата, по сути своей схожей с несвободным Slack, Gitter также предоставляет инструменты для тесной интеграции с платформами совместной разработки, вроде GitLab и GitHub. В прошлом сервис был проприетарным, пока его не приобрела компания GitLab.

( читать дальше... )

>>> Подробности

 , , ,

commagray
()

hi-res audio

Форум — Talks

Привет, ЛОР!

В продолжении моего предыдущего треда про Bluetooth и кодеки. В комментариях всплыла статья, в которой том числе упоминалось, что LDAC – плохой кодек, потому что не поддерживает high-resolution audio, т.е. что-то с параметрами сэмплирования 24bit/96kHz и выше.

Если смысл в больших размерах сэмплов я могу понять (больше динамический диапазон и так далее), то зачем нужна большая частота дискретизации? Про теорему Котельникова ты, ЛОР, я думаю, знаешь. Поэтому объясни мне, есть ли технический смысл в записи аудио с частотой больше 44.1kHz?

Кстати, ради интереса, я накопал у себя на диске записи с частотой 192kHz. Запустив Sonic Visualiser, я увидел примерно вот это: https://i.imgur.com/sRDR44y.jpg

Как видишь, ЛОР, выше 20kHz протекает только какой-то шум. Плюс есть непонятная полоса в районе 77kHz. Кстати, что это?

В общем, расскажи, ЛОР, это всё просто блажь и никакого смысла в этом нет? Или всё же FLAC в 192kHz – единственное верный путь?

 , ,

hateyoufeel
()

Bluetooth и кодеки

Форум — Talks

Привет, ЛОР!

А вот объясни мне, пожалуйста, такую штуку. Насколько я понимаю, A2DP позволяет использовать любой кодек. Единственное требование в реализации профиля: сделать поддержку SBC как фоллбэка. В итоге, есть наушники с AAC, с разными вариантами aptX, Sony свой собственный LDAC запилили.

Мой вопрос: а почему нет Bluetooth-наушников с нативной поддержкой FLAC? Что именно этому мешает? Лицензию покупать не нужно, с патентами тоже проблем нету.

 , ,

hateyoufeel
()

Ролик 30 фпс

Форум — General

Друзья, ай нид хелп. Что происходит? Мне нужен ролик 30 фпс из коллекции фреймов, пробую два варианта:

$ ffmpeg -i %04d.png -c:v libx264 -preset slow -crf 18 -c:a aac -ar 48000 -ac 2 -profile:v high -level 4.0 -bf 2 -coder 1 -pix_fmt yuv420p -b:v 10M -r 30 -b:a 320k output.mp4

$ ffmpeg -i %04d.png -c:v libx264 -preset slow -crf 18 -c:a aac -ar 48000 -ac 2 -profile:v high -level 4.0 -bf 2 -coder 1 -pix_fmt yuv420p -b:v 10M -framerate 30 -b:a 320k output.mp4

т.е. в первом варинте применил опию -r, а во втором -framerate. Во втором случае получаю 25 (или 24, не помню) фпс, во втором 30 фпс, но вставляются автоматом доп фреймы, которые делают ролик по продолжительности равным аналогичному видосу на 25 фпс. Опции для ффмпг брал с сети, рекомендуемые для ютуба. Мне нужен честные 30 фпс лишь из тех фреймов, который я указал (-i %04d.png). Что я неправильно передал в консоли?

 

pavlick
()

Есть VDPAU и VA-API. На каком GPU - что?

Форум — Linux-hardware

Я составил таблички и пояснения к ним:

2008-2013 годы:
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Catalyst (fglrx)          │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [ ] │ [ ] │
├──────────────────────────┼─────┼─────┤
│radeon                    │ [ ] │ [ ] │
└──────────────────────────┴─────┴─────┘
2014 год (Ubuntu 13.10 или Linux Mint 16 + Oibaf PPA)
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Catalyst (fglrx)          │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│radeon                    │ [x] │ [ ] │
└──────────────────────────┴─────┴─────┘
2015 год
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Catalyst (fglrx)          │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [x] │ [x] │
├──────────────────────────┼─────┼─────┤
│radeon                    │ [x] │ [x] │
└──────────────────────────┴─────┴─────┘
2016 год - настоящее время
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [x] │ [x] │
├──────────────────────────┼─────┼─────┤
│radeon/amdgpu/amdgpu-pro  │ [x] │ [x] │
└──────────────────────────┴─────┴─────┘

Первые 5 лет на NVIDIA был VDPAU, а на ATi и Intel - VA-API.

Потом в открытых драйверах Radeon и Nouveau стал поддерживаться VDPAU. Почему разработчики этих открытых* драйверов выбрали именно VDPAU? Может монетку кинули? А ведь было бы так красиво, если бы NVIDIA была единственная во второй таблице с поддержкой VDPAU! Но - что было, то было, и история не терпит сослагательного наклонения

Скорее всего, выбор объяснялся тем, что на YouTube был Flash Player, а он поддерживал только VDPAU. Однако в 2016 году YouTube отказался от Flash Player, а вместе с ним - и остальные сайты с онлайн видео и аудио. И тут мне следовало бы сказать «поэтому в radeon и nouveau добавили VA-API», но это произошло ещё в 2014, за два года до ухода YouTube с Flash Player

В декабре 2015 года была выпущена последняя версия проприетарного драйвера видеокарт Catalyst (также известного как fglrx). Последняя версия Ubuntu, в которой можно запустить версию 15.12 - 16.04, да и то нужно установить xserver из 15.10. Поэтому я убрал Catalyst из таблицы, и добавил amdgpu-pro, в который реинкарнировался Catalyst

 , , , ,

ZenitharChampion
()

Вопрос о ядре

Форум — General

Допустим, имеется конфиг ядра, где почти всё выключено от разработчика дистрибутива. Нужно включить модули к железу определённого компа. Речь не идёт об универсальной конфигурации, где всё включено. Это я и сам умею. Вопрос в следующем, как вы определяете оборудование своего компа в конфиге ядра? Интересуют методы. Как связать выводы консольных команд об оборудовании с названиями подключаемых модулей в .config ядра? Поделитесь опытом.

 , ,

cdrw
()

Нельзя TLS 1.3, ESNI, DoH, DoT

Форум — Talks

Новый пока законопроект появился

https://www.rbc.ru/technology_and_media/21/09/2020/5f68b08e9a79475b652dcf7c

По экспертным оценкам Минцифры, растет количество маскирующих протоколов, позволяющих скрыть фактические сетевые адреса устройств от внешних систем и протоколов шифрования. «Все большее распространение получают протоколы с применением криптографических алгоритмов и методов шифрования TLS 1.3, ESNI, DoH (DNS поверх HTTPS), DoT (DNS поверх TLS) (криптографические протоколы, которые обеспечивают защищенную передачу данных в интернете — РБК)», — указано в пояснительной записке.

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

 ,

praseodim
()

Утверждён стандарт C++20

Форум — Development

На opennet.ru обсуждают утверждение стандарта С++20:

https://www.opennet.ru/opennews/art.shtml?num=53670

На лоре ещё 7 месяцев назад обсудили :)

Стандарт C++20 утверждён

Но может кто ещё хочет :)

 

fsb4000
()

Кванмёнизация рунета

Форум — Talks

Закон о ликвидации изоляции рунета представили ко второму чтению в итоговом виде. Прямо сейчас его будут принимать. Вот такое оно будет: https://meduza.io/feature/2019/04/11/zakonoproekt-ob-izolyatsii-rossiyskogo-s...

Из интересного: сбои системы будут иметь место и отвечать за них никто не будет (операторы связи неувиновны по закону).

Update: Всё, закон приняли (пообсуждали аж 8 минут): https://meduza.io/video/2019/04/11/vy-lishaete-grazhdan-rossii-prava-poluchat... Можно танцевать!

 

Evgueni
()

Вести с полей стандартизации C++: C++20 design is complete (Kona, 2019-02)

Форум — Development

На Reddit-е появился большой пост с описанием того, что вошло в C++20 в результате очередного заседания комитета. На этой встрече в С++20 включили:

Modules!

Coroutines!

static, thread_local, and lambda capture for structured bindings.

std::polymorphic_allocator<>.

std::midpoint and std::lerp.

std::execution::unseq execution policy.

std::ssize() free function that returns a signed size.

std::span usability enhancements.

Precalculated hash values in lookup.

На следующей встрече в июне 2019-го будут рассматриваться к включению в C++20 следующие предложения (принципиально они уже одобрены, но до сих пор не были включены из-за незавершености формальных спецификаций):

Expansion statements.

The C++20 synchronization library.

std::format.

constexpr std::vector.

Allow constexpr allocation, but disallow allocations that are not deleted at compile time.

constexpr std::type_info::operator==.

New conceptification of iterators.

Monadic operations for std::optional.

std::source_location.

std::flatmap.

std::flatset.

std::ostream_joiner.

Stack trace library.

std::byteswap.

constinit.

Deprecating some uses of volatile.

Implicit creation of objects for low-level object manipulation.

using enum.

Ну и до кучи указывается, что еще было добавлено в C++20 ранее:

Concepts.

Contracts.

Ranges.

operator<=>.

A lot more constexpr features: consteval functions, std::is_constant_evaluated, constexpr union, constexpr try and catch, constexpr dynamic_cast and typeid.

Feature test macros.

std::span.

Synchronized output.

std::atomic_ref.

За подробностями лучше сходить на Reddit, там много поясняющего текста. Так же можно почитать отчет Херба Саттера.

 

eao197
()

Флаги для достижения макс. скорости кодирования видео

Форум — Multimedia

Подскажите плиз как добиться максимальной производительности для ffmpeg ( версия 4.1-5) :

  • Нужно ли отключить на этом серваке Hyper threading ?
  • Какие еще флаги компиляции добавить ( lto и тд) ?
processor	: 39
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz

Профиль кодирования видео:

-vf scale=-2:360 -profile:v high -level 4.0 -pix_fmt yuv420p -threads:v 4 -preset veryfast -movflags +faststart -c:a aac -y -f mp4

Сборка его :

built with gcc 9 (Debian 9.2.1-19)
configuration: --enable-gpl --enable-version3 --disable-static --enable-shared --enable-avisynth --enable-chromaprint --enable-frei0r --enable-gmp --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-librtmp --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-libmysofa --enable-openal --enable-opencl --enable-opengl --enable-libdrm --enable-nonfree --enable-libfdk-aac --enable-libbluray

 ,

pinachet
()