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?