[Cin] Record camcorder video stream via v4l2 and hdmi-usb3 capture as input device
Andrew Randrianasulu
randrianasulu at gmail.com
Thu May 29 01:27:58 CEST 2025
ср, 28 мая 2025 г., 23:38 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
> 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?
>
Very good question. HDMI is (uncompressed) digital video interface,
likewise USB3 is also digital, BUT as we noted in another thread by default
ms2130 does its own signal processing, but with hacked firmware this can be
disabled and thus this usb3 dongle become sort of generic digital input
device at relatively high speed (75 Mbytes/s).
Unless you set your camera as giant "webcam" I think that is on HDMI output
is result of decoding mpeg2 from tape?
> 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?)
>
I think capture logic predates ffmpeg integration, so not sure if it
possible .. I'll look into it.
> 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
PCM in mpeg2ts tend to be unsupported? It stuffed into private stream and
even ffmpeg itself does not know how to extract it back? So if you want to
put video+audio back to tape you are stuck with that camera itself produces
.... If you prepare files for PC viewing you can encode in any codec/audio
codec/container combination.
Feel free to modify some presets, and I think there was way to save them
from GUI?
Obvious question that tended to bite me back in the day: does audio and
video stay in sync over longer periods of time?
>
>
>
>
>
>
>
>
> >> 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
> >>
> >>
> >>
> >>
> >>
> >>
> >>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250529/53916b43/attachment-0001.htm>
More information about the Cin
mailing list