Den
08.02.2023
16:45, skrev
Terje J.
Hanssen:
Den
08.02.2023
15:34, skrev
Andrew
Randrianasulu:
Den
08.02.2023
14:21, skrev
Andrew
Randrianasulu:
Den
08.02.2023
02:38, skrev
Andrew
Randrianasulu:
Den
08.02.2023
00:52, skrev
Andrew
Randrianasulu:
Den
02.02.2023
01:46, skrev
Terje J.
Hanssen:
.......
but I prepare
myself to test
and use one
method left
with regards
to "Personal
Video
Archiving".
Therefore I
have ordered
two selected,
inexpensive
devices (the
urls here are
just for
English
language):
1) Capture
Card USB HDMI
4K to 1080P
USB-C adapter
(Speedy USB
3.2/3.1/3.0, 60
Hz and 1080p
FHD.)
https://www.turascandinavia.com/en/products/computer/microphone-webcam/webcams/74257
- Fluid
video
recordings
without delays
or distortions
during live
streaming
- Linux
not mentioned,
but assumed
this is a
standard
supported UVC.
OBS and VLC is
mentioned.
Then
the first
item, Hama
Video
Recording
Stick, HDMI 4k
- USB3.x is
received. It
promises:
"Fluid video
recordings
without delays
or distortions
during live
streaming,
thanks to a
picture
frequency of
60 Hz and
1080p with
Full HD.
Transform
high-quality
video cameras
into a
high-resolution
USB web
camera".
I have done a
quick, first
test using my
Sony HDR-FX7E
camera. This
is a HDV 1080i
camcorder with
MPEG-2 video
compression at
25 mbps on
tape
1440x1080,
50i25fps,
4:2:0 and MP2
stereo audio.
Currently it's
cassette deck
is broken and
needs repair
service.
But according
to Steve
Mullen's V1
and FX7
handbook (not
mentioned in
the manual):
1. When the camera is operating, the EIP (Enhanced
Image
Processor)
generates
uncompressed
1440x1080i
with a 4:2:2
color space. Digital 4:2:2 data are output via the HDMI port while
4:2:2 analog
is output via
component-out.
Therefore, you
can record
4:2:2 live HD
video from the
camera without
MPEG-2
compression.
V1 and FX7
provide an
HDMI output
port that
carries
uncompressed
4:2:2, 8-bit,
digital video
plus
dual-channel,
PCM, 16-bit,
48kHz audio
When the
camera is
running.
2.
If you are
playing a
1080i50 or
1080i60 HDV
tape. The
4:2:0 MPEG-2
is decoded and
chroma
up-scaled to a
4:2:2. The
HDMI
chip
downscales
1440 to 1280
while it
up-scales 540
to 720. The
result is
720p50 or
720p60, which
is output via
HDMI.
That
is, I have
tested section
1 now, but see
now that I
didn't test
1440x1080
resolution.
The only
resolution I
got to work at
25 fps was
720x576 (SD),
while HD
1280x720 and
FHD 1920x1080
were set down
to 10 fps and
5 fps
respectively
by the driver
and caused
jumpy
playback.
Did
you tried to
force specific
format
(uncompressed)
before -i
parameter for
ffmpeg?
Just
"-framerate 25
-video_size
1920x1080"
before -i as
repeated in
the code as
follows, where
I tested to
encode to
uncompressed
v210 instead
of ffv1, but
with no change
with regards
to low 5 fps:
ffmpeg
-hide_banner
-f v4l2
-framerate 25
-video_size
1920x1080 -i
/dev/video0
-codec:v v210
-codec:a
pcm_s16le -f
matroska
1920x1080_v210.mkv
[video4linux2,v4l2 @ 0x55944900e0c0] The driver changed the time per
frame from
1/25 to 1/5
I also read a
related issue
and reply to
this post at
Superuser,
where
1920x1080 was
not supported
on the webcam.
https://superuser.com/questions/1449252/ffmpeg-captures-from-uvc-dev-video0-in-any-resolution-except-for-1920x1080
Also
look out for
usb2 vs usb3
ports?
Shouldn't
capture device
hang on bus
002 (usb 3.0)
root hub,
instead of bus
001 (usb 2.0
root hub),
from lsusb
below?
This may well
work better. I
have to admit
that I have
never studied
the difference
between shared
usb buses. My
thought was to
try to change
the connected
usb devices,
but tested
first the only
free usb3 port
(blue) on the
add-on
frontpanel of
the
workstation.
The other two
usb3 ports are
on the
backpanel and
are used for
the Asus
blu-ray burner
and 8TB
Seagate
expansion
video disc.
The other usb
ports on both
panels are
usb2 ports,
whereof two
for the
wireless
keyboard and
mouse on the
fronpanel.
What I
possibly
already have
mentioned
before, is
that sometimes
if I connect a
usb(2) device
or memory to
the usb3 port
on the
frontpanel,
this cause
hang on the
keyboard or
mouse. But
this didn't
happend this
time with the
USB3 capture
stick.
Someone here
that have
suggestion to
possibly
modified
syntax or can
verify that
the driver
doesn't manage
this?
Another
(setup)
problem, there
was no audio
recorded or
heard during
playback!?
In the
following I
list the test
command syntax
I've
collectedf and
tried with
shortened
output (yet
long):
To explain, I
have also
another USB
2.0 Webcam
connected,
beside the new
HDMI-USB3
Videstick.
Verify the
devices,
drivers and
formats:
---------------------------------------
dmesg | tail
[22706.060759]
perf:
interrupt took
too long (2521
> 2500),
lowering
kernel.perf_event_max_sample_rate to 79250
[32105.561575]
perf:
interrupt took
too long (3158
> 3151),
lowering
kernel.perf_event_max_sample_rate to 63250
[40586.477420]
usb 1-5: USB
disconnect,
device number
2
[40599.099612]
usb 1-5: new
high-speed USB
device number
5 using
xhci_hcd
[40599.250960]
usb 1-5: New
USB device
found,
idVendor=534d,
idProduct=2109, bcdDevice=21.00
[40599.250972]
usb 1-5: New
USB device
strings:
Mfr=1,
Product=2,
SerialNumber=0
[40599.250978]
usb 1-5:
Product: USB
Video
[40599.250984]
usb 1-5:
Manufacturer:
MACROSILICON
[40599.252310]
usb 1-5: Found
UVC 1.00
device USB
Video
(534d:2109)
[40599.256234]
hid-generic
0003:534D:2109.0006:
hiddev96,hidraw0: USB HID v1.10 Device [MACROSILICON USB Video] on
usb-0000:00:14.0-5/input4
-----------------------------
lsusb
Bus 002 Device
003: ID
05e3:0732
Genesys Logic,
Inc.
All-in-One
Cardreader
Bus 002 Device
002: ID
0bc2:2038
Seagate RSS
LLC Expansion
HDD
Bus 002 Device
001: ID
1d6b:0003
Linux
Foundation 3.0
root hub
Bus 001 Device
003: ID
046d:c534
Logitech, Inc.
Unifying
Receiver
Bus 001 Device
005: ID
534d:2109
MacroSilicon
USB Video
Bus 001 Device
004: ID
0c45:6340
Microdia
Camera
Bus 001 Device
001: ID
1d6b:0002
Linux
Foundation 2.0
root hub
udevadm info
/dev/video* |
egrep
'DEVNAME|ID_V4L_PRODUCT'
E:
DEVNAME=/dev/video0
E:
ID_V4L_PRODUCT=USB
Video: USB
Video
E:
DEVNAME=/dev/video1
E:
ID_V4L_PRODUCT=USB
Video: USB
Video
E:
DEVNAME=/dev/video2
E:
ID_V4L_PRODUCT=USB
2.0 Camera: HD
720P Webcam
E:
DEVNAME=/dev/video3
E:
ID_V4L_PRODUCT=USB
2.0 Camera: HD
720P Webcam
lsusb | egrep
'Video|Camera'
Bus 001 Device
005: ID
534d:2109
MacroSilicon
USB Video
Bus 001 Device
004: ID
0c45:6340
Microdia
Camera
--------------------
ll /dev/video*
crw-rw----+ 1
root video 81,
0 feb. 7
20:22
/dev/video0
crw-rw----+ 1
root video 81,
1 feb. 7
20:22
/dev/video1
crw-rw----+ 1
root video 81,
2 feb. 7
09:05
/dev/video2
crw-rw----+ 1
root video 81,
3 feb. 7
09:05
/dev/video3
-----------------------
v4l2-ctl
--list-devices
USB 2.0
Camera: HD
720P Webcam
(usb-0000:00:14.0-11):
/dev/video2
/dev/video3
USB Video: USB
Video
(usb-0000:00:14.0-5):
/dev/video0
/dev/video1
-------------------------
ffmpeg -f v4l2
-list_formats
all -i
/dev/video0
ffmpeg
-hide_banner
-f v4l2
-list_formats
all -i
/dev/video0
[video4linux2,v4l2 @ 0x556cf63570c0] Compressed: mjpeg :
Motion-JPEG :
1920x1080
1600x1200
1360x768
1280x1024
1280x960
1280x720
1024x768
800x600
720x576
720x480
640x480
[video4linux2,v4l2 @ 0x556cf63570c0] Raw : yuyv422 :
YUYV 4:2:2 :
1920x1080
1600x1200
1360x768
1280x1024
1280x960
1280x720
1024x768
800x600
720x576
720x480
640x480
/dev/video0:
Immediate exit
requested
ffmpeg
-hide_banner
-f v4l2
-list_formats
all -i
/dev/video1
[video4linux2,v4l2 @ 0x5560c0bc70c0]
ioctl(VIDIOC_G_INPUT): Inappropriate ioctl for device
/dev/video1:
Inappropriate
ioctl for
device
----------------
v4l2-ctl --all
Driver Info
(not using
libv4l2):
Driver
name :
uvcvideo
Card
type : USB
Video: USB
Video
Bus
info :
usb-0000:00:14.0-5
Driver
version:
5.14.21
Capabilities
: 0x84A00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device
Caps :
0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 2
Video input :
0 (Camera 1:
ok)
Format Video
Capture:
Width/Height
: 1920/1080
Pixel
Format :
'MJPG'
Field
: None
Bytes
per Line :
0
Size
Image :
4147200
Colorspace
: sRGB
Transfer
Function :
Rec. 709
YCbCr/HSV
Encoding:
ITU-R 601
Quantization
: Default
(maps to Full
Range)
Flags
:
Crop
Capability
Video Capture:
Bounds :
Left 0, Top 0,
Width 1920,
Height 1080
Default :
Left 0, Top 0,
Width 1920,
Height 1080
Pixel
Aspect: 1/1
Selection:
crop_default,
Left 0, Top 0,
Width 1920,
Height 1080
Selection:
crop_bounds,
Left 0, Top 0,
Width 1920,
Height 1080
Streaming
Parameters
Video Capture:
Capabilities
: timeperframe
Frames
per second:
30.000 (30/1)
Read
buffers :
0
brightness 0x00980900 (int) : min=-128 max=127
step=1
default=-11
value=-11
contrast 0x00980901 (int) : min=0 max=255
step=1
default=148
value=148
saturation 0x00980902 (int) : min=0 max=255
step=1
default=180
value=180
hue 0x00980903 (int) : min=-128 max=127
step=1
default=0
value=0
-----------------
v4l2-ctl
--list-formats-ext
ioctl:
VIDIOC_ENUM_FMT
Index :
0
Type :
Video Capture
Pixel
Format: 'MJPG'
(compressed)
Name :
Motion-JPEG
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.100s (10.000 fps)
.........
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.100s (10.000 fps)
......
Size: Discrete 720x576
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.100s (10.000 fps)
well,
it seems we
know by now
why this
device was
...unexpensive.
Yes, I have a
"90-days open
order" and
will start to
search for
another,
better UVC
video capture
device.
The problem is
the lack of
definitive
specifications,
compared with
my proprietary
BMD devices.
it
really seems
to report only
5-10 fps at
fullHD
uncompresed,
anything
bigger is
mjpeg ...
Type :
Video Capture
Pixel
Format: 'YUYV'
Name :
YUYV 4:2:2
Size: Discrete 1920x1080
Interval: Discrete 0.200s (5.000 fps)
This can
absolutely not
be what they
promote as:
"Fluid
video
recordings
without delays
or distortions
during live
streaming,
thanks to a
picture
frequency of
60 Hz and
1080p with
Full HD".
I also tried
that link's
suggested
syntax
ffmpeg -y -t 15 -f video4linux2 -video_size 1920x1080 -input_format nv12 -timestamps abs -use_libv4l2 1 -i /dev/video0 out.mov
but it didn't
work for me,
just quitted
ffmpeg with
Unrecognized option 'timestamps'.
Error
splitting the
argument list:
Option not
found
Looking at
ffmpeg man
pages at
https://manpages.org/ffmpeg/1
there also is
a similar
video4linux2
syntax example
Grab and record the input of a video4linux2 device,
leave the
frame rate and
size as
previously
set:
ffmpeg
-f
video4linux2
-input_format
mjpeg -i
/dev/video0
out.mpeg
- video_size
-
Set the video
frame size.
The argument
must be a
string in the
form
WIDTHxHEIGHT
or a valid
size
abbreviation.
- pixel_format
-
Select the
pixel format
(only valid
for raw video
input).
- input_format
-
Set the
preferred
pixel format
(for raw
video) or a
codec name.
This option
allows one to
select the
input format,
when several
are available.
But what
should be set
as
input_format
in this case?
YUYV ? (lowercase)
ffmpeg
-hide_banner
-f
video4linux2
-input_format
yuyv -i
/dev/video0
out.mkv
[video4linux2,v4l2
@
0x55b25017e0c0]
No
such input
format: yuyv.
/dev/video0:
Invalid
argument
:(
Yes, 'yuyv422' at
least not returned
any errors, but
just verified 5
fps from the
encoded file
ffmpeg
-hide_banner -f
video4linux2
-input_format
yuyv422 -i
/dev/video0
out.mkv
ffprobe
-hide_banner
out.mkv
Input #0,
matroska,webm,
from 'out.mkv':
Metadata:
ENCODER :
Lavf58.76.100
Duration:
00:00:12.40,
start: 0.000000,
bitrate: 2 kb/s
Stream #0:0:
Video: vp9
(Profile 1),
yuv422p(tv,
progressive),
1920x1080, 5 fps,
5 tbr, 1k tbn, 1k
tbc (default)
Metadata:
ENCODER :
Lavc58.134.100
libvpx-vp9
DURATION :
00:00:12.400000000
Any idea why the
audio:0kB from
'-codec:a
pcm_s16le'
disappeared in the
encoded files?
inxi
-GA
Graphics:
Device-1: NVIDIA
GK208B [GeForce
GT 730] driver:
nouveau v:
kernel
Device-2:
Microdia Camera
type: USB
driver:
snd-usb-audio,uvcvideo
Device-3:
MacroSilicon USB
Video type: USB
driver:
hid-generic,snd-usb-audio,usbhid,uvcvideo
Display: server:
SUSE LINUX
1.20.3 driver:
loaded: nouveau
unloaded:
fbdev,modesetting,vesa
resolution:
2560x1440~60Hz
OpenGL:
renderer:
llvmpipe (LLVM
11.0.1 256 bits)
v: 4.5 Mesa
21.2.4
Audio:
Device-1: Intel
100 Series/C230
Series Family HD
Audio driver:
snd_hda_intel
Device-2: NVIDIA
GK208 HDMI/DP
Audio driver:
snd_hda_intel
Device-3:
Microdia Camera
type: USB
driver:
snd-usb-audio,uvcvideo
Device-4:
MacroSilicon USB
Video type: USB
driver:
hid-generic,snd-usb-audio,usbhid,uvcvideo
Sound
Server-1: ALSA
v:
k5.14.21-150400.24.41-default running: yes
Sound
Server-2:
PulseAudio v:
15.0 running:
yes
Sound
Server-3:
PipeWire v:
0.3.49 running:
yes