[Cin] Record camcorder video stream via v4l2 and hdmi-usb3 capture as input device
Terje J. Hanssen
terjejhanssen at gmail.com
Wed May 28 22:38:49 CEST 2025
Den 27.05.2025 21:29, skrev Andrew Randrianasulu:
> On Tue, May 27, 2025 at 10:47 PM Terje J. Hanssen
> <terjejhanssen at gmail.com> wrote:
>> Den 27.05.2025 16:28, skrev Andrew Randrianasulu:
>>
>> On Tue, May 27, 2025 at 7:02 PM Terje J. Hanssen via Cin
>> <cin at lists.cinelerra-gg.org> wrote:
>>
>>
>> Den 27.05.2025 12:54, skrev Terje J. Hanssen:
>>
>> I tried to Record camcorder video stream via v4l2 and hdmi-usb3 capture as input device.
>>
>> ms2130 is more powerful but else similar to the usb2 EasyCap device example described in the CinGG manual
>> https://cinelerra-gg.org/download/CinelerraGG_Manual/Use_Case_1_a_EasyCap.html
>>
>> My Sony FX7-E 1080i50 HDV camcorder was connected via HDMI to a ms2130 usb3 capture card.
>>
>> My procedure description here on openSUSE Tumbleweed-Slowroll, kernel 6.12.30-1.0.4.sr20250501-longterm
>>
>> ~/Applications> ./CinGG-20250430-x86_64.AppImage
>> Cinelerra Infinity - built: Apr 30 2025 07:18:32
>>
>> 1) Settings > Preferences > Record
>>
>> File format: FFMPEG mp4
>>
>> Video In:
>>
>> Record driver: Video4Linux2 /dev(video0
>>
>> The first thing I noticed was that default Record video setting was SD NTSC, not PAL as else according to my time zone.
>> Could this possibly be changed as else?
>>
>> Frames to record on disk: 30 (default)?
>>
>> Changed frame to a camcorder resolution and fps supported by v4l2 and ms2130:
>>
>> Frame: 1920 x 1080 (was default NTSC SD)
>> fps: 50 (progressive)
>>
>>
>> File > Record r
>>
>> Two windows opened, one showing the running record time etc. and the other the camera window image.
>>
>>
>> Unhappily, when I reconnected the camcorder to re-test today, the second window with the camera image did not longer open!!
>> I've tried to reset the machine and camcorder, but no. Did also a test with system ffplay (when the v4l2 was free again) and it worked.
>>
>> Obviously here is something that causes this confusing issue, but what? load straty, a changed setting or something else?
>> Happily the window opened yesterday, so I know the should work.
>> I understand this can be difficult to troubleshoot without a similar setup.
>>
>> There is checkbox named Monitor Video. Be sure you have it set.
>>
>>
>> Yes, thanks it works again.
>>
>> I usually set all parameters (like frame size, framerate, type of
>> Video Input device) in Recording tab.
>>
>>
>> Yes, but I wonder what these default box values mean?
>>
>> Frames to record to disk at a time: 30
>> Frames to buffer in device: 2
>> Positioning: Software timing
> I left first two as defaults, and sometimes for screenrecording set
> Samples instead of Software timing (so it will write stream relative
> to audio samples, adding or dropping frames as needed - makes audio
> and video track match)
>
> There should be std. for cingg wrench icon where you select type of
> encoding (FFMPEG ..).
> If you click it you get window with compression parameters.
> I set Pixels there.
Yeah, thank you - now it's hopefully better in my fingers :)
First, with my Sony FX7E HDV 1080i50 camera connected via
HDMI-ms2130-USB3 - 4vl2
That is the camera's EIP native (w/o MPEG-2 compression) output via HDMI
handshake expected FHD 1080i 422,
or is it just the ms2130 via USB3 and v4l2 capability that is detected
below?
ffplay -hide_banner -f v4l2 -framerate 50 -i /dev/video0
Input #0, video4linux2,v4l2, from '/dev/video0':B sq= 0B
Duration: N/A, start: 290.793132, bitrate: 1658880 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080,
1658880 kb/s, 50 fps, 50 tbr, 1000k tbn
v4l2-ctl -V
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : 'YUYV' (YUYV 4:2:2)
Field : None
Bytes per Line : 3840
Size Image : 4147200
Colorspace : sRGB
Transfer Function : Rec. 709
YCbCr/HSV Encoding: ITU-R 601
Quantization : Default (maps to Limited Range)
Flags :
-----------------
So I tested two additional mpeg2-hdv and mpeg2_hq recordings with CinGG
that works ok:
1) mpeg2_hdv_mpeg + mp2
---------------------------------------------
1920X1080
50fps
mpeg1_mp2.mpeg (no PCM available)
mpeg2_hdv_mpeg
yuv422p (default yuv420, shouldn't 422 be detected automatic from the
input?)
BC_DisplayInfo::gl_fb_config failed
DeviceV4L2Base::v4l2_open pixels="YUYV"; res="1920x1080 1600x1200
1360x768 1280x1024 1280x960 1280x720 1024x768 800x600 720x576 720x480
640x480"
v4l2 s_fmt 1920x1080 YUYV
DeviceV4L2Base::v4l2_open VIDIOC_S_STD: Unsuitable«ioctl» for device
-------
ffprobe -hide_banner CinGG_Record_mpeg2_hdv_video+mp2_audio.mpeg
Input #0, mpeg, from 'CinGG_Record_mpeg2_hdv_video+mp2_audio.mpeg':
Duration: 00:00:09.31, start: 0.509978, bitrate: 25439 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (4:2:2), yuv422p(tv,
bt709/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 50
fps, 50 tbr, 90k tbn
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 7110656 vbv_delay: N/A
Stream #0:1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 384 kb/s
-------
My comments:
The default 25Mbps video bitrate is just like mpeg2/ MP at H-14 HDV 1080i50
420 on tape.
Max allowed is 60 Mbps
PCM audio is missing
============
2) mpeg2_hq_mpeg + mp2
-------------------------------------------
1920X1080
50fps
mpeg1_mp2.mpeg (no PCM available)
mpeg2_hq_mpeg
yuv422p (default yuv420, shouldn't 422 be detected automatic from the
input?)
DeviceV4L2Base::v4l2_open pixels="YUYV"; res="1920x1080 1600x1200
1360x768 1280x1024 1280x960 1280x720 1024x768 800x600 720x576 720x480
640x480"
v4l2 s_fmt 1920x1080 YUYV
DeviceV4L2Base::v4l2_open VIDIOC_S_STD: Unsuitable«ioctl» for device
-----------
ffprobe -hide_banner CinGG_Record_mpeg2_hq_video+mp2_audio.mpeg
Input #0, mpeg, from 'CinGG_Record_mpeg2_hq_video+mp2_audio.mpeg':
Duration: 00:00:11.55, start: 0.509978, bitrate: 6379 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (4:2:2), yuv422p(tv,
bt709/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 50
fps, 50 tbr, 90k tbn
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 1130496 vbv_delay: N/A
Stream #0:1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 384 kb/s
------
My comments:
The default 6.37Mbps video bitrate is not very "hq", more like a SD DVD
bitrate
PCM audio is missing
=====================
Sometime in the future, additional presets (especial 422p) from common
MPEG-2 Profile/Level combinations could be useful
https://en.wikipedia.org/wiki/H.262/MPEG-2_Part_2#Video_profiles_and_levels
>> I have yet to find where to set color subsampling yuv422p, bitrate, quality profile etc
>>
>> I recorded three test file types with their defaults, and all got yuv420p
>>
>> CinGG_Record1.mp4
>> Duration: 00:00:09.05, start: 0.000000, bitrate: 5044 kb/s
>> Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080, 4952 kb/s, 50 fps, 50 tbr, 12800 tbn (default)
>>
>> CinGG_Record2.mkv
>> Duration: 00:00:13.66, start: -0.007000, bitrate: 890 kb/s
>> Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, bt709/unknown/unknown), 1920x1080, 50 fps, 50 tbr, 1k tbn
>>
>> CinGG_Record3.mpeg
>> Duration: 00:00:22.26, start: 0.520000, bitrate: 2321 kb/s
>> Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn
>>
>>
>>
>> Note that in your case while you record SD it gets upscaled by your
>> svideo -> hdmi and hdmi to usb converters to 1080p50
>>
>> There is red button and above it filename input field. Put
>> path/filename there, hit Record, and it should start recording to that
>> file.
>>
>> In case you played with contrast/brightness settings (cingg uses its
>> own set for v4l devices) you can run guvcview and restore them to
>> their default values
>>
>>
>>
>>
>>
>>
>>
More information about the Cin
mailing list