пн, 5 мая 2025 г., 17:00 Andrew Randrianasulu
<randrianas...@gmail.com>:
пн, 5 мая 2025 г., 16:26 Terje J. Hanssen via Cin
<cin@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?