The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Доступен мультимедийный фреймворк GStreamer 1.22.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Доступен мультимедийный фреймворк 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.ru/opennews/art.shtml?num=58537

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от анон (?), 24-Янв-23, 16:19   –1 +/
Классная штука, на rpi можно стримить свою хату в вк и прочее без всяких ваших этих.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #3, #4, #5

2. Сообщение от Аноним (2), 24-Янв-23, 16:29   +1 +/
Домашнее видео?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

3. Сообщение от Аноним (3), 24-Янв-23, 16:29   –1 +/
А в ffmpeg нельзя? Что мне не нраится в саабже, так это отлаживать, почему в нём что-то не работает опять. Например у меня в вайне
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

4. Сообщение от Аноним (3), 24-Янв-23, 16:33   +/
А в ffmpeg нельзя? Что мне не нравится в сабже, так это отлаживать, почему в нём что-то не работает опять. Например у меня в вайне не работают avc видосики и разбирайся как хочешь. Видосики в других форматах зависят от контейнера, и например aac дорожка звука может и работать, а может и нет. Кроме того, в самом gstreamer не работает vaapi и выяснить это можно только экспериментальным путём, отладочные логи не очень информативны и что делать дальше не понятно (но работает nvdec).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #19

5. Сообщение от Попандопала (?), 24-Янв-23, 16:35   +/
У стримеров ОБС и всякие Твитч-студии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

6. Сообщение от Шарп (ok), 24-Янв-23, 16:47   +3 +/
>Обеспечена поставка плагинов на Rust

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #17, #31, #56

8. Сообщение от Аноним (8), 24-Янв-23, 17:00   –1 +/
ибо этот язык безопасен!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #25, #33

10. Сообщение от Аноним (10), 24-Янв-23, 17:12   +1 +/
> Qt6 .. GTK4 .. WebRTC .. языка Rust

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14, #37

12. Сообщение от Аноним (12), 24-Янв-23, 17:18   +/
> Отмечается, что 33% из изменений в новом GStreamer реализованы на Rust

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15

13. Сообщение от Аноним (12), 24-Янв-23, 17:33   –1 +/
> Добавлена возможность использования аппаратного ускорения кодирования и декодирования AV1 через API VAAPI/VA, AMF, D3D11, NVCODEC, QSV и Intel MediaSDK.

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

Ответить | Правка | Наверх | Cообщить модератору

14. Сообщение от Иваня (?), 24-Янв-23, 17:36   +/
Чем тебе WebRTC не угодил? Критикуя - предлагай!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #30

15. Сообщение от nazarpc (ok), 24-Янв-23, 17:37   +1 +/
Плагины по немногу переписываются, и это ОЧЕНЬ хорошо!
Намного выше стабильность и меньше сегфолтов (которых я ловил с С плагинами).

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #16

16. Сообщение от Аноним (12), 24-Янв-23, 17:52   +/
> Там просто бесконечное количество способов выстрелить себе в разные части тела

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #21, #45

17. Сообщение от Аноним (17), 24-Янв-23, 17:52   –1 +/
А сами плагины написать так и не осилили. Ор дня.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #20

19. Сообщение от НяшМяш (ok), 24-Янв-23, 18:00   +/
С вайном всё очень сложно. Первая рекомендация в таких случаях это накатить протоновские патчи от валвов - они очень много запилили всяких mediafoundation фиксов.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #43

20. Сообщение от НяшМяш (ok), 24-Янв-23, 18:03   +3 +/
К счастью, похоже что в команде гстримера нет экспертов опеннета, поэтому плагины на расте существуют (и их не мало): https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #52

21. Сообщение от НяшМяш (ok), 24-Янв-23, 18:06   +/
> как в любом приложении где бесконечные выделение/освобождение памяти

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #22, #24

22. Сообщение от nazarpc (ok), 24-Янв-23, 18:13   +/
>> как в любом приложении где бесконечные выделение/освобождение памяти
> Не совсем про gstreamer, потому что при работе с мультимедией постоянно дёргать
> память это гарантированный способ убить производительность, особенно в каком-нибудь аудиопотоке.
> Выделить память и почистить её недалеко от места выделения проще, чем
> выделить память один раз - потому что гарантированно про неё забываешь.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #23

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

24. Сообщение от Аноним (12), 24-Янв-23, 18:21   +/
> Не совсем про gstreamer,

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #47

25. Сообщение от Аноним (25), 24-Янв-23, 18:34   +1 +/
Точнее, безопастен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

26. Сообщение от Аноним (41), 24-Янв-23, 18:47   –2 +/
>Обновлены привязки для языка Rust. Добавлено 19 новых плагинов, эффектов и элементов, написанных на Rust (gst-plugins-rs). Отмечается, что 33% из изменений в новом GStreamer реализованы на Rust

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #28, #34, #53

27. Сообщение от Аноним (41), 24-Янв-23, 18:51   +2 +/
Gstreamer всегда очень плохо работал и ничего с этим не сделать :'(
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #32

28. Сообщение от Аноним (12), 24-Янв-23, 19:07   +2 +/
> говорили что на rust ничего написать нельзя

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #39

29. Сообщение от Аноним (29), 24-Янв-23, 19:51   +/
Хорошая штука. На винде использую для стриминга в фоне аудио с микрофона в докер контейнер Rhasspy для распознавания голосовых команд.
Ответить | Правка | Наверх | Cообщить модератору

30. Сообщение от Аноним (30), 24-Янв-23, 20:08   +/
Я и гона на GTK с QT не понял.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #36, #40

31. Сообщение от Аноним (31), 24-Янв-23, 20:43   –1 +/
Всегда нравится когда opennet так лихо негодуют от rust.
Это всего лишь инструмент, не нравится ни пишите на этом языке.
От того что вы бухтите ничего не изменится. Только тратите свое и чужое время
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #35

32. Сообщение от Аноним (32), 24-Янв-23, 21:29   +1 +/
Лет 10 как эта информация устарела.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

33. Сообщение от Аноним (33), 24-Янв-23, 21:36   –1 +/
как неуловимый Джо
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

34. Сообщение от Аноним (34), 24-Янв-23, 21:40   +/
> Понятно что они ничего не могут написать (и не только на rust)
> но зачем это на всех остальных людей проецировать?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

35. Сообщение от Аноним (33), 24-Янв-23, 21:41   +2 +/
Так вы ж сами ноете что надо писать всё на хрусте, определитесь уже ноете вы или ноете
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #41

36. Сообщение от Аноним (33), 24-Янв-23, 21:42   +1 +/
А при чём тут Quick Time?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

37. Сообщение от InuYasha (??), 24-Янв-23, 21:57   +/
Вот, как раз, когда есть фронт-енды подо всё, что нужно, - это большое "хорошо".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

38. Сообщение от InuYasha (??), 24-Янв-23, 21:58   +/
Кстати, он больше не падает с пульсой при вытыкании HDMI-кабеля с аудио?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #48

39. Сообщение от Аноним (41), 24-Янв-23, 22:22   –1 +/
>13 May, 2016
>Initial commit

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

40. Сообщение от Аноним (41), 24-Янв-23, 22:28   +1 +/
Слишком новые, слишком "модные", слишком "молодежные" то есть молодые. Надо подождать лет 5-10 и только потом делать их поддержку
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #49

41. Сообщение от Аноним (41), 24-Янв-23, 22:30   –4 +/
не надо всё писать на "хрусте", тебя например, можно написать на баше
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

43. Сообщение от mikhailnov (ok), 25-Янв-23, 03:01   +/
А nvidia-vaapi-driver насколько работоспособный сейчас?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #46, #57

45. Сообщение от Аноним (-), 25-Янв-23, 08:06   +/
>по мне так gstreamer идеальный кандидат на переписывание,

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

46. Сообщение от НяшМяш (ok), 25-Янв-23, 11:01   +1 +/
> А nvidia-vaapi-driver насколько работоспособный сейчас?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #54

47. Сообщение от НяшМяш (ok), 25-Янв-23, 11:15   +/
> интересно - как вы представляете работу с видео без аллокаторов и экспорта
> импорта dmabuf между плагинами, хотя я не про это - на
> этапе инициализации плагинов и разбора GstCaps просто сплошные выделения/освобождения
> буферов под результаты.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #51

48. Сообщение от НяшМяш (ok), 25-Янв-23, 11:18   +/
С pipewire не наблюдал такого. Оно даже способно автоматически перенести воспроизводящийся в данный момент аудиопоток (источник - strawberry с gstreamer бекендом) на новое устройство, что я в последний наблюдал разве что на маках - даже на виндах успех этого не гарантирован.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

49. Сообщение от Аноним (49), 25-Янв-23, 12:18   +/
Только через эти лета они сменят номер версии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

51. Сообщение от Аноним (12), 25-Янв-23, 13:24   +/
> кольцевые буферы и прочие техники переиспользования существующей памяти для обеспечения высокой производительности

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

52. Сообщение от Деанон (?), 25-Янв-23, 16:10   –1 +/
просто открыть сишный листинг и переписать без вдумчивости на другой язык любой дypак сможет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #55

53. Сообщение от Деанон (?), 25-Янв-23, 16:13   +/
Лучше бы с жабоскрипта на раст переписали или на что-нибудь подобное, но нормальное
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

54. Сообщение от mikhailnov (ok), 25-Янв-23, 17:32   +/
Спасибо
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

55. Сообщение от НяшМяш (ok), 25-Янв-23, 23:59   +/
Ждём ядро линукса от Деанона на расте, фигня ведь вопрос
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

56. Сообщение от Golangdev (?), 26-Янв-23, 02:27   +/
Помогите мне понять причину такого хейта Раста.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

57. Сообщение от Аноним (3), 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 я не знаю.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру