[Cin] mpeg2hd422p.m2ts - groundwork for a high-end preset
Terje J. Hanssen
terjejhanssen at gmail.com
Sun Jun 8 23:39:45 CEST 2025
Den 08.06.2025 17:49, skrev Andrew Randrianasulu:
>
>
> вс, 8 июн. 2025 г., 18:26 Terje J. Hanssen via Cin
> <cin at 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 at 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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250608/53e21748/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mpeg2hd422p.m2ts
Type: video/mp2t
Size: 123 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250608/53e21748/attachment-0001.bin>
More information about the Cin
mailing list