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