Выпуск FluxCast 0.3.0, инструмента для трансляции рабочего стола Linux на Smart TV
- FluxCast 0.3.0 добавляет окно настроек из трея и APT-репозиторий для Debian и Ubuntu с обновлением пакета вместе с системой.
- При аппаратном кодировании VA-API нагрузка на статичной картинке снижается с 80% до 1%, а задержка — с 64 до 27 мс; проверено только на Intel.
- Опциональный режим WFD R2 открывает телевизору LG C2 режим 1080p60, недоступный в списке R1; по умолчанию он выключен.
Почему это важно: Для повседневной работы с программой больше не нужен терминал.

Состоялся выпуск проекта 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.
