Has anyone gotten GStreamer to stream video to PipeWire? Is that possible and if so has anyone ever successfully done so?
Currently the best I can do is this script:
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin3 name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video1
This works but obviously doesn’t use PipeWire.
I’ve tried this:
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin3 name=dec ! queue ! videoconvert ! pipewiresink
But that doesn’t work. I’m using Fedora KDE if that matters. Is there any kind of how to guide for using Gstreamer? Most of what I’ve need has been more programming centric not end user centric.
Do I need to set something up in PipeWire before being able to stream to it?
I’ve done:
pw-mon | grep /dev/video
api.v4l2.path = "/dev/video1"
object.path = "v4l2:/dev/video1"
api.v4l2.path = "/dev/video2"
object.path = "v4l2:/dev/video2"
api.v4l2.path = "/dev/video0"
object.path = "v4l2:/dev/video0"
String "/dev/video1"
String "/dev/video1"
api.v4l2.path = "/dev/video1"
object.path = "v4l2:/dev/video1"
object.path = "v4l2:/dev/video1:capture_0"
String "/dev/video2"
String "/dev/video2"
api.v4l2.path = "/dev/video2"
object.path = "v4l2:/dev/video2"
object.path = "v4l2:/dev/video2:capture_0"
and
pw-mon | grep v4l2
api.v4l2.path = "/dev/video1"
device.api = "v4l2"
device.name = "v4l2_device._sys_devices_virtual_video4linux_video1"
object.path = "v4l2:/dev/video1"
api.v4l2.cap.driver = "v4l2 loopback"
api.v4l2.cap.card = "Canon EOS M200"
api.v4l2.cap.bus_info = "platform:v4l2loopback-001"
api.v4l2.cap.version = "6.11.7"
api.v4l2.cap.capabilities = "85200003"
api.v4l2.cap.device-caps = "05200003"
api.v4l2.path = "/dev/video2"
device.api = "v4l2"
device.name = "v4l2_device._sys_devices_virtual_video4linux_video2"
object.path = "v4l2:/dev/video2"
api.v4l2.cap.driver = "v4l2 loopback"
api.v4l2.cap.card = "Dummy video device (0x0002)"
api.v4l2.cap.bus_info = "platform:v4l2loopback-002"
api.v4l2.cap.version = "6.11.7"
api.v4l2.cap.capabilities = "85200003"
api.v4l2.cap.device-caps = "05200003"
api.v4l2.path = "/dev/video0"
device.api = "v4l2"
device.name = "v4l2_device._sys_devices_virtual_video4linux_video0"
object.path = "v4l2:/dev/video0"
api.v4l2.cap.driver = "v4l2 loopback"
api.v4l2.cap.card = "OBS Virtual Camera"
api.v4l2.cap.bus_info = "platform:v4l2loopback-000"
api.v4l2.cap.version = "6.11.7"
api.v4l2.cap.capabilities = "85200002"
api.v4l2.cap.device-caps = "05200002"
api.v4l2.cap.bus_info = "platform:v4l2loopback-001"
api.v4l2.cap.capabilities = "85200003"
api.v4l2.cap.card = "Canon EOS M200"
api.v4l2.cap.device-caps = "05200003"
api.v4l2.cap.driver = "v4l2 loopback"
api.v4l2.cap.version = "6.11.7"
api.v4l2.path = "/dev/video1"
device.api = "v4l2"
factory.name = "api.v4l2.source"
node.name = "v4l2_input._sys_devices_virtual_video4linux_video1"
object.path = "v4l2:/dev/video1"
object.path = "v4l2:/dev/video1:capture_0"
api.v4l2.cap.bus_info = "platform:v4l2loopback-002"
api.v4l2.cap.capabilities = "85200003"
api.v4l2.cap.card = "Dummy video device (0x0002)"
api.v4l2.cap.device-caps = "05200003"
api.v4l2.cap.driver = "v4l2 loopback"
api.v4l2.cap.version = "6.11.7"
api.v4l2.path = "/dev/video2"
device.api = "v4l2"
factory.name = "api.v4l2.source"
node.name = "v4l2_input._sys_devices_virtual_video4linux_video2"
object.path = "v4l2:/dev/video2"
object.path = "v4l2:/dev/video2:capture_0"
I’m at a complete loss at this point, any help would be fantastic, even if it’s to simply point me to some useful user documentation.