24.11.2020

В Fedora 34 планируют задействовать PipeWire для звука вместо PulseAudio


Для реализации в Fedora 34 намечено изменение, переключающее все звуковые потоки со звуковых серверов PulseAudio и JACK на PipeWire. Использование PipeWire позволит в обычной настольной редакции предоставить возможности профессиональной обработки звука, избавиться от фрагментации и унифицировать звуковую инфраструктуру для разных применений. Изменение пока не рассмотрено комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora.

В настоящее время для обработки звука в Fedora Workstation применяется фоновый процесс PulseAudio, а приложения используют клиентскую библиотеку для взаимодействия с этим процессом, микширования и управления звуковыми потоками. При профессиональной обработке звука применяется звуковой сервер JACK и связанная с ним клиентская библиотека.

Вместо PulseAudio и JACK предлагается использовать мультимедийный сервер нового поколения PipeWire с прослойкой для обеспечения совместимости, которая позволит сохранить работу всех существующих клиентов PulseAudio и JACK, а также приложений, поставляемых в формате Flatpak. Для старых клиентов, использующих низкоуровневый API ALSA, будет установлен ALSA-плагин, направляющий звуковые потоки напрямую в PipeWire. Все завязанные на PulseAudio и JACK приложения смогут работать поверх PipeWiree, без необходимости установки PulseAudio и JACK.

Напомним, что PipeWire расширяет возможности PulseAudio средствами для работы с потоками видео, возможностью обработки звука с минимальными задержками и новой моделью безопасности для управления доступом на уровне отдельных устройств и потоков. PipeWire также предоставляет возможности для управления источниками видео, такими как устройства захвата видео, web-камеры или выводимое приложениями содержимое экрана. Проект поддерживается в GNOME и уже активно применяется в Fedora Linux для записи содержимого экрана (screencasting) и совместного доступа к экрану в окружениях на базе Wayland.

PipeWire также может выступать в роли звукового сервера, обеспечивающего минимальные задержки и предоставляющего функциональность, комбинирующую возможности PulseAudio и JACK, в том числе учитывающую потребности систем профессиональной обработки звука, на которую не мог претендовать PulseAudio. Кроме того, PipeWire предлагает расширенную модель безопасности, позволяющую управлять доступом на уровне отдельных устройств и конкретных потоков, и упрощающую организацию проброса звука и видео из изолированных контейнеров и в них.

Основные возможности:

  • Захват и воспроизведение звука и видео с минимальными задержками;
  • Средства для обработки видео и звука в режиме реального времени;
  • Многопроцессная архитектура, позволяющая организовать совместный доступ к контенту нескольких приложений. Управление и обработка мультимедийных графов осуществляется в разных процессах;
  • Модель обработки на основании графа мультимедийных узлов с поддержкой циклов обратной связи и атомарных обновлений графа. Допускается подключение обработчиков как внутри сервера, так и внешних плагинов;
  • Эффективный интерфейс доступа к видеопотокам через передачу файловых дескрипторов и доступа к звуку через совместно используемые кольцевые буферы (shared ringbuffer);
  • Возможность обработки мультимедийных данных от любых процессов;
  • Наличие плагина к GStreamer для упрощения интеграции с существующими приложениями;
  • Поддержка изолированных окружений и Flatpak;
  • Поддержка плагинов в формате SPA (Simple Plugin API) и возможность создания плагинов, работающих в режиме жесткого реального времени;
  • Гибкая система согласования используемых мультимедийных форматов и выделения буферов;
  • Использование одного фонового процесса для маршрутизации звука и видео. Возможность работы в форме звукового сервера, хаба для предоставления видео приложениям (например, для gnome-shell screencast API) и сервера для управления доступом к аппаратным устройствам захвата видео.

Источник: https://www.opennet.ru/opennews/art.shtml?num=54125

Добавить комментарий