[Cin] Analog S-Video or HDV capture via HDMI-USB to FFV1.mkv in realtime

Andrew Randrianasulu randrianasulu at gmail.com
Wed Feb 8 14:21:40 CET 2023


ср, 8 февр. 2023 г., 14:47 Terje J. Hanssen <terjejhanssen at gmail.com>:

>
>
> Den 08.02.2023 02:38, skrev Andrew Randrianasulu:
>
>
>
> ср, 8 февр. 2023 г., 04:08 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>>
>>
>> Den 08.02.2023 00:52, skrev Andrew Randrianasulu:
>>
>>
>>
>> ср, 8 февр. 2023 г., 01:35 Terje J. Hanssen via Cin <
>> cin at lists.cinelerra-gg.org>:
>>
>>>
>>>
>>> Den 02.02.2023 01:46, skrev Terje J. Hanssen:
>>>
>>> .......
>>>
>>>
>>> but I prepare myself to test and use one method left with regards to
>>> "Personal Video Archiving".
>>>
>>> Therefore I have ordered two selected, inexpensive devices (the urls
>>> here are just for English language):
>>>
>>> 1) Capture Card USB HDMI 4K to 1080P USB-C adapter (Speedy USB
>>> 3.2/3.1/3.0, 60 Hz and 1080p FHD.)
>>>
>>> https://www.turascandinavia.com/en/products/computer/microphone-webcam/webcams/74257
>>>
>>>    - Fluid video recordings without delays or distortions during live
>>>    streaming
>>>    - Linux not mentioned, but assumed this is a standard supported UVC.
>>>    OBS and VLC is mentioned.
>>>
>>>
>>> Then the first item, Hama Video Recording Stick, HDMI 4k - USB3.x is
>>> received. It promises:
>>> "Fluid video recordings without delays or distortions during live
>>> streaming, thanks to a picture frequency of 60 Hz and 1080p with Full HD.
>>> Transform high-quality video cameras into a high-resolution USB web camera".
>>>
>>> I have done a quick, first test using my Sony HDR-FX7E camera. This is a
>>> HDV 1080i camcorder with MPEG-2 video compression at 25 mbps on tape
>>> 1440x1080, 50i25fps, 4:2:0 and MP2 stereo audio. Currently it's cassette
>>> deck is broken and needs repair service.
>>>
>>> But according to Steve Mullen's V1 and FX7 handbook (not mentioned in
>>> the manual):
>>>
>>> 1. When the camera is operating, the EIP (Enhanced Image Processor)
>>> generates uncompressed 1440x1080i with a 4:2:2 color space. Digital
>>> 4:2:2 data are output via the HDMI port while 4:2:2 analog is output via
>>> component-out. Therefore, you can record 4:2:2 live HD video from the
>>> camera without MPEG-2 compression. V1 and FX7 provide an HDMI output port
>>> that carries uncompressed 4:2:2, 8-bit, digital video plus dual-channel,
>>> PCM, 16-bit, 48kHz audio When the camera is running.
>>>
>>> 2. If you are playing a 1080i50 or 1080i60 HDV tape. The 4:2:0 MPEG-2 is
>>> decoded and chroma up-scaled to a 4:2:2. The HDMI
>>> chip downscales 1440 to 1280 while it up-scales 540 to 720. The result
>>> is 720p50 or 720p60, which is output via HDMI.
>>>
>>> That is, I have tested section 1 now, but see now that I didn't test
>>> 1440x1080 resolution. The only resolution I got to work at 25 fps was
>>> 720x576 (SD), while HD 1280x720 and FHD 1920x1080 were set down to 10 fps
>>> and 5 fps respectively by the driver and caused jumpy playback.
>>>
>>
>> Did you tried to force specific format (uncompressed) before -i parameter
>> for ffmpeg?
>>
>>
>> Just "-framerate 25 -video_size 1920x1080" before -i as repeated in the
>> code as follows, where I tested to encode to uncompressed v210 instead of
>> ffv1, but with no change with regards to low 5 fps:
>>
>> ffmpeg -hide_banner -f v4l2 -framerate 25 -video_size 1920x1080 -i
>> /dev/video0 -codec:v v210 -codec:a pcm_s16le -f matroska 1920x1080_v210.mkv
>> [video4linux2,v4l2 @ 0x55944900e0c0] The driver changed the time per
>> frame from 1/25 to 1/5
>>
>> I also read a related issue and reply to this post at Superuser, where
>> 1920x1080 was not supported on the webcam.
>>
>> https://superuser.com/questions/1449252/ffmpeg-captures-from-uvc-dev-video0-in-any-resolution-except-for-1920x1080
>>
>> Also look out for usb2 vs usb3 ports? Shouldn't capture device hang on
>> bus 002 (usb 3.0) root hub, instead of bus 001 (usb 2.0 root hub), from
>> lsusb below?
>>
>>
>> This may well work better. I have to admit that I have never studied the
>> difference between shared usb buses. My thought was to try to change the
>> connected usb devices, but tested first the only free usb3 port (blue) on
>> the add-on frontpanel of the workstation. The other two usb3 ports are on
>> the backpanel and are used for the Asus blu-ray burner and 8TB Seagate
>> expansion video disc.
>>
>> The other usb ports on both panels are usb2 ports, whereof two for the
>> wireless keyboard and mouse on the fronpanel. What I possibly already have
>> mentioned before, is that sometimes if I connect a usb(2) device or memory
>> to the usb3 port on the frontpanel, this cause hang on the keyboard or
>> mouse. But this didn't happend this time with the USB3 capture stick.
>>
>>
>>
>>
>>> Someone here that have suggestion to possibly modified syntax or can
>>> verify that the driver doesn't manage this?
>>>
>>> Another (setup) problem, there was no audio recorded or heard during
>>> playback!?
>>>
>>> In the following I list the test command syntax I've collectedf and
>>> tried with shortened output (yet long):
>>> To explain, I have also another USB 2.0 Webcam connected, beside the new
>>> HDMI-USB3 Videstick.
>>>
>>> Verify the devices, drivers and formats:
>>> ---------------------------------------
>>> dmesg | tail
>>> [22706.060759] perf: interrupt took too long (2521 > 2500), lowering
>>> kernel.perf_event_max_sample_rate to 79250
>>> [32105.561575] perf: interrupt took too long (3158 > 3151), lowering
>>> kernel.perf_event_max_sample_rate to 63250
>>> [40586.477420] usb 1-5: USB disconnect, device number 2
>>> [40599.099612] usb 1-5: new high-speed USB device number 5 using xhci_hcd
>>> [40599.250960] usb 1-5: New USB device found, idVendor=534d,
>>> idProduct=2109, bcdDevice=21.00
>>> [40599.250972] usb 1-5: New USB device strings: Mfr=1, Product=2,
>>> SerialNumber=0
>>> [40599.250978] usb 1-5: Product: USB Video
>>> [40599.250984] usb 1-5: Manufacturer: MACROSILICON
>>> [40599.252310] usb 1-5: Found UVC 1.00 device USB Video (534d:2109)
>>> [40599.256234] hid-generic 0003:534D:2109.0006: hiddev96,hidraw0: USB
>>> HID v1.10 Device [MACROSILICON USB Video] on usb-0000:00:14.0-5/input4
>>> -----------------------------
>>>
>>> lsusb
>>> Bus 002 Device 003: ID 05e3:0732 Genesys Logic, Inc. All-in-One
>>> Cardreader
>>> Bus 002 Device 002: ID 0bc2:2038 Seagate RSS LLC Expansion HDD
>>> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
>>> Bus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver
>>> Bus 001 Device 005: ID 534d:2109 MacroSilicon USB Video
>>> Bus 001 Device 004: ID 0c45:6340 Microdia Camera
>>> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>>>
>>>
>>> udevadm info  /dev/video* | egrep 'DEVNAME|ID_V4L_PRODUCT'
>>> E: DEVNAME=/dev/video0
>>> E: ID_V4L_PRODUCT=USB Video: USB Video
>>> E: DEVNAME=/dev/video1
>>> E: ID_V4L_PRODUCT=USB Video: USB Video
>>> E: DEVNAME=/dev/video2
>>> E: ID_V4L_PRODUCT=USB 2.0 Camera: HD 720P Webcam
>>> E: DEVNAME=/dev/video3
>>> E: ID_V4L_PRODUCT=USB 2.0 Camera: HD 720P Webcam
>>>
>>> lsusb | egrep 'Video|Camera'
>>> Bus 001 Device 005: ID 534d:2109 MacroSilicon USB Video
>>> Bus 001 Device 004: ID 0c45:6340 Microdia Camera
>>>
>>> --------------------
>>>
>>> ll /dev/video*
>>> crw-rw----+ 1 root video 81, 0 feb.   7 20:22 /dev/video0
>>> crw-rw----+ 1 root video 81, 1 feb.   7 20:22 /dev/video1
>>> crw-rw----+ 1 root video 81, 2 feb.   7 09:05 /dev/video2
>>> crw-rw----+ 1 root video 81, 3 feb.   7 09:05 /dev/video3
>>>
>>> -----------------------
>>>
>>> v4l2-ctl --list-devices
>>> USB 2.0 Camera: HD 720P Webcam (usb-0000:00:14.0-11):
>>>         /dev/video2
>>>         /dev/video3
>>>
>>> USB Video: USB Video (usb-0000:00:14.0-5):
>>>         /dev/video0
>>>         /dev/video1
>>>
>>> -------------------------
>>>
>>> ffmpeg -f v4l2 -list_formats all -i /dev/video0
>>> ffmpeg -hide_banner -f v4l2 -list_formats all -i /dev/video0
>>> [video4linux2,v4l2 @ 0x556cf63570c0] Compressed:       mjpeg :
>>> Motion-JPEG : 1920x1080 1600x1200 1360x768 1280x1024 1280x960 1280x720
>>> 1024x768 800x600 720x576 720x480 640x480
>>> [video4linux2,v4l2 @ 0x556cf63570c0] Raw       :     yuyv422 :
>>> YUYV 4:2:2 : 1920x1080 1600x1200 1360x768 1280x1024 1280x960 1280x720
>>> 1024x768 800x600 720x576 720x480 640x480
>>> /dev/video0: Immediate exit requested
>>>
>>> ffmpeg -hide_banner -f v4l2 -list_formats all -i /dev/video1
>>> [video4linux2,v4l2 @ 0x5560c0bc70c0] ioctl(VIDIOC_G_INPUT):
>>> Inappropriate ioctl for device
>>> /dev/video1: Inappropriate ioctl for device
>>> ----------------
>>>
>>> v4l2-ctl --all
>>> Driver Info (not using libv4l2):
>>>         Driver name   : uvcvideo
>>>         Card type     : USB Video: USB Video
>>>         Bus info      : usb-0000:00:14.0-5
>>>         Driver version: 5.14.21
>>>         Capabilities  : 0x84A00001
>>>                 Video Capture
>>>                 Metadata Capture
>>>                 Streaming
>>>                 Extended Pix Format
>>>                 Device Capabilities
>>>         Device Caps   : 0x04200001
>>>                 Video Capture
>>>                 Streaming
>>>                 Extended Pix Format
>>> Priority: 2
>>> Video input : 0 (Camera 1: ok)
>>> Format Video Capture:
>>>         Width/Height      : 1920/1080
>>>         Pixel Format      : 'MJPG'
>>>         Field             : None
>>>         Bytes per Line    : 0
>>>         Size Image        : 4147200
>>>         Colorspace        : sRGB
>>>         Transfer Function : Rec. 709
>>>         YCbCr/HSV Encoding: ITU-R 601
>>>         Quantization      : Default (maps to Full Range)
>>>         Flags             :
>>> Crop Capability Video Capture:
>>>         Bounds      : Left 0, Top 0, Width 1920, Height 1080
>>>         Default     : Left 0, Top 0, Width 1920, Height 1080
>>>         Pixel Aspect: 1/1
>>> Selection: crop_default, Left 0, Top 0, Width 1920, Height 1080
>>> Selection: crop_bounds, Left 0, Top 0, Width 1920, Height 1080
>>> Streaming Parameters Video Capture:
>>>         Capabilities     : timeperframe
>>>         Frames per second: 30.000 (30/1)
>>>         Read buffers     : 0
>>>                      brightness 0x00980900 (int)    : min=-128 max=127
>>> step=1 default=-11 value=-11
>>>                        contrast 0x00980901 (int)    : min=0 max=255
>>> step=1 default=148 value=148
>>>                      saturation 0x00980902 (int)    : min=0 max=255
>>> step=1 default=180 value=180
>>>                             hue 0x00980903 (int)    : min=-128 max=127
>>> step=1 default=0 value=0
>>>
>>> -----------------
>>>
>>> v4l2-ctl --list-formats-ext
>>> ioctl: VIDIOC_ENUM_FMT
>>>         Index       : 0
>>>         Type        : Video Capture
>>>         Pixel Format: 'MJPG' (compressed)
>>>         Name        : Motion-JPEG
>>>                 Size: Discrete 1920x1080
>>>                         Interval: Discrete 0.017s (60.000 fps)
>>>                         Interval: Discrete 0.033s (30.000 fps)
>>>                         Interval: Discrete 0.040s (25.000 fps)
>>>                         Interval: Discrete 0.050s (20.000 fps)
>>>                         Interval: Discrete 0.100s (10.000 fps)
>>>                .........
>>>                 Size: Discrete 1280x720
>>>                         Interval: Discrete 0.017s (60.000 fps)
>>>                         Interval: Discrete 0.020s (50.000 fps)
>>>                         Interval: Discrete 0.033s (30.000 fps)
>>>                         Interval: Discrete 0.050s (20.000 fps)
>>>                         Interval: Discrete 0.100s (10.000 fps)
>>>                 ......
>>>                 Size: Discrete 720x576
>>>                         Interval: Discrete 0.017s (60.000 fps)
>>>                         Interval: Discrete 0.020s (50.000 fps)
>>>                         Interval: Discrete 0.033s (30.000 fps)
>>>                         Interval: Discrete 0.050s (20.000 fps)
>>>                         Interval: Discrete 0.100s (10.000 fps)
>>>
>>
>
> well, it seems we know by now why this device was ...unexpensive.
>
>
> Yes, I have a "90-days open order" and will start to search for another,
> better UVC video capture device.
> The problem is the lack of definitive specifications, compared with my
> proprietary BMD devices.
>
>
> it really seems to report only 5-10 fps at fullHD uncompresed, anything
> bigger is mjpeg ...
>
>
> Type        : Video Capture
>         Pixel Format: 'YUYV'
>         Name        : YUYV 4:2:2
>                 Size: Discrete 1920x1080
>                         Interval: Discrete 0.200s (5.000 fps)
>
> This can absolutely not be what they promote as:
> "Fluid video recordings without delays or distortions during live
> streaming, thanks to a picture frequency of 60 Hz and 1080p with Full HD".
>
>
>
> https://superuser.com/questions/1449252/ffmpeg-captures-from-uvc-dev-video0-in-any-resolution-except-for-1920x1080
>
>
> I also tried that link's suggested syntax
>
> ffmpeg -y -t 15 -f video4linux2 -video_size 1920x1080 -input_format nv12 -timestamps abs -use_libv4l2 1 -i /dev/video0 out.mov
>
> but it didn't work for me, just quitted ffmpeg with
>
> Unrecognized option 'timestamps'.
> Error splitting the argument list: Option not found
>
> Looking at ffmpeg man pages at https://manpages.org/ffmpeg/1 there also
> is a similar video4linux2 syntax example
>
> Grab and record the input of a video4linux2 device, leave the frame rate
> and size as previously set:
> ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
>
>
>    - video_size
>    -     Set the video frame size. The argument must be a string in the
>    form WIDTHxHEIGHT or a valid size abbreviation.
>    - pixel_format
>    -     Select the pixel format (only valid for raw video input).
>    - input_format
>    -     Set the preferred pixel format (for raw video) or a codec name.
>    This option allows one to select the input format, when several are
>    available.
>
> But what should be set as input_format in this case?
>
>
YUYV ? (lowercase)




>
>
>
>
>
>>>         Index       : 1
>>>         Type        : Video Capture
>>>         Pixel Format: 'YUYV'
>>>         Name        : YUYV 4:2:2
>>>                 Size: Discrete 1920x1080
>>>                         Interval: Discrete 0.200s (5.000 fps)
>>>                 ......
>>>                 Size: Discrete 1280x720
>>>                         Interval: Discrete 0.100s (10.000 fps)
>>>                 .......
>>>                 Size: Discrete 720x576
>>>                         Interval: Discrete 0.040s (25.000 fps)
>>>                         Interval: Discrete 0.050s (20.000 fps)
>>>                         Interval: Discrete 0.100s (10.000 fps)
>>>                         Interval: Discrete 0.200s (5.000 fps)
>>>                 .........
>>>
>>> Encoding:
>>> --------
>>> ffmpeg -hide_banner -f v4l2 -framerate 25 -video_size 720x576 -i
>>> /dev/video0 -codec:v ffv1 -codec:a pcm_s16le -f matroska 720x576_ffv1.mkv
>>>
>>> ffmpeg -hide_banner -f v4l2 -framerate 25 -video_size 1280x720 -i
>>> /dev/video0 -codec:v ffv1 -codec:a pcm_s16le -f matroska 1280x720_ffv1.mkv
>>> [video4linux2,v4l2 @ 0x559d031190c0] The driver changed the time per
>>> frame from 1/25 to 1/10
>>>
>>> ffmpeg -hide_banner -f v4l2 -framerate 25 -video_size 1920x1080 -i
>>> /dev/video0 -codec:v ffv1 -codec:a pcm_s16le -f matroska 1920x1080_ffv1.mkv
>>> [video4linux2,v4l2 @ 0x55ce18d060c0] The driver changed the time per
>>> frame from 1/25 to 1/5
>>>
>>> ffmpeg -hide_banner -f v4l2 -framerate 25 -video_size 1920x1080 -i
>>> /dev/video0 -codec:v v210 -codec:a pcm_s16le -f matroska 1920x1080_v210.mkv
>>> [video4linux2,v4l2 @ 0x55944900e0c0] The driver changed the time per
>>> frame from 1/25 to 1/5
>>>
>>>
>>> Recorded test video files and probing formats:
>>> ---------------------------------------------
>>>
>>> du -sh *
>>> 258M    1280x720_ffv1.mkv
>>> 292M    1920x1080_ffv1.mkv
>>> 1,1G    1920x1080_v210.mkv
>>> 61M     720x576_ffv1.mkv
>>> -----------------------------
>>>
>>>
>>> ffprobe -hide_banner 720x576_ffv1.mkv
>>> Input #0, matroska,webm, from '720x576_ffv1.mkv':
>>>   Metadata:
>>>     ENCODER         : Lavf58.76.100
>>>   Duration: 00:00:09.20, start: 0.000000, bitrate: 55385 kb/s
>>>   Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(tv,
>>> progressive), 720x576, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
>>>     Metadata:
>>>       ENCODER         : Lavc58.134.100 ffv1
>>>       DURATION        : 00:00:09.200000000
>>> -----------
>>>
>>> ffprobe -hide_banner 1280x720_ffv1.mkv
>>> Input #0, matroska,webm, from '1280x720_ffv1.mkv':
>>>   Metadata:
>>>     ENCODER         : Lavf58.76.100
>>>   Duration: 00:00:38.90, start: 0.000000, bitrate: 55512 kb/s
>>>   Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(tv,
>>> progressive), 1280x720, 10 fps, 10 tbr, 1k tbn, 1k tbc (default)
>>>     Metadata:
>>>       ENCODER         : Lavc58.134.100 ffv1
>>>       DURATION        : 00:00:38.900000000
>>> --------------
>>>
>>> ffprobe -hide_banner 1920x1080_ffv1.mkv
>>> Input #0, matroska,webm, from '1920x1080_ffv1.mkv':
>>>   Metadata:
>>>     ENCODER         : Lavf58.76.100
>>>   Duration: 00:00:53.40, start: 0.000000, bitrate: 45747 kb/s
>>>   Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p(tv,
>>> progressive), 1920x1080, 5 fps, 5 tbr, 1k tbn, 1k tbc (default)
>>>     Metadata:
>>>       ENCODER         : Lavc58.134.100 ffv1
>>>       DURATION        : 00:00:53.400000000
>>> ----------------
>>>
>>> ffprobe -hide_banner 1920x1080_v210.mkv
>>> [matroska,webm @ 0x5563ca6d30c0] Stream #0: not enough frames to
>>> estimate rate; consider increasing probesize
>>> Input #0, matroska,webm, from '1920x1080_v210.mkv':
>>>   Metadata:
>>>     ENCODER         : Lavf58.76.100
>>>   Duration: 00:00:41.40, start: 0.000000, bitrate: 221185 kb/s
>>>   Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le(tv,
>>> progressive), 1920x1080, 5 fps, 1k tbr, 1k tbn, 1k tbc (default)
>>>     Metadata:
>>>       ENCODER         : Lavc58.134.100 v210
>>>       DURATION        : 00:00:41.400000000
>>>
>>> ---------------------------
>>>
>>>
>>>
>>>
>>>
>>> 2) Scart AV SV to HDMI Converter Switcher S Video Composite RCA DVD HD
>>> TV adapter (3-4 weeks delivery time
>>> https://www.ebay.com.au/itm/295472602625
>>>
>>>    - The 3-in-1 S-/video/RCA/SCART to HDMI converter is a universal
>>>    converter for analog video input to HDMI output.
>>>    - Analog to digital converter (ADC), 10 bits maximum 1,62 MSPS
>>>    sampling,
>>>
>>>
>>>
>>> Q I have not yet found a definitiv ffmpeg FFV1 v 3 syntax guide for SD
>>> and HDV capturing and hope for suggestions and comments here!?
>>>
>>> 3.1 FFmpeg recipe (PAL)
>>>
>>> ffmpeg -i VIDEO_IN \
>>>
>>> -c:v ffv1 -level 3 -coder 1 -context 0 -slices 24 -slicecrc 1 \
>>> -color_primaries bt470bg \
>>> -color_trc bt709 \
>>> -colorspace bt470bg \
>>> -color_range mpeg \
>>> -map 0 \
>>> -top 1 \
>>> -c:a copy \
>>> -g 1 -pix_fmt + \
>>> VIDEO_OUT.mkv
>>>
>>>
>>> 3.2 Reference Example
>>> https://trac.ffmpeg.org/wiki/Encode/FFV1
>>>
>>>     Copy audio "as-is" and use FFV1.3 as video codec.
>>>
>>>     Parameters are 8 threads, coder=1, context=1, GOP-size=1, 24 slices
>>> and slice-CRC on:
>>>
>>>     ffmpeg -i <input_video>     \
>>>         -acodec   copy          \
>>>         -vcodec   ffv1 -level 3 \
>>>         -threads  8             \
>>>         -coder    1             \
>>>         -context  1             \
>>>         -g        1             \
>>>         -slices  24             \
>>>         -slicecrc 1             \
>>>         <output_video>
>>>
>>>
>>> 3.3 Various Encoding examples for Video capture from USB camera
>>> /dev/video0:
>>>
>>> ffmpeg -f v4l2 -framerate 25 -video_size 720x576 -i /dev/video0
>>> output_data.mkv
>>>
>>> ffmpeg -f v4l2 -framerate 25 -video_size 720x576 -i /dev/video0 -codec:v
>>> ffv1 -codec:a pcm_s16le \
>>>     -f matroska  output_video.mkv
>>>
>>> Check that video is captured properly using ffplay:
>>>
>>> ffmpeg -ar 44100 -thread_queue_size 1024 -f alsa -i $AUDIO \
>>>     -r 25 -thread_queue_size 1024 -i $VIDEO \
>>>     -codec copy -f matroska  - | ffplay -
>>>
>>> Check the overall flow using ffplay before capturing:
>>>
>>> ffmpeg -ar 44100 -thread_queue_size 1024 -f alsa -i $AUDIO \
>>>     -itsoffset -0.5 -r 25 -thread_queue_size 1024 -i $VIDEO \
>>>     -filter_complex 'channelmap=FL-0' -filter_complex
>>> 'crop=w=700:h=556:x=8:y=0' \
>>>     -map 1:v  -map 0:a -codec:v ffv1 -codec:a pcm_s16le \
>>>     -f matroska  - | ffplay -
>>>
>>>
>>>
>>> 4, Regarding FFV1 lossless compression in realtime
>>> Comparison tests (2013/2015) have shown that FFV1 produced the smallest
>>> files at the fastest speed. It can be used to capture SD material in
>>> realtime, and HD possibly, too. This according to a 2012/2015 article,
>>> where I have extracted the results for FFV1 v.3 in the tables below:
>>>
>>>
>>> http://www.av-rd.com/knowhow/video/comparison_video_codecs_containers.html#codec_tests
>>> NOTE: This is a consumer grade, off-the-shelf PC setup.
>>>
>>> Hardware:
>>> CPU: Intel(R) QuadCore(TM) i7-2600K CPU @ 3.40GHz
>>> RAM: 8 GB
>>> Disk: Intel SSDSA2CW080G3 (SSD)
>>> Software:
>>> Operating System: GNU/Linux (Xubuntu 12.04.1, 64bit)
>>> Transcoding tool: FFmpeg (version git N-59183-g3e62654, Dec 17 2013)
>>> Video source file: VQEG reference video "football"
>>> <http://media.xiph.org/video/derf/y4m/football_422_ntsc.y4m> (NTSC-SD,
>>> 720x486px, 30fps, yuv422p, 8bpc)
>>> Codec Encoding Decoding Filesize % of uncompressed Implementation
>>> Details
>>> FFV1
>>> <http://www.av-rd.com/knowhow/video/comparison_video_codecs_containers.html#codec_ffv1>
>>> (version 3) 216 fps 277 fps 111 MiB 46.1% libavcodec (FFmpeg)
>>> <http://en.wikipedia.org/wiki/Libavcodec> log
>>> <http://www.av-rd.com/knowhow/video/test_results/football-720x486i30/ffv1.3-libavcodec_ffmpeg_avi.log>,
>>> framemd5
>>> <http://www.av-rd.com/knowhow/video/test_results/football-720x486i30/ffv1.3-libavcodec_ffmpeg_avi.framemd5>
>>>
>>> Video source file: SVT reference video "park joy"
>>> <http://media.xiph.org/video/derf/y4m/park_joy_1080p50.y4m>
>>> (full-HD/1080p, 1920x1080px, 50fps, yuv420p, 8bpc)
>>> Codec Encoding Decoding Filesize % of uncompressed Implementation
>>> Details
>>> FFV1
>>> <http://www.av-rd.com/knowhow/video/comparison_video_codecs_containers.html#codec_ffv1>
>>> (version 3) 31 fps 63 fps 879 MiB 57.2% libavcodec (FFmpeg)
>>> <http://en.wikipedia.org/wiki/Libavcodec> log
>>> <http://www.av-rd.com/knowhow/video/test_results/park_joy-1920x1080p50/ffv1.3-libavcodec_ffmpeg_avi.log>,
>>> framemd5
>>> <http://www.av-rd.com/knowhow/video/test_results/park_joy-1920x1080p50/ffv1.3-libavcodec_ffmpeg_avi.framemd5>
>>>
>>>
>>> PAL-SD 720x576 stored as YUV422, 10 bpc (bits per component), instead
>>> of the tested 8 bpc above, seems to me would have enlarged the the
>>> filesizes with about 25%, or to about 40 GB/hr with FFV1 lossless
>>> compressed.
>>>
>>> Although the FFV1 compression results above obviously used yuv422p, 8bps
>>> source SD and FHD files as input, it seems for me that the encoding speeds
>>> at 216 fps and 31 fps for SD and FHD respectively, assumingly should manage
>>> realtime FFV1 encoding and streaming of PAL SD and HDV at 25 fps as well,
>>> especially with a faster i7-6700 x 8 cpu. Comments here?
>>>
>>>
>>> 5. Related 2021-[Cin] threads as background references
>>>
>>> [Cin] hdmi capture card (with v4l2)
>>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg02865.html
>>>
>>> [Cin] offtopic: Digitize and record Video with A/D USB adapters
>>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg03269.html
>>>
>>> [Cin] offtopic: HDMI capture
>>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg02084.html
>>>
>>> [Cin] Is SD and HD 422 Video Capture obtainable with V4L(2)?
>>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg03719.html
>>>
>>> [Cin] Uncompressed video to lossless compression FFV1/MKV
>>> https://www.mail-archive.com/cin@lists.cinelerra-gg.org/msg03791.html
>>>
>>>
>>> --
>>> 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/20230208/c85ef1cf/attachment-0001.htm>


More information about the Cin mailing list