Conversation

Jarkko Sakkinen

OK so you can without v4l2loopback.

Smoke test:

gst-launch-1.0 \
    videotestsrc ! \
    video/x-raw,format=YUY2 ! \
    pipewiresink mode=provide \
    stream-properties="properties,media.class=Video/Source,media.role=Camera"

iPhone/Airplay:

uxplay -vs 0 -vrtp "config-interval=1 ! udpsink host=127.0.0.1 port=6000"

gst-launch-1.0 -v \
  udpsrc port=6000 caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96" ! \
  rtph264depay ! decodebin ! videoconvert ! \
  video/x-raw,format=YUY2 ! \
  pipewiresink mode=provide \
  stream-properties="properties,media.class=Video/Source,media.role=Camera,node.description=iPhone Camera"

Test page used: mozilla.github.io/webrtc-landing/gum_test.html

In Firefox the config option you’re looking for is called media.webrtc.camera.allow-pipewire.

3
1
2

Jarkko Sakkinen

Edited 5 days ago
Do I regret writing that driver? Absolutely not. Without writing it I would know nothing about dma-buf. Now I know it from end to end :-) It cannot be useless wisdom I believe...
1
1
4
(the background pic is ripped off from internet but is like 400-500m away from my front door :-))
0
0
0

@jarkko Does it work for you with pipewire 1.6.1? It seems feeding a videostream into a pipewire sink broke for me after upgrading from 1.4.10 to 1.6.x.

1
0
0
@oleksandr I guess still we settle at some point :-)
0
0
0