All 4 USB cameras appear to be the same camera to GStreamer.
iotsystek
iotsystek at gmail.com
Wed Feb 10 17:35:39 UTC 2021
PROBLEM:
I am currently working on a LattePanda Delta with Windows 10. Using a
command prompt window I can show any of the 4 cameras one at a time using
the following commands.
gst-launch-1.0 ksvideosrc device-index=0 name=Cam0 ! queue ! videoconvert !
videorate ! autovideosink sync=false
gst-launch-1.0 ksvideosrc device-index=1 name=Cam1 ! queue ! videoconvert !
videorate ! autovideosink sync=false
gst-launch-1.0 ksvideosrc device-index=2 name=Cam2 ! queue ! videoconvert !
videorate ! autovideosink sync=false
gst-launch-1.0 ksvideosrc device-index=3 name=Cam3 ! queue ! videoconvert !
videorate ! autovideosink sync=false
If I attempt to use 2 or more cameras at the same time by starting each
gst-launch-1.0 command in separate command windows or attempting to use
videomixer and videobox in any configuration. I get an error:
ERROR: from element /GstPipeline:pipeline0/GstKsVideoSrc:Cam1: failed to
start capture (device already in use)
I have tried using all kinds of [device-path], [device-index] variations,
all with the same results.
What am I missing?
How do I get GStreamer to use all 4 cameras at the same time?
Does anyone have a working multiple USB camera configuration that they could
share or compare what I attempting to do with what they have that works.
Is there something besides GStreamer that can do this?
At this point I am open to any hardware/software solution.
Thanks in advance for any assistance.
Jim
BACKGROUND:
I have been trying to get 4 USB Cameras to display in a single window. I
started with a Raspberry Pi 4 ARM CPU and had a lot of issues that seemed to
suggest that the Pi was not up to the task, although I never saw anything
that would suggest that in the task manager (~ 15% CPU and under 100K
memory). So to be sure I purchased a LattePanda Delta 4GB RAM Intel CPU
based SBC to test further. With Linux on the Panda I pretty much had the
same problems and results as I did with the Pi so I installed Windows 10 on
the Panda.
Here is a quick overview of what I am trying to accomplish. I currently
have a Raspberry Pi 4 in the cab of my 2001 diesel truck. It is used for
several gauges, controls the aftermarket exhaust brake, trailer brakes and
provides GPS. I tow a 5-wheel trailer and want to add traffic cameras to
it.
I have a cat5 wired connection between the trailer and the cab already. I
want to set this up so that at the push of a touch screen button in the cab
I can select different pre-configured camera sereams based on traffic
conditions and possible upcoming lane changes.
I would like the computer in the trailed to input the camera video arrange
it into one of several single window configurations and stream that
consolidated video to the cab computer.
I am using videomixer and videobox to combine the video streams.
As an example this GStreamer command works in all SBC and OS cases (RPi4,
Panda, Linux, Windows). If I can get this to work using the USB cameras as
inputs I will stream this output to the cab of the truck via UDP.
gst-launch-1.0 videomixer name=mix ! videoconvert ! autovideosink sync=false
^
videotestsrc pattern=0 ! video/x-raw,format=AYUV,width=640,height=480 !
videobox top=0 border-alpha=0 ! mix. ^
videotestsrc pattern=4 ! video/x-raw,format=AYUV,width=640,height=480 !
videobox left=-640 border-alpha=0 ! mix. ^
videotestsrc pattern=5 ! video/x-raw,format=AYUV,width=640,height=480 !
videobox top=-480 border-alpha=0 ! mix. ^
videotestsrc pattern=6 ! video/x-raw,format=AYUV,width=640,height=480 !
videobox left=-640 top=-480 border-alpha=0 ! mix.
ADDITIONAL INFO:
3 of the cameras are ELP-USB100W05MT-DL36
1 of the cameras is a ELP-USB100W07M-MHV45
There is no audio needed or wanted in this project. Also a low frame rate
of 5 to 10 fps should be very acceptable.
I have attached a txt file that shows the video sources output from the
following command:
gst-device-monitor-1.0 Video/Source
USB_Cameras_on_Latte_Panda_with_Win_10.txt
<http://gstreamer-devel.966125.n4.nabble.com/file/t379857/USB_Cameras_on_Latte_Panda_with_Win_10.txt>
In a nutshell this is what I get:
There are 2 entries for each camera with each entry using a different video
source plugin (ksvideosrc or mfvideosrc).
I have tried these in different combinations, all resulting in the same
(device already in use) error.
ksvideosrc
device-path="\\\\\?\\usb\#vid_32e4\&pid_9601\&mi_00\#8\&1e2f342a\&0\&0000\#\{6994ad05-93ef-11d0-a3cc-00a0c9223196\}\\global"
mfvideosrc
device-path="\\\\\?\\usb\#vid_32e4\&pid_9601\&mi_00\#8\&1e2f342a\&0\&0000\#\{e5323777-f976-4f5b-9b55-b94699c46e44\}\\global"
ksvideosrc
device-path="\\\\\?\\usb\#vid_05a3\&pid_9310\&mi_00\#7\&2602478e\&0\&0000\#\{6994ad05-93ef-11d0-a3cc-00a0c9223196\}\\global"
mfvideosrc
device-path="\\\\\?\\usb\#vid_05a3\&pid_9310\&mi_00\#7\&2602478e\&0\&0000\#\{e5323777-f976-4f5b-9b55-b94699c46e44\}\\global"
ksvideosrc
device-path="\\\\\?\\usb\#vid_05a3\&pid_9310\&mi_00\#8\&ff2f27\&0\&0000\#\{6994ad05-93ef-11d0-a3cc-00a0c9223196\}\\global"
mfvideosrc
device-path="\\\\\?\\usb\#vid_05a3\&pid_9310\&mi_00\#8\&ff2f27\&0\&0000\#\{e5323777-f976-4f5b-9b55-b94699c46e44\}\\global"
ksvideosrc
device-path="\\\\\?\\usb\#vid_05a3\&pid_9310\&mi_00\#7\&134896e9\&0\&0000\#\{6994ad05-93ef-11d0-a3cc-00a0c9223196\}\\global"
mfvideosrc
device-path="\\\\\?\\usb\#vid_05a3\&pid_9310\&mi_00\#7\&134896e9\&0\&0000\#\{e5323777-f976-4f5b-9b55-b94699c46e44\}\\global"
--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
More information about the gstreamer-devel
mailing list