LINUX.ORG.RU

PipeWire: интервью с разработчиком

 , ,


0

1

Моя адаптация, коротенько для Ъ (чё сам понял), знатокам мультимедиа читать оригинал, там много всяких интересных подробностей!

https://fedoramagazine.org/pipewire-the-new-audio-and-video-daemon-in-fedora-linux-34/

Некто Wim Taymans и есть тот самый герой, который наконец разрулит весь этот бардак со звуком и видео в Линукс. Пару слов о нём. Он один из двух самых первых разработчиков GStreamer и именно он был главным мэйнтейнером всего этого хозяйства. Он присоединился к Red Hat в 2013-ом году, и с тех пор помогал компании поддерживать GStreamer и PulseAudio. В 2015 начал работать над PipeWire.

Таких людей надо знать в лицо: https://i.ibb.co/jg44ByC/2021-05-15-23-38.png

Как начиналось, зачем всё это?

Где-то в 2015 году мы начали думать про фичи захвата экрана для Wayland, тогда от Шапки и поступила просьба рассмотреть какие могут быть варианты, только с одним важным условием: это должно быть не только надёжным в плане безопасности в принципе, но и хорошо работать с Flatpak и флатпаковским концептом порталов, чтобы управлять всякими потенциально небезопасными делами.

В начале 2017-го я серьезно задумался над реализацией аудио-сервера, тогда мы и придумали название PipeWire.

После нескольких дискуссий с сообществом линуксоидов, которые занимаются профессиональным аудио, меня убедили в необходимости более радикальных решений в PipeWire, если планируется, что он вообще когда-нибудь заменит JACK. Вот тогда мы и начали окончательно переделывать всё, и через 2 года упорной работы, в начале 2020-го, вышла первая рабочая версия.

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

Нет. Теоретически PipeWire позволяет юзать любые программы без изменений, обеспечивая совместимость разными способами.

Лёня Поттеринг теперь тебя ненавидит?

Я говорил с ним ещё в самом начале этой затеи, он двумя руками за, чтобы унифицировать профессиональный и хомячковый аудио-сервер в Линукс.

Что по поводу GStreamer и PipeWire в плане совместного использования?

Они абсолютно дополняют друг друга. Один лучше делает одно, другой другое, пока всё пучком и ещё рановато говорить куда всё это приведет.

Что не работает в PipeWire, есть такое?

Блин, большинство всяких штук связанных с midi. Внатуре, я никогда раньше не юзал миди, но я уже работаю над поддержкой всего этого.

Сам музицируешь?

Немного играю на гитаре, но у меня настоящий ламповый усилок без примочек. Я делал записи гитары и голоса в Ardour через PipeWire, всё работает. Я реально хочу писать такой код, который позволит людям создавать хорошую музыку!

Слышали ты там ещё чем-то занялся в Red Hat?

Ага, принял участие в новой теме: ребята занимаются информационно-развлекательным софтом для автомобильного сектора и PipeWire там играет главную роль. В современных автомобилях полно аудио и видео оборудования и всем этим надо гибко управлять, так что перед нами стоит задача пилить PipeWire в этом направлении. В конце концов и простым домашним пользователям от этого проекта перепадёт немало.

★★★★★

Последнее исправление: papin-aziat (всего исправлений: 1)
Ответ на: комментарий от Shadow

Совместимость фанатастика? Дык уже обсудили вроде везде, он там ничего принципиально нового не рассказал.

PipeWire provides compatibility with ALSA, PulseAudio and JACK applications with an ALSA plugin, a replacement PulseAudio server and a JACK replacement client library respectively. Theoretically this should provide a way to run all existing applications without modifications.

With PipeWire, we should now start thinking about those audio APIs as Audio toolkits. It’s a bit like GUI toolkits such as GTK or Qt: both of them talk to the underlying display subsystem (Wayland/X11) and no application thinks about implementing raw Wayland backends in their applications.

It’s the same with JACK/PulseAudio, they provide applications with a model of the Audio subsystem and you select the Audio toolkit best suited for your use case. I don’t see this change unless someone comes up with the ultimate Audio Toolkit.

Я хотел это хоть как-то пересказать, в общем прикольная инфа, для тех кто совсем отстал от жизни, но блин, когда сам читаю вроде всё понятно, но как сказать по-русски «raw Wayland backends», я не знаю, а к этому сводится аналогия, нужен программист :-)

Жаль, вывод он сделал интересный.

papin-aziat ★★★★★
() автор топика
Последнее исправление: papin-aziat (всего исправлений: 1)
Ответ на: комментарий от gtk3

Совсем не в теме, а чё на маках и виндах есть софт, чтобы к нему подключить электронное пианино и ваять музЫку с учётом силы нажатия на клавиши? У меня есть Casio, оно так умеет, но даже в голову не приходило подключить его к компу, тем более к линукс :-)

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от altwazar

Ресемплинг и микширование

scheduling and mixing это оно, шедьюлинг это ресемплинг? Тоже хочу разбираться потихоньку в аудио :-)

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от fornlr

Я имел в виду что весь десктопный линукс мало серьёзный.

Вся эта тема со смартфонами та ещё дрянь, ну ничего, пользуемся же, уж всяко линукс не хуже.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Тоже зря сравниваешь. И размер рынка страшно сказать во сколько раз больше.

Да и качеством тоже. Банально глючить по звуку тут недопустимо. Да и задачи даже труднее — Bluetooth тот же чуть ли не обязаловка.

Конечно, у Гугл и Apple денег 💵 на разработку аудиосистемы значительно больше, чем у сабжа.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 3)
Ответ на: комментарий от fornlr

Банально глючить по звуку тут недопустимо.

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

papin-aziat ★★★★★
() автор топика
Последнее исправление: papin-aziat (всего исправлений: 1)
Ответ на: комментарий от anonymous

Сам ты уим. Правильно Вим.

Чёй-та вдруг? Звук, обозначаемый W, гораздо ближе к очень короткой «у», чем к «в».
По этой, в частности, причине, меня всегда корёжил (*) «доктор Ватсон». Мало того, что «в», так ещё и «а». Какой-то самец ватрушки, а не друг знаменитого сыщика.

(*) Ну корёжил в юности, скажем, так. Повзрослев, воспринимаю спокойнее, но всё равно не лучший вариант.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Думаю, это с одной стороны вопрос исторический, а с другой фонетический. у нас ведь культура произношения латинского пришла от немцев, так что стародавняя традиция все эти «уэ, уа, ау, еу» через «в». А фонетически русскоговорящему эти сочетания неудобны в потоке беглой речи. Ну и нет смысла делать «вОтсон», все равно будет редуцирован до «вацн». :-)

papin-aziat ★★★★★
() автор топика

Gstreamer

Неужели без этого нельзя было обойтись?

Novec1230
()
Ответ на: комментарий от hobbit

меня всегда корёжил (*) «доктор Ватсон»

Ватт тебя тоже корёжил? И Вашингтон? Не позорься.

anonymous
()
Ответ на: комментарий от hobbit

Чёй-та вдруг? Звук, обозначаемый W, гораздо ближе к очень короткой «у», чем к «в».

Потому что записывать английский кириллицей – это совсем другая тема. Не имеющая отношения к переводу. Какой там звук – вообще не имеет значения. Даже при 100% звуковом соответствии слова могут (и чаще всего они это и делаюи) отличаться ударением. Так что какая-то там близость звуков – не имеет значения.

anonymous
()
Ответ на: комментарий от papin-aziat

scheduling and mixing это оно, шедьюлинг это ресемплинг?

Шедулинг - в рамках аудио сервера это, скорее всего, про подготовку данных и заполнение буфера.

Resampling (передискретизация) - когда вывод на карточку у тебя 48kHz, а из плеера музыка в 44.1kHz. В этом случае надо преобразовать 44.1 в 48, в зависимости от алгоритма будет разная нагрузка на процессор и разные артефакты сжатия. Еще могут быть побочные эффекты, типа хрипа во время изменения громкости.

Пока основная разница для меня между pipewire и пульсой в ресемплинге. Пульса пытается при проигрывании 44.1 открыть звуковушку в 44.1, при 48 в 48. Что в типичной ситуации позволяет избежать ресемплинга. Функция специфичная, не думаю, что её добавят в pipewire. Придется как в других ОС жить с ресемплингом.

altwazar ★★★★
()
Ответ на: комментарий от fornlr

В десктопных ОСях общего назначения (Windows и macOS) с качеством лучше (этак сравнимо с speex-float-5).

В винде качество похуже speex-float-1, но и работает пошустрее. Что правильно, качественный ресемплинг нужен единицам.

Но там адовое нагромождение из способов вывода звука (васапи, аудиограф, директсаунд, мме и т.д.). Если в линуксе у тебя микшированием/ресэмплингом занимался пульсаудио, но ты можешь заменить его на pipewire, то в виде со временем просто растет число способов работы со звуком. Там дай бог разработчикам профессионального аудио софта с этим разобраться, пользователю можно даже не пытаться.

altwazar ★★★★
()
Ответ на: комментарий от altwazar

В винде качество похуже speex-float-1

Нет. Чуваки с рассылки PulseAudio приводили графики и всё такое, что нет. Как я написал.

ЗЫ: но тут понятно, что у многих своя реальность — альтернативная (зазеркалье).

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 3)
Ответ на: комментарий от fornlr

Как я написал.

На счет макос не знаю, в винде с ресемплингом всё сложно и он не происходит централизованно как в пульсе/пайпе.

altwazar ★★★★
()
Ответ на: комментарий от altwazar

всё сложно

Ну это субъективно, поэтому без комментариев (хотя у меня как у пользователя десктопных линуксов это вызывает смех). Речь о другом была.

В винде качество похуже speex-float-1

Ложь.

ЗЫ: почему тут частенько бывает охота встать и анонимам клопать, а звёздные тебе просто пургу дуют какую-то resample-method в PulseAudio

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 3)
Ответ на: комментарий от altwazar

Человек из рассылки у тебя проиграл файл в wmp

Ну да

https://lists.freedesktop.org/archives/pulseaudio-discuss/2014-August/021362.html

TL;DR summary: it makes sense to change the default resampler quality from the current «speex-float-1» value to «speex-float-3» or even «speex-float-5» on capable machines, otherwise the distortion is sometimes noticeable. And, speex-float-{3,5} are similar to what proprietary OSes offer.

It’s quite sad that the current default in PulseAudio was influenced by the needs of low-power embedded devices at the measurable expense of the sound quality on the typical desktop. Now, with plots, figures and knowledge in hand, we can fix it.

Тут применял психологическую модель вроде 🤷‍♂️

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от fornlr

Тут применял психологическую модель вроде 🤷‍♂️

Он всё верно говорит, speex-float-5 лучше и его стоит рассматривать в качестве кандидата по умолчанию. Что его способ плохо подходит для определения качества ресемплинга винды в целом не имеет значения в разрезе его аргумента.

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

altwazar ★★★★
()
Ответ на: комментарий от anonymous

А что делать со Шекспиром?

Шекспир – это сотрясающаяся уменьшенная версия Ланселота, да будет тебе известно.

anonymous
()
Ответ на: комментарий от Hertz

+999

Три девятки это плохо. Одна хорошо. Две лучше. А три плохо. Я в индийском кино видел, ему можно верить. Там всё по ведам снято. Это точно. Теперь тред проклят.

anonymous
()
Ответ на: комментарий от altwazar

Что его способ плохо подходит для определения качества ресемплинга винды в целом

Голословно звучит.

Он всё верно говорит, speex-float-5 лучше

А речь о

В винде качество похуже speex-float-1

fornlr ★★★★★
()
Ответ на: комментарий от altwazar

Да я вижу. Непонятно откуда это

его способ плохо подходит для определения качества ресемплинга винды в целом

fornlr ★★★★★
()
Ответ на: комментарий от fornlr

Непонятно откуда это

Он проиграл файл в медиаплеере и получил странный результат на выходе (+6 db). Что там делал медиаплеер и как он выводил звук не ясно. Для демонстрации разницы между алгоритмами пульсаудио этого достаточно, но для определения качества ресемплинга винды нет.

Если собрать информацию с разных источников, то выходил, что ресемплинг винды работает по разному. Сам лично сталкивался только с косячным ресемплингом win 7, с проблемами ресемплинга вообще редко сталкиваешься.

p.s.: с ресемплингом вообще весело. Под линуксом по рукам гуляет популярный гайд, где в качестве метода ресемплинга ставят copy (copy->auto->speex-float-1) и радуются заметному на глаз улучшению качества звука.

altwazar ★★★★
()
Последнее исправление: altwazar (всего исправлений: 1)

Решил потестить в виртуалке.

Короче Ubuntu 21.04. Вроде десять секунд нормально игралось, потом началось заикаться и заткунулсь.

Тут я подумал - «наверно Virtualbox глючит, там же звук не приоритет вообще, вроде читал жалобы про это в новости о Virtualbox». Загрузил Windows 10 - а там нормально всё со звуком.

Короче как-нибудь до 21.10.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от fornlr

Работает, начиная с версии 0.3.14

anonymous
()

тот самый герой, который наконец разрулит весь этот бардак со звуком и видео в Линукс присоединился к Red Hat в 2013

Такими темпами от греха подальше надо переходить на Gentoo, попутно выпиливая всякий бардак типа systemd, pulseaudio, иксов или вяленого и просто сидеть в терминале с альсой. Без шуток, что за треш?

Где-то в 2015 году мы начали думать про фичи захвата экрана для Wayland

Зачем? Вяленый и по сей день сырой, захват экрана - это далеко не первое, в чём нуждаются люди.

и хорошо работать с Flatpak и флатпаковским концептом порталов, чтобы управлять всякими потенциально небезопасными делами.

Вот это уже неплохо. Даже хорошо. Концепция безопасной работы с контейнерами всегда радует.

начали окончательно переделывать всё, и через 2 года упорной работы, в начале 2020-го, вышла первая рабочая версия.

Получается, они 3 года пилили непонятно что, даже не сделав нормальную базовую концепию и архитектуру? Бред полный.

унифицировать профессиональный и хомячковый аудио-сервер в Линукс.

Флаг им в руки. А нет, вру, учитывая, как Поттеринг реализовывает свои идеи, им в руки можно положить только мужской половой орган (ура креативные шутки).

anonymous
()
Ответ на: комментарий от anonymous

захват экрана - это далеко не первое, в чём нуждаются люди.

Там видишь чё, они вообще начали это всё про видео, работали с V4L2 через PulseVideo, про звук тема потом пошла, а захват экрана нужен браузерам: мозиле и хромому, чтобы тулить webrtc и прочее, в общем людям это надо, но я ничего про это не написал, потому что ничего не понимаю.

papin-aziat ★★★★★
() автор топика

Пшшшвидео.

anonymous
()
Ответ на: комментарий от utanho

Ну так она же Hudson. Тут близко к оригиналу.

hobbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.