URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 129595
[ Назад ]

Исходное сообщение
"Доступен мультимедийный фреймворк GStreamer 1.22.0"

Отправлено opennews , 24-Янв-23 16:19 
После года разработки состоялся релиз  GStreamer 1.22,  кроссплатформенного набора компонентов для создания широкого спектра мультимедиа приложений, от медиаплееров и конвертеров аудио/видео файлов, до VoIP-приложений и систем потокового вещания. Код GStreamer распространяется под лицензией LGPLv2.1. Отдельно развиваются обновления плагинов gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, а также обвязка gst-libav и сервер потокового вещания gst-rtsp-server. На уровне API и ABI новый выпуск обратно совместим с веткой 1.0. Бинарные сборки в скором времени будут подготовлены для Android, iOS, macOS и Windows (в Linux рекомендуется использовать пакеты из дистрибутива)...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=58537


Содержание

Сообщения в этом обсуждении
"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено анон , 24-Янв-23 16:19 
Классная штука, на rpi можно стримить свою хату в вк и прочее без всяких ваших этих.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 16:29 
Домашнее видео?

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 16:29 
А в ffmpeg нельзя? Что мне не нраится в саабже, так это отлаживать, почему в нём что-то не работает опять. Например у меня в вайне

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 16:33 
А в ffmpeg нельзя? Что мне не нравится в сабже, так это отлаживать, почему в нём что-то не работает опять. Например у меня в вайне не работают avc видосики и разбирайся как хочешь. Видосики в других форматах зависят от контейнера, и например aac дорожка звука может и работать, а может и нет. Кроме того, в самом gstreamer не работает vaapi и выяснить это можно только экспериментальным путём, отладочные логи не очень информативны и что делать дальше не понятно (но работает nvdec).

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено НяшМяш , 24-Янв-23 18:00 
С вайном всё очень сложно. Первая рекомендация в таких случаях это накатить протоновские патчи от валвов - они очень много запилили всяких mediafoundation фиксов.

> не работает vaapi
> но работает nvdec

Это взаимоисключающие понятия, поскольку нвидия не запиливала vaapi никогда. Если очень хочется оба, то надо ставить что-то такое https://github.com/elFarto/nvidia-vaapi-driver, старый на базе vdpau уже очень давно практически не работает.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено mikhailnov , 25-Янв-23 03:01 
А nvidia-vaapi-driver насколько работоспособный сейчас?

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено НяшМяш , 25-Янв-23 11:01 
> А nvidia-vaapi-driver насколько работоспособный сейчас?

В последний раз использовал полгода назад с RTX 2060, но тогда в firefox работало всё, кроме большого количества одновременно проигрывающихся AV1 видео - например, в какой-нибудь ленте комментариев на 9gag "гифки" могли зависнуть. Возможно уже пофиксили, но тогда я просто отключил AV1 в браузере.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено mikhailnov , 25-Янв-23 17:32 
Спасибо

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 26-Янв-23 15:12 
Видимо, информация устарела. Работает в жырнолисе, с новой версией блоба только с новым режимом direct (разрабы сабжа сказали, что в драйвере поломано через egl). В mpv тоже работает вроде, но я проверил только h264.

У gstreamer есть собственная поддержка nvdec, которая почему-то выключена в дистрибутивах. Выбор декодеров осуществляется переменной GST_PLUGIN_FEATURE_RANK, надо прописать

GST_PLUGIN_FEATURE_RANK=nvmpegvideodec:MAX,nvmpeg2videodec:MAX,nvmpeg4videodec:MAX,nvh264sldec:MAX,nvh264dec:MAX,nvjpegdec:MAX,nvh265sldec:MAX,nvh265dec:MAX,nvvp9dec:MAX,avdec_av1:MAX,av1dec:MAX

и тогда gstreamer воспроизводит файлы через них, как задать vaapi я не знаю.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Попандопала , 24-Янв-23 16:35 
У стримеров ОБС и всякие Твитч-студии.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Шарп , 24-Янв-23 16:47 
>Обеспечена поставка плагинов на Rust

Неумолимая поступь.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 17:00 
ибо этот язык безопасен!

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 18:34 
Точнее, безопастен.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 21:36 
как неуловимый Джо

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 17:52 
А сами плагины написать так и не осилили. Ор дня.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено НяшМяш , 24-Янв-23 18:03 
К счастью, похоже что в команде гстримера нет экспертов опеннета, поэтому плагины на расте существуют (и их не мало): https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Деанон , 25-Янв-23 16:10 
просто открыть сишный листинг и переписать без вдумчивости на другой язык любой дypак сможет

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено НяшМяш , 25-Янв-23 23:59 
Ждём ядро линукса от Деанона на расте, фигня ведь вопрос

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 20:43 
Всегда нравится когда opennet так лихо негодуют от rust.
Это всего лишь инструмент, не нравится ни пишите на этом языке.
От того что вы бухтите ничего не изменится. Только тратите свое и чужое время

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 21:41 
Так вы ж сами ноете что надо писать всё на хрусте, определитесь уже ноете вы или ноете

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 22:30 
не надо всё писать на "хрусте", тебя например, можно написать на баше

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Golangdev , 26-Янв-23 02:27 
Помогите мне понять причину такого хейта Раста.

Используется почти в каждой первой криптовалюте, в Файрфоксе, Ядре Линукс, в Хроме.

Думаете вышеперечисленные проекты ошиблись в выборе языка ?


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 17:12 
> Qt6 .. GTK4 .. WebRTC .. языка Rust

Вот это г-но-комбайн! Модно, молодёжно!


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Иваня , 24-Янв-23 17:36 
Чем тебе WebRTC не угодил? Критикуя - предлагай!

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 20:08 
Я и гона на GTK с QT не понял.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 21:42 
А при чём тут Quick Time?

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 22:28 
Слишком новые, слишком "модные", слишком "молодежные" то есть молодые. Надо подождать лет 5-10 и только потом делать их поддержку

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 25-Янв-23 12:18 
Только через эти лета они сменят номер версии.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено InuYasha , 24-Янв-23 21:57 
Вот, как раз, когда есть фронт-енды подо всё, что нужно, - это большое "хорошо".

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 17:18 
> Отмечается, что 33% из изменений в новом GStreamer реализованы на Rust

Gstreamer написан полностью на С а Rust не имеет никакого отношения к  нему, не вводите людей в заблуждение. Биндинги и плагины на Rust это вообще отдельная тема.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено nazarpc , 24-Янв-23 17:37 
Плагины по немногу переписываются, и это ОЧЕНЬ хорошо!
Намного выше стабильность и меньше сегфолтов (которых я ловил с С плагинами).

Как тот кто разрабатывал приложения с GStreamer и Rust и даже немного контрибютил в GStreamer плагины на С, могу сказать что я бы не рискнул разрабатывать приложения на C. Там просто бесконечное количество способов выстрелить себе в разные части тела с самыми непредсказуемыми последствиями.
Логические ошибки Rust биндинги (которые в GStreamer без преувеличения офигенные) решает только частично, а вот работу с памятью практически на 100%.
Крайне редко приходилось использовать unsafe, в основном временно для создания биндингов того, что только что в master GStreamer-а добавили.

На Rust GStreamer в ближайшем будущем никто не перепишет (хотя мейнтейнеры были бы только за), а вот новые плагины они рекомендуют писать и сами пишут именно на Rust, ибо так проще и надежнее.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 17:52 
> Там просто бесконечное количество способов выстрелить себе в разные части тела

как в любом приложении где бесконечные выделение/освобождение памяти

> новые плагины они рекомендуют писать и сами пишут именно на Rust, ибо так проще и надежнее

по мне так gstreamer идеальный кандидат на переписывание, там все равно без нервов и веществ не разобраться


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено НяшМяш , 24-Янв-23 18:06 
> как в любом приложении где бесконечные выделение/освобождение памяти

Не совсем про gstreamer, потому что при работе с мультимедией постоянно дёргать память это гарантированный способ убить производительность, особенно в каком-нибудь аудиопотоке. Выделить память и почистить её недалеко от места выделения проще, чем выделить память один раз - потому что гарантированно про неё забываешь.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено nazarpc , 24-Янв-23 18:13 
>> как в любом приложении где бесконечные выделение/освобождение памяти
> Не совсем про gstreamer, потому что при работе с мультимедией постоянно дёргать
> память это гарантированный способ убить производительность, особенно в каком-нибудь аудиопотоке.
> Выделить память и почистить её недалеко от места выделения проще, чем
> выделить память один раз - потому что гарантированно про неё забываешь.

Да, там много где zero copy, и от этого управлять памятью ещё сложнее. Выделение буферов и освобождение не обязательно рядом, плюс они переиспользуются по возможности. Короче говоря, всё достаточно сложно и в плане именно управления памятью там очень легко накосячить.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено nazarpc , 24-Янв-23 18:18 
>>> как в любом приложении где бесконечные выделение/освобождение памяти
>> Не совсем про gstreamer, потому что при работе с мультимедией постоянно дёргать
>> память это гарантированный способ убить производительность, особенно в каком-нибудь аудиопотоке.
>> Выделить память и почистить её недалеко от места выделения проще, чем
>> выделить память один раз - потому что гарантированно про неё забываешь.
> Да, там много где zero copy, и от этого управлять памятью ещё
> сложнее. Выделение буферов и освобождение не обязательно рядом, плюс они переиспользуются
> по возможности. Короче говоря, всё достаточно сложно и в плане именно
> управления памятью там очень легко накосячить.

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


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 18:21 
> Не совсем про gstreamer,

я бы сказал - в особенности Gstreamer

> при работе с мультимедией постоянно дёргать память это гарантированный способ убить производительность

интересно - как вы представляете работу с видео без аллокаторов и экспорта импорта dmabuf между плагинами, хотя я не про это - на этапе инициализации плагинов и разбора GstCaps просто сплошные выделения/освобождения буферов под результаты.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено НяшМяш , 25-Янв-23 11:15 
> интересно - как вы представляете работу с видео без аллокаторов и экспорта
> импорта dmabuf между плагинами, хотя я не про это - на
> этапе инициализации плагинов и разбора GstCaps просто сплошные выделения/освобождения
> буферов под результаты.

На этапе инициализации и выделяется\освобождается всё что надо. А вот при работе в рабочем потоке так делать не рекомендуется. Вообще не знаю GStreamer, но в том же эпловском CoreAudio и CoreVideo используются кольцевые буферы и прочие техники переиспользования существующей памяти для обеспечения высокой производительности и низкой задержки.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 25-Янв-23 13:24 
> кольцевые буферы и прочие техники переиспользования существующей памяти для обеспечения высокой производительности

для высокой производительности используется zero copy, кольцевой буфер это или список буферов роли не играет

> На этапе инициализации и выделяется\освобождается всё что надо

в Gstreamer тоже самое, но в процессе работы конвеера нужен обмен данными - экспорт и импорт буферов между разными плагинами и это абстрагируется аллокаторами - даунстрим обработал данные -> сообщил апстриму -> буфер вернулся в пул свободных, инплейс (взял данные из буфера -> обработал -> сохранил результат в тот же буфер) можно выполнить только примитивные задачи, в общем случае на входе и на выходе буферы разных размеров и у каждого свой аллокатор - на входе импорт на выходе экспорт. Недавно столкнулся с некорректной работой аллокатора v4l2 в плагине deinterlace - у него на входе один черезстрочный кадр а на выходе два с прогрессивной разверткой и пока не знаю как победить ошибку - буферы на выходе возвращаются синхронно с входм а должны в 2 раза чаще, как результат нехватка бкферов на выходе и остановка конвеера.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 25-Янв-23 08:06 
>по мне так gstreamer идеальный кандидат на переписывание,

Размечтался.

>там все равно без нервов и веществ не разобраться

Лучше занимайся своими быдло-приложениями. Gstreamer не трожь.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 17:33 
> Добавлена возможность использования аппаратного ускорения кодирования и декодирования AV1 через API VAAPI/VA, AMF, D3D11, NVCODEC, QSV и Intel MediaSDK.

прискорбно что развиваются чужеродные для Linux компоненты а для родного интерфейса (v4l2) плагины в заброшенном состоянии. Хотя тут не разработчики Gstreamer виноваты - производителям железа проще в юзерспейс наколхозить побыстрому чем разрабатывать ядерные API под строгим контролем и длительным временем согласования для принятия в майнстрим.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 18:47 
>Обновлены привязки для языка Rust. Добавлено 19 новых плагинов, эффектов и элементов, написанных на Rust (gst-plugins-rs). Отмечается, что 33% из изменений в новом GStreamer реализованы на Rust

Как же так? Ведь местные клоуны говорили что на rust ничего написать нельзя.
Понятно что они ничего не могут написать (и не только на rust), но зачем это на всех остальных людей проецировать?


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 19:07 
> говорили что на rust ничего написать нельзя

справедливости ради всё что написано пока на Rust это новые плагины и соотвественно под очень специфичные и редкие задачи, Gstreamer и все основные плагины написаны на С, в тексте новости логическая ошибка

https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs

в общем за несколько лет существования проекта плагинов на Rust (лет 8 наверно) на нём пока написана мизерная часть плагинов и ни одним из них мне например не приходилось пользоваться.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 22:22 
>13 May, 2016
>Initial commit

Растоманы за 8 лет смогли написать всего несколько штук плагинов, это очень показательно.


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 21:40 
> Понятно что они ничего не могут написать (и не только на rust)
> но зачем это на всех остальных людей проецировать?

А ты сейчас что делаешь?


"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Деанон , 25-Янв-23 16:13 
Лучше бы с жабоскрипта на раст переписали или на что-нибудь подобное, но нормальное

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 18:51 
Gstreamer всегда очень плохо работал и ничего с этим не сделать :'(

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 21:29 
Лет 10 как эта информация устарела.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено Аноним , 24-Янв-23 19:51 
Хорошая штука. На винде использую для стриминга в фоне аудио с микрофона в докер контейнер Rhasspy для распознавания голосовых команд.

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено InuYasha , 24-Янв-23 21:58 
Кстати, он больше не падает с пульсой при вытыкании HDMI-кабеля с аудио?

"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Отправлено НяшМяш , 25-Янв-23 11:18 
С pipewire не наблюдал такого. Оно даже способно автоматически перенести воспроизводящийся в данный момент аудиопоток (источник - strawberry с gstreamer бекендом) на новое устройство, что я в последний наблюдал разве что на маках - даже на виндах успех этого не гарантирован.