[Cin] HDMI video streams to lossless compressed FFV1.MKV

Andrew Randrianasulu randrianasulu at gmail.com
Mon May 5 16:05:54 CEST 2025


пн, 5 мая 2025 г., 17:00 Andrew Randrianasulu <randrianasulu at gmail.com>:

>
>
> пн, 5 мая 2025 г., 16:26 Terje J. Hanssen via Cin <
> cin at lists.cinelerra-gg.org>:
>
>> I consider to make a second preservation backup for archiving my Analog
>> S-video and HDV footages on tapes to lossless compressed FFV1.MKV files
>> stored on large USB3 expansion disks. Also ffv1 HW (vulkan) decoding (next
>> and encoding (later?) are of interest in this context.
>>
>> Related previous threads
>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg05547.html
>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg03791.html
>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg05547.html
>>
>> I adapt simply the last ffmpeg mpeg-2 code line to a first ffv1, version
>> 3 test, 10 sec file
>>
>> ffmpeg -hide_banner -f v4l2 -input_format yuyv422 -video_size 720x576
>> -framerate 50 -i /dev/video0 -f alsa -ac 2 -i hw:CARD=UHD,DEV=0 -c:v ffv1
>> -level 3 -c:a pcm_s16le -t 10 720x576_50fps+alsa_ms2130_ffv1-3+pcm.mkv
>>
>> Input #0, video4linux2,v4l2, from '/dev/video0':
>>   Duration: N/A, start: 351.803278, bitrate: 331776 kb/s
>>   Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576,
>> 331776 kb/s, 50 fps, 50 tbr, 1000k tbn
>> [aist#1:0/pcm_s16le @ 0x555a99736cc0] Guessed Channel Layout: stereo
>> Input #1, alsa, from 'hw:CARD=UHD,DEV=0':
>>   Duration: N/A, start: 1746445045.742179, 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) -> ffv1 (native))
>>   Stream #1:0 -> #0:1 (pcm_s16le (native) -> pcm_s16le (native))
>> Press [q] to stop, [?] for help
>> Output #0, matroska, to '720x576_50fps+alsa_ms2130_ffv1-3+pcm.mkv':
>>   Metadata:
>>     encoder         : Lavf61.7.100
>>   Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(tv, progressive),
>> 720x576, q=2-31, 200 kb/s, 50 fps, 1k tbn
>>       Metadata:
>>         encoder         : Lavc61.19.101 ffv1
>>   Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
>> stereo, s16, 1536 kb/s
>>       Metadata:
>>         encoder         : Lavc61.19.101 pcm_s16le
>> [out#0/matroska @ 0x555a99736f40] video:57467KiB audio:1875KiB
>> subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead:
>> 0.069226%
>> frame=  500 fps= 50 q=-0.0 Lsize=   59383KiB time=00:00:10.00
>> bitrate=48646.9kbits/s speed=0.998x
>>
>>
>> ----------
>>
>> du -sh *
>> 58M    720x576_50fps+alsa_ms2130_ffv1-3+pcm.mkv
>>
>> ----------
>>
>> ffprobe -hide_banner 720x576_50fps+alsa_ms2130_ffv1-3+pcm.mkv
>>
>> Input #0, matroska,webm, from '720x576_50fps+alsa_ms2130_ffv1-3+pcm.mkv':
>>   Metadata:
>>     ENCODER         : Lavf61.7.100
>>   Duration: 00:00:10.00, start: 0.000000, bitrate: 48646 kb/s
>>   Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(tv, progressive),
>> 720x576, 50 fps, 50 tbr, 1k tbn
>>       Metadata:
>>         ENCODER         : Lavc61.19.101 ffv1
>>         DURATION        : 00:00:10.000000000
>>   Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
>>       Metadata:
>>         ENCODER         : Lavc61.19.101 pcm_s16le
>>         DURATION        : 00:00:10.000000000
>>
>>
>> ------------
>>
>> mediainfo 720x576_50fps+alsa_ms2130_ffv1-3+pcm.mkv
>>
>> General
>> Unique ID                                :
>> 158479793538002634101121179263279280827 (0x773A19163BEA6038DF448CE1529BB2BB)
>> Complete name                            :
>> 720x576_50fps+alsa_ms2130_ffv1-3+pcm.mkv
>> Format                                   : Matroska
>> Format version                           : Version 4
>> File size                                : 58.0 MiB
>> Duration                                 : 10 s 0 ms
>> Overall bit rate mode                    : Variable
>> Overall bit rate                         : 48.6 Mb/s
>> Frame rate                               : 50.000 FPS
>> Writing application                      : Lavf61.7.100
>> Writing library                          : Lavf61.7.100
>> ErrorDetectionType                       : Per level 1
>>
>> Video
>> ID                                       : 1
>> Format                                   : FFV1
>> Format version                           : Version 3.4
>> Format settings, Slice count             : 4 slices per frame
>> Codec ID                                 : V_MS/VFW/FOURCC / FFV1
>> Duration                                 : 10 s 0 ms
>> Bit rate mode                            : Variable
>> Bit rate                                 : 46.1 Mb/s
>> Width                                    : 720 pixels
>> Height                                   : 576 pixels
>> Display aspect ratio                     : 5:4
>> Frame rate mode                          : Constant
>> Frame rate                               : 50.000 FPS
>> Color space                              : YUV
>> Chroma subsampling                       : 4:2:2
>> Bit depth                                : 8 bits
>> Scan type                                : Progressive
>> Compression mode                         : Lossless
>> Bits/(Pixel*Frame)                       : 2.225
>> Stream size                              : 55.0 MiB (95%)
>> Writing library                          : Lavc61.19.101 ffv1
>> Default                                  : No
>> Forced                                   : No
>> Color range                              : Limited
>> coder_type                               : Golomb Rice
>> ErrorDetectionType                       : Per slice
>>
>> Audio
>> ID                                       : 2
>> Format                                   : PCM
>> Format settings                          : Little / Signed
>> Codec ID                                 : A_PCM/INT/LIT
>> Duration                                 : 10 s 0 ms
>> Bit rate mode                            : Constant
>> Bit rate                                 : 1 536 kb/s
>> Channel(s)                               : 2 channels
>> Sampling rate                            : 48.0 kHz
>> Bit depth                                : 16 bits
>> Stream size                              : 1.83 MiB (3%)
>> Writing library                          : Lavc61.19.101 pcm_s16le
>> Default                                  : No
>> Forced                                   : No
>>
>> ---------------------------------
>>
>> As seen above the "default" Chroma subsampling  is yuv422p or 4:2:2 with
>> Bit depth: 8 bits
>>
>> As ffv1 seemingly also does support yuv422p10le ffmpeg, I wonder if
>> yuv422p is limited by the input from HDMI capture/AV converter?
>> Can possibly yuv422p10le possibly be achieved by adding -pix_fmt 10 og
>> similar syntax to the ffmpeg line?
>>
>
> you can try  different -input_format, but I suspect 10bit video over v4l2
> at best uncommon ... While hdmi itself supports 10bit digital signal, I
> suspect  non-pro capture devices usually limited to 8bit?
>

https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavdevice/v4l2-common.c

I can't see 10bit yuy2 format listed here, so probably even if hw/driver
support it ffmpeg will not ...




> But of course you better to doublecheck what v4l2 tools says ...
>
> Sorry for "too generic" answer, few years ago I/we looked into "direct RF
> capture" and there getting 10bit signal was possible, with custom hardware,
> slow offline processing and invasive hoockup to VCR's internals.
>
>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> Cin mailing list
>> Cin at lists.cinelerra-gg.org
>> https://lists.cinelerra-gg.org/mailman/listinfo/cin
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20250505/48ff90dc/attachment.htm>


More information about the Cin mailing list