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?