Pipewire support #308
Replies: 2 comments
-
From your example, you think that UltraGrid should be able to receive a RTP stream sent with PipeWire? It would be possible to implement, but on the other hand, arbitrary media player like ffplay or mpv are able to playback the stream. So I am unsure what will be the advantage of using UltraGrid. Well, I can see one use-case: having pipewire+arbitrary video source on the sender and a playback DeckLink on the receiver side. Would it be possible to describe your intended use case in more details? Mainly where is the position of UltraGrid. Thanks, M. |
Beta Was this translation helpful? Give feedback.
-
My use case is an OSS integrated system that serves as a wrapper for UltraGrid to deploy video streams over a local WLAN. It includes some other OSS tools such as etcd to track global state changes and configure what I've defined as "encoder" clients to support different inputs/configurations. It's nothing too complex, mostly a bunch of bash scripts that tie in with systemd to 'manage' UltraGrid from a concatenated command line input. I initially tried building off gstreamer/ffmpeg, however their pipelines always introduced an unacceptable level of latency. UG is the only thing that produces a reliable stream of appropriate latency and quality on consumer hardware, without having to resort to weird proprietary kernels and tie the system too closely to specific hardware. Audio streaming is a second-order part of the puzzle. With PipeWire I can get latency down to nearly manageable levels, and predictably handle device connections/disconnections. Since PipeWire can also do video sinks, it might be nice as an alternative for V4L, too. I have yet to perform any testing in that regard, as I'm still working on stabilizing the basics including how to properly manage device disconnects and predictable device names. I'm mostly taking inputs from HDMI capture devices and USB web/document cameras. The audio input could be an RTP stream or direct from PipeWire on the local system upon which UltraGrid is running. The idea is to provide something that can be spun up reliably and quickly to provide local/overflow video replication on a wide variety of hardware platforms, in locations where running cables isn't a desirable solution. |
Beta Was this translation helpful? Give feedback.
-
I've been playing around with utilizing PipeWire and it seems like it would be a good match for audio support in conjunction with UltraGrid, and may even be useful for some local video processing.
Pipewire can be configured to catch all audio sources configured on the machine and stream to a target IP using the following command line:
It's already supported in Gstreamer with the pipewiresrc and pipwiresink modules.
Beta Was this translation helpful? Give feedback.
All reactions