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?