This high end / high quality preset as developed and tested by Terje (with Andrew input) has been checked into the source GIT base.

On Sun, Jun 8, 2025 at 3:40 PM Terje J. Hanssen via Cin <cin@lists.cinelerra-gg.org> wrote:


Den 08.06.2025 17:49, skrev Andrew Randrianasulu:


вс, 8 июн. 2025 г., 18:26 Terje J. Hanssen via Cin <cin@lists.cinelerra-gg.org>:


Den 06.06.2025 14:17, skrev Terje J. Hanssen:
While the newer h.264 and hevc are known for best compression, mpeg2 may have better quality at video bitrate > 30Mbps

This example capture a raw video stream (optional tape playback) from the camera sensor over HDMI out and transcode audio to PCM into a high-end mpeg2hd422p.m2ts
-input_format yuyv422 -video_size hd1080 possibly may be commented out, as the encoder default uses the maximum capability it get from the capture card ms2130 and driver v4l2

mpeg2video is difficult to get quit perfect with ffmpeg; muxing overhead: 6.206455% is the minimum I have achieved as in this case.

At this high bitrate, 39Mbps here, a combination with segmented recording is suggested and preferred to control the file sizes (segments) and eventually corrupted parts better.


ffmpeg -hide_banner -f v4l2 -framerate 50 -i /dev/video0 -f alsa -ac 2 -i hw:CARD=UHD,DEV=0 -c:v mpeg2video -refs 1 -bf 2 -b:v 35M -maxrate 35M -minrate 35M -bufsize 38M -muxrate 38M -dc 10 -c:a pcm_bluray -mpegts_m2ts_mode 1 -t 30 -f mpegts mpeg2hd422p_35M.m2ts

Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 79.422429, bitrate: 1658880 kb/s
  Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080, 1658880 kb/s, 50 fps, 50 tbr, 1000k tbn
[aist#1:0/pcm_s16le @ 0x55e2664e95c0] Guessed Channel Layout: stereo
Input #1, alsa, from 'hw:CARD=UHD,DEV=0':
  Duration: N/A, start: 1749208971.359170, bitrate: 1536 kb/s
  Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native))
  Stream #1:0 -> #0:1 (pcm_s16le (native) -> pcm_bluray (native))
Press [q] to stop, [?] for help
[mpeg2video @ 0x55e2664d0500] Warning vbv_delay will be set to 0xFFFF (=VBR) as the specified vbv buffer is too large for the given bitrate!

Output #0, mpegts, to 'mpeg2hd422p_35M.m2ts':
  Metadata:
    encoder         : Lavf61.7.100
  Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, progressive), 1920x1080, q=2-31, 35000 kb/s, 50 fps, 90k tbn
      Metadata:
        encoder         : Lavc61.19.101 mpeg2video
      Side data:
        cpb: bitrate max/min/avg: 35000000/35000000/35000000 buffer size: 38000000 vbv_delay: N/A
  Stream #0:1: Audio: pcm_bluray, 48000 Hz, stereo, s16, 128 kb/s
      Metadata:
        encoder         : Lavc61.19.101 pcm_bluray
[out#0/mpegts @ 0x55e2664e9740] video:128445KiB audio:5648KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 6.206455%

frame= 1500 fps= 50 q=3.5 Lsize=  142416KiB time=00:00:29.98 bitrate=38915.0kbits/s speed=0.998x


I have been able to tune the ffmpeg specifications further:
  • '-profile:v 422p -level:v high' (for mpeg-2 profile 422P@HL)
  • '--ch_layout stereo' (as a replacement for  '-ac 2' that caused 'Guessed Channel Layout: stereo')

And also verified the camera HDMI out 'raw video' and 'raw audio' (pcm) using just the ffmpeg input parts:

ffmpeg -hide_banner -f v4l2 -framerate 50 -i /dev/video0 -f alsa -ch_layout stereo -i hw:CARD=UHD,DEV=0

Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 191.096360, bitrate: 1658880 kb/s
  Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080, 1658880 kb/s, 50 fps, 50 tbr, 1000k tbn
Input #1, alsa, from 'hw:CARD=UHD,DEV=0':
  Duration: N/A, start: 1749375770.007003, bitrate: 1536 kb/s
  Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s


Attached here  is a full ffmpeg debug log file for verification (command below)
  • mpeg2hd422p_35M.log.gz

ffmpeg -loglevel debug -f v4l2 -framerate 50 -i /dev/video0 -f alsa -ch_layout stereo -i hw:CARD=UHD,DEV=0 -c:v mpeg2video -profile:v 422p -level:v high -refs 1 -bf 2 -b:v 35M -maxrate 35M -minrate 35M -bufsize 38M -muxrate 38M -dc 10 -c:a pcm_bluray -mpegts_m2ts_mode 1 -t 30 -f mpegts mpeg2hd422p_35M.m2ts > mpeg2hd422p_35M.log 2>&1

-----------

Among CinGG's existing m2ts presets

cd /Leap_root/usr/share/cin/ffmpeg/video

ls -1 *m2ts
  • avc422.m2ts
  • bluray_bff.m2ts
  • bluray_dv_ntsc.m2ts
  • bluray_dv_pal.m2ts
  • bluray_fakeinterlace.m2ts
  • bluray_lo.m2ts
  • bluray.m2ts
  • bluray_tff.m2ts
  • hevc422p10.m2ts
  • hevc422p8.m2ts
  • lossless.m2ts
  • visually_lossless.m2ts

grep mpeg2video *m2ts
  • That is none so far for mpeg2video HD and 422p

If this preset can be specified and supplemented (?) for use with pcm_bluray and segmented recording, I can test it next ;)

I think you can copy existing mpeg2 m2ts  preset with different, desired name  (in same folder where other presets reside)

and just add you parameters there?

or try to put text below in new profile ....

mpegts mpeg2video
cin_pix_fmt=yuv422p
b=35M
dc=10
muxrate=38M
minrate=35M
maxrate=35M
bufsize=38M
bf=2
profile=high
refs=1

Yeah, thank you. Attach the new preset as suggested:

cat mpeg2hd422p.m2ts

    mpegts mpeg2video
    cin_pix_fmt=yuv422p
    b=35M
    dc=10
    muxrate=38M
    minrate=35M
    maxrate=35M
    bufsize=38M
    bf=2
    profile=high
    refs=1

Recorded a test clip mpeg2hd422p.m2ts Start/Stop as below, using the new video preset mpeg2hd422p.m2ts and existing audio preset bluray_lpcm.m2ts, and yes, they seemingly work ok:

cin
Cinelerra Infinity - built: May 18 2025 05:16:5
...........
Shift-P preferences as previously
r(ecord)

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: Inappropriate ioctl for device
audio0 pad 16 0 (16)
----------

ffprobe -hide_banner mpeg2hd422p.m2ts
Input #0, mpegts, from 'mpeg2hd422p.m2ts':
  Duration: 00:01:14.84, start: 0.020000, bitrate: 39006 kb/s
  Program 1
  Stream #0:0[0x1011]: Video: mpeg2video (High) ([2][0][0][0] / 0x0002), 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: 35000000/0/0 buffer size: 38010880 vbv_delay: N/A
  Stream #0:1[0x1100](eng): Audio: pcm_bluray ([128][0][0][0] / 0x0080), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s

Playback ok with vlc and ffplay
----------

The next question;
Is segmented recording ready to use here, possibly how?



 
--
Cin mailing list
Cin@lists.cinelerra-gg.org
https://lists.cinelerra-gg.org/mailman/listinfo/cin