Open s-ol opened 3 months ago
How to use at the moment:
When the gstreamer pipeline "videotestsrc" frame is /frame/ at /ts/ { ... }
The syntax of the pipeline string is gst-launch-1.0, but gstreamer.folk will automatically add a sink (and videoconvert
) at the end.
For webrtc:
gst-plugins-rs
gst-webrtc-signalling-server
npm i && npm start
npm run build
creates a bundle of the library code that can be vendoreduridecodebin uri=gstwebrtc://127.0.0.1:8443?peer-id=$PEER_ID
(slightly concerned about the long-term goal of replacing camera.folk/v4l2 with gstreamer -- it feels like we should try to use the lowest-level reasonable interface in general to avoid latency and give us configuration power. But otherwise this seems good/useful, continuing to look at it now)
Okay here are some thoughts after thinking about this for a day, seeking :
npm
for Gstreamerfolk.js
stays in this repo, everything that depends on npm
goes into a separate public repo and is basically Folk WebRTC middleware
, does that make sense?
- @s-ol what do you think about carving this out into its own repo that we vendor? I'm kind of concerned about mixing dependencies that include
npm
for Gstreamer
Oh, I didn't update the instructions above anymore, npm
was necessary to build the gstreamer webrtc demo page for initial testing, but later I compiled the gstwebrtc-api library into a standalone JS bundle and vendored it. Now only the gstreamer distro packages are dependencies and if they aren't detected webrtc.folk errors with a message pointing out what to install.
the flow now is:
Using gstreamer because it seems that's mandatory even if you use a more lightweight WebRTC signalling library. For WebRTC, needs the
gst-plugins-rs
package. Test program inmake test/gstreamer
shows a PNG at http://localhost:4273/gst-image/.gst-webrtc-signalling-server
instancestretch goals:
uridecodebin uri=v4l2:///dev/video0
has strong screen tearing for me, need to investigate