LINUX.ORG.RU

Выпуск FluxCast 0.3.0, инструмента для трансляции рабочего стола Linux на Smart TV

 , , , ,


1

1

Состоялся выпуск проекта FluxCast v0.3.0, предназначенного для организации стриминга рабочего стола Linux на экраны Smart TV по протоколам Wi-Fi Direct (Miracast), DLNA и Chromecast с минимальной задержкой. Исходный код проекта написан на Python и распространяется под лицензией GPLv3.

Ключевое изменение версии 0.3.0 в том, что для повседневной работы с программой больше не нужен терминал: появились окно настроек в трее, а для Debian и Ubuntu собственный APT-репозиторий.

Основные изменения:

  • Запущен APT-репозиторий apt.fluxcast.dev. Раньше .deb-пакеты лежали только на страницах релизов GitHub, и каждое обновление приходилось скачивать руками. Теперь ставится пакет fluxcast-repo, который добавляет в систему ключ подписи и файл с параметрами репозитория, после чего FluxCast обновляется вместе с остальной системой. Кодовое имя дистрибутива выбирать не нужно: сборка определяется по минорной версии python3, поэтому Linux Mint, Pop!_OS и промежуточные выпуски Ubuntu тоже получают работающий пакет. Поддерживаются Debian 12 и 13, Ubuntu 24.04 и 26.04, архитектура amd64.

  • Подписывание индексов репозитория выполняется на стороне GitHub Actions, закрытый ключ на сервере не хранится. Прошлые версии остаются в пуле, так что откат на предыдущий выпуск возможен.

  • Появилось окно настроек, вызываемое из меню в трее. Раньше все параметры правились вручную в ~/.config/fluxcast/config. В окне доступны 20 параметров для Miracast и по 8 для DLNA и Chromecast. Значения проверяются теми же обработчиками, что и при чтении конфига, а комментарии, оставленные в файле, при сохранении не теряются. Окно написано на Tkinter и подхватывает системную светлую или тёмную тему.

  • Добавлено аппаратное кодирование через VA-API: параметр --wfd-encoder va, элемент vah264enc. Там, где композитор отдаёт кадры через DMABuf, весь конвейер обработки работает без копирования в системную память. По приведённым в релизе замерам, на статичной картинке нагрузка падает с 80% до 1% от одного ядра, при движении с 73-79% до 6-7%, а задержка от изменения на экране до поступления кадра в кодировщик сокращается с 64 до 27 мс. Проверялось только на GPU Intel. По умолчанию по-прежнему используется x264, на него же происходит автоматический откат, если элементов VA-API в системе нет. Режим управления битрейтом задаётся параметром --wfd-rate-control, по умолчанию qvbr.

  • Реализовано опциональное согласование режимов WFD R2, параметр --wfd-r2. В запросе M3 дополнительно запрашиваются списки wfd2_video_formats и wfd2_audio_codecs, что открывает режимы, которые телевизор публикует только во второй редакции спецификации. На LG C2 это 1080p60, отсутствующий в списке R1, из-за чего запрос 60 кадров в секунду раньше откатывался на 1080p30. Если приёмник не поддерживает или отклоняет параметры R2, используется первая редакция. По умолчанию выключено и пока проверено на одной модели телевизора.

Исправления:

  • --doctor сообщал об отсутствии iw и wpa_cli, если те лежат в /usr/sbin, которого нет в PATH обычного пользователя в Debian и Ubuntu. Ошибка задевала не только вывод отчёта, но и определение беспроводного интерфейса в бэкенде wpas.

  • --doctor считал систему готовой к трансляции, когда в ней оставался незакрытый интерфейс Wi-Fi Direct от прерванного сеанса. Теперь выводится предупреждение со списком таких интерфейсов и командой для удаления каждого.

  • Остановка трансляции из трея оставляла сессию недоразобранной: в коде WFD не был обработан SIGTERM, поэтому процесс завершался без освобождения ресурсов, а приёмнику не сообщалось об окончании сеанса.

  • Устранено искажение пропорций и зависание до 9 секунд при изменении размера окна в режиме захвата отдельного окна в KDE.

  • Число потоков кодировщика x264 ограничено значением min(4, число CPU). В режиме tune=zerolatency кодировщик создаёт по одному слайсу на поток, и на 16-ядерной машине каждый кадр дробился на 16 слайсов. Изменение снимает примерно треть нагрузки на 16 ядрах и четверть на восьми.

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

Отдельно будут полезны отзывы о работе VA-API на видеокартах AMD и NVIDIA.

>>> Подробности релиза на GitHub



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

а автор для чего использует? первоначальный замысел?

mumpster ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.