With gstreamer I’m able to stream the output of my usb camera to a v4l2loopback device. Guvcview and Cheese show the output of the usb camera when choosing the v4l2loopback device as video source, but Teams does not.
Whit ffmpeg I’m able to stream a video file to the v4l2loopback device and Teams shows the video file when choosing the v4l2loopback device as video source, but I’m not able to stream the output of my usb camera to the v4l2loopback device with ffmpeg:
Cannot find a proper format for codec 'none' (id 0), pixel format 'none' (id -1)
Assertion *codec_id != AV_CODEC_ID_NONE failed at libavdevice/v4l2.c:811
Or could it be a security feature which prohibits this? For example AppArmor?
How do you load the v4l2loopback device, i.e. with which options? I don’t use Zoom ( and refuse to for the dozens of reasons that are out on the web over the last couple of weeks ), but in other applications it only started working when I configured it like this:
Since I upgraded to openSUSE 15.2 this does not work anymore.
Streaming the test picture works fine:
PC1:/home/amadrits # gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video1
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
And Teams shows the test picture.
Streaming the camera signal to a window does not work anymore:
PC1:/home/amadrits # gst-launch-1.0 -v v4l2src device=/dev/video0 ! ximagesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
It looks like gstreamer cannot read the camera signal anymore.
Guvcview works fine with this camera.
Could it bee, that a gstreamer package or configuration is missing, or is this a bug in gstreamer?