[Cin] Record camcorder video stream via v4l2 and hdmi-usb3 capture as input device

Andrew Randrianasulu randrianasulu at gmail.com
Fri May 30 01:28:55 CEST 2025


чт, 29 мая 2025 г., 05:45 Terje J. Hanssen <terjejhanssen at gmail.com>:

>
>
> Den 29.05.2025 01:27, skrev Andrew Randrianasulu:
>
>
>
> ср, 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?
>
>
> My tests here were just camera without tape. I'll have a look with tape
> playing to find the bitrate over HDMI out.
>
> And to repeat the relevant sections from to Steve Mullen's FX7 and V1
> handbook:
>
> When the camera is operating, the EIP generates uncompressed 1440x1080i
> with a 4:2:2 color space.
> Digital 4:2:2 data are output via the HDMI port
> Therefore, you can record 4:2:2 live HD video from the camera without
> MPEG-2 compression.
>
> Two-channel audio is output on the HDMI port, both when the camera is
> running and during tape
> playback.
> The Sony 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.
>
> If you record to HDV tape, you can also benefit from HDMI uncompressed
> capture and editing.
> After MPEG-2 decoding, the 4:2:2, 8-bit YCbCr uncompressed video is sent
> via the camcorder’s
> HDMI port
>
> 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.
>
>
>
>
>
>> 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.
>
>
> HDV 1080i 25Mbps (M2T) compressed on miniDV tapes has only space for
> embedded MP2 audio, HDV 720p optional PCM.
> Else, "HDV" in various MPEG-2 formats can be stored with PCM audio,
> included DVD and Bluray..
> All XDCAM video formats use MPEG-2 and PCM audio
> https://en.wikipedia.org/wiki/XDCAM#XDCAM_formats
>


Yes, it will be much more accurate to say that putting *arbitrary* PCM
audio data in mpegts will not work well with ffmpeg. DVD and BD variants
have their own micro-header saying things like samplerate, number of
channels .... so you are limited to specific combination of parameters.

I think XDCAM was using MXF (Material Exchange format)?



>
> Feel free to modify some presets, and I think there was way to save them
> from GUI?
>
>
> I'll look at that
>
>
> 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/20250530/34306423/attachment-0001.htm>


More information about the Cin mailing list