[Cin] HDMI video streams to lossless compressed FFV1.MKV
Terje J. Hanssen
terjejhanssen at gmail.com
Tue May 6 22:49:06 CEST 2025
Den 05.05.2025 16:05, skrev Andrew Randrianasulu:
>
>
> пн, 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 ...
Yes, It seems this also is the case.
Even I got a few 10-bits "-input_format" y210 and p210 accepted by
ffmpeg, in both cases the output format "defaulted" to the same 'yuv422p'.
What also surprised me, the filesizes at the same time also was reduced
to 77%
du -sh *
45M 720x576_50fps_p210+alsa_ms2130_ffv1-3+pcm.mkv
45M 720x576_50fps_y210+alsa_ms2130_ffv1-3+pcm.mkv
58M 720x576_50fps_yuyv422+alsa_ms2130_ffv1-3+pcm.mkv
>
>
> But of course you better to doublecheck what v4l2 tools says ...
>
So far no other pixel formats found:
v4l2-ctl -V
Format Video Capture:
Width/Height : 720/576
Pixel Format : 'YUYV' (YUYV 4:2:2)
Field : None
Bytes per Line : 1440
Size Image : 829440
Colorspace : sRGB
Transfer Function : Rec. 709
YCbCr/HSV Encoding: ITU-R 601
Quantization : Default (maps to Limited Range)
Flags :
>
> 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.
>
Similar I bought and captured a few ProRes422 HQ few files in 2016 with
Blackmagic Design's HyperDeck Shuttle+AD miniconverter+SSD recorder.
But some years later, BMD's fw support became EOL, and the devices
became non-working :(
>
>
>
>
>
>
>
>
>
>
> --
> 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/20250506/6ef99f36/attachment-0001.htm>
More information about the Cin
mailing list