Den 28.12.2021 05:42, skrev Andrew Randrianasulu:


On Monday, December 27, 2021, Terje J. Hanssen <[email protected]> wrote:



    Den 26.12.2021 23:44, skrev Andrew Randrianasulu:



        On Monday, December 27, 2021, Terje J. Hanssen via Cin
        <[email protected]> wrote:



            Den 26.12.2021 21:13, skrev Andrew Randrianasulu via Cin:



                On Sunday, December 26, 2021, Phyllis Smith via Cin
                <[email protected]> wrote:

                        for now it seems only ffv1.avi defaults to v.0
            and mkv
                        defaults to 3.4

                    For now, how about if I just add a comment to
            ffv1.mkv about
                    level numbers?   That way the user will see this
            if they look
                    and can decide for themselves.  Otherwise if we
            make every
                    possible setting available we will end up with
            millions of
                    choices and then if we have new ones labeled _3,
            when level 4
                    comes along we would need even more as _4.


                ok, add comment please}


            Ok, maybe I'm thinking aload quite "outside the box" here
        with my
            questions * below:

            I seems for me Cin-GG supports ffv1.mkv in two instances
        (did't
            find other mentioned in the manual either):

                1) File > Save as: ffv1.mkv (that is save current
        edited video
            from Cin-GG)

                    and

                2) File > Record
                    using Video compression according to

                    Settings > Preferences > Record
                        File format: FFMPEG mkv
                        Video wrench: Compression: ffv1.mkv or
        user_ffv1.mkv

                * Could i.e the empty <Format box> here be used to input
            levels and/or other user options?

                Further down on this window

                    Video IN
                        Record driver: i.e Video4Linux

                * Or possibly get BM Intensity/declink SDK card
            working/integrated with ffmpeg/Cin-GG?


        if you find programmer familiar with both ends.. Cin-gg uses
        her own code for dealing with v4l2, not ffmpeg's.


    So Cin-gg doesn't use ffmpeg to capture/record video directly from
    a video/TV capture card?


she uses ffmpeg for compression/muxing (and some effects), but not for interfacing with device...


    But I'm not sure I really understand where Record/prefs/preset
    ffv1.mkv (2 above) get into this picture?
    Just to record (encode and save) the pre-captured video in a
    lossless ffv1.mkv file format?


no, you are right - this option selects capture codec


    What would possible benefits be if ffmpeg had been used to
    capture/record video via the capture card?
    Or do we miss something without ffmpeg doing this?


we miss declink support )

Thank you for explaining and clarifying this.

Or said in another way, if ffmpeg had been implemented also for capturing in Cin-GG  (to compare with "ffmpeg first"), ffmpeg could have be utilized (used) to support video capture and playback with both V4L2, Decklink or other cards(?) With the possibility to record uncompressed video in FFV1.mkv in realtime, if and when the hardwares manage the bit rate.


https://trac.ffmpeg.org/wiki/Capture/V4L2_ALSA
http://underpop.online.fr/f/ffmpeg/help/decklink.htm.gz



    In the case of BM Decklink or Intensity Pro 4k, Media Express is
    available (deb, rpm on Linux) for free capture and playback
    uncompressed 8 or 10-bit video or compressed ProRes.


I also noticed there is no way to capture 10 bit rgb/yuv via v4l2.. ( (simply no define for such formats)

https://github.com/torvalds/linux/blob/master/include/uapi/linux/videodev2.h <https://github.com/torvalds/linux/blob/master/include/uapi/linux/videodev2.h>



    A forum user had found out that Quicktime uncompressed 10 bit
    4:2:2 .MOV was the same codec as AJA v210 for 10-bit uncompressed,
    i.e. it did not require rendering when placed into the FCP
    timeline. Bit rates examples:

    625 PAL uncompressed 10 bit @ 720 x 576 @ 25fps = 26 MB per/sec,
    or 93 GB per/hr.
    720p HDTV uncompressed 10 bit @ 1280 x 720 @ 59.94 = 140 MB
    per/sec, or 494 GB per/hr.
    1080i and 1080p HDTV uncompressed:
    10 bit @ 1920 x 1080 @ 25fps = 132 MB per/sec, or 463 GB per/hr.


yeah, and if you want more than 1 stream multiply this by num. of streams..

Not so important here, but I complement:
The above bit rates and file sizes were found in papers for my Hyperdeck Shuttle 2 SSD recorder (external), which was said to record 10 bit uncompressed 4:2:2 video in QT .mov identical with Decklink cards. Now I've found some smaller number sizes in the 2008 operation manual for Intensity Pro card (the version replaced with Pro 4k):

   SD 4:2:2 PAL uncompressed 10 bit @ 720 x 576 @ 25fps = 21.5 MB
   per/sec, or 75.5 GB per/hr.
   720p HDTV uncompressed 10 bit @ 1280 x 720 @ 59.94 = 106.8 MB
   per/sec, or 375.7GB per/hr.
   1080i HD 4:2:2 uncompressed:
   1920 x 1080/50i = 100.3 MB per/sec, or 352.8 GB per/hr.

I don't know how the bit rates and file sizes can be calculated differently for obviously identical cases(?)




        https://gist.github.com/afriza/879fed4ede539a5a6501e0f046f71463
        <https://gist.github.com/afriza/879fed4ede539a5a6501e0f046f71463>

        (sdk 12 should be compatible with ffmpeg 4.4?)

        note --extra-cflags="-I$HOME/ffmpeg_build/include
        -I$HOME/ffmpeg_sources/BMD_SDK/include -I/usr/lib/cuda/include" \

          and

        --enable-nonfree \
          --enable-decklink \

        addditional confugure switches for ffmpeg (you can drop cuda
        includes if you do not have proprietary nvidia driver/card
        installed, if course)

        ---
        List devices:

        ffmpeg -f decklink -list_devices 1 -i dummy

        List supported formats:

        ffmpeg -f decklink -list_formats 1 -i 'DeckLink Quad HDMI
        Recorder (1)'

        Capture Camera at 23.976fps to h264:

        ffmpeg -y -thread_queue_size 90 -hwaccel cuda \
        -channels 2 -raw_format yuv422p10 -format_code 23ps -f
        decklink -i 'DeckLink Quad HDMI Recorder (1)' \
        -c:a pcm_s16le -c:v libx264 -preset ultrafast -crf 10
        ~/camera264.mov

        ---

        obviously you can try to just copy frames into mov for 'as
        uncompressed as possible' and hope your disk(s) will keep up!
        (I've heard stories some ssd dislike being full - their write
        speed drop down dramatically.. so try to write to not very
        full ssd. Not sure abount newer nvme.. or raids from them!)

        from

        
https://github.com/wonderunit/storyboarder/wiki/Recording-Live-Camera-and-Desktop-on-Linux-using-Blackmagic-Decklink
        
<https://github.com/wonderunit/storyboarder/wiki/Recording-Live-Camera-and-Desktop-on-Linux-using-Blackmagic-Decklink>




                * Get the option to preserve/archive transcoded ffv1.mkv
            directly to a storage device?


        probably not? (no support for arbitrary compressed frames and
        their metadata in internal representation.. not impossible,
        but no one did it yet)



                * And/or get the option to load /pipe (uncompressed) video
            files recorded on one storage (SSD) device,
                  compress it with the right preset ffv1.mkv and save
        it to
            another storage device.


        should be default mode of operation for files (not sure about
        purely raw video w/o any container, apart from dvvideo, but
        some types of raw rgb/yuv in avi/mov should work.. test a
        bit?) , for piping...

        try video loopback?

        https://github.com/umlaeute/v4l2loopback
        <https://github.com/umlaeute/v4l2loopback>

        it may even work for declink input, if your ffmpeg can input
        frames from declink and output to v4l2..


        
https://superuser.com/questions/1330959/what-is-the-right-ffmpeg-output-format-for-a-v4l2-loopback-device
        
<https://superuser.com/questions/1330959/what-is-the-right-ffmpeg-output-format-for-a-v4l2-loopback-device>

        some variation of

         ffmpeg examples
        Grab desktop:

        ffmpeg -f x11grab -framerate 25 -video_size 1280x720 -i
        :0.0+0,0 -f v4l2 /dev/video0
        Send file:

        ffmpeg -re -i input.mp4 -f v4l2 /dev/video0

        or (in answers)

        ffmpeg -f x11grab -r 60 -s 1920x1080 -i :0.0+0,0 -vcodec
        rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0

        guess you can try variation of such cmdline  with declink
        input after compiling non-free ffmpeg with Blackmagick sdk...

        we also probably can use such line for testing non-trivial
        v4l2 formats in Cinelerra-gg ..



                    On Sat, Dec 25, 2021 at 9:29 PM Andrew
            Randrianasulu via Cin
                    <[email protected]> wrote:



                        On Sunday, December 26, 2021, Terje J. Hanssen
            via Cin
                        <[email protected]> wrote:



                            Den 25.12.2021 17:35, skrev Andrew
            Randrianasulu via Cin:

                                seems to miss level=3 setting

                                $ cat bin/ffmpeg/video/ffv1.avi
                                avi ffv1
                                $ cat bin/ffmpeg/video/ffv1.mkv
                                matroska ffv1
                                threads=8
                                context=1
                                slices=30
                                $ cat bin/ffmpeg/video/ffv1.mov
                                mov ffv1
                                #coder=0
                                context=1
                                g=1
                                level=3
                                threads=16
                                slices=16
                                slicecrc=1
                                #pass=2
                                $

                                not sure if we should modify our
            avi/mkv profikes
                                or add new (may be with _v3 name) ones?


                            Without own experience yet, I would ask if
            there any
                            reason to not use the latest and more
            feature rich
                            FFV1 level=version 3? Backward
            compitibility, typical
                            can v. 3 uncompress v. 1 compressed archives?

                        good question... I have older avplay (~2012)
            here and
                        will test.

                        for now it seems only ffv1.avi defaults to v.0
            and mkv
                        defaults to 3.4 due to crc protection per
            slice, i think
                        (looked into ffmpeg encoder source)

                        {filenames were just that I had in inputbox, not
                        indicative of content}


                        $ mediainfo ~/h265-p2.avi
                        General
                        Complete name :
            /data/data/com.termux/files/home/h265-p2.avi
                        Format : AVI
                        Format/Info : Audio Video Interleave
                        File size : 8.82 MiB
                        Duration : 3 s 720 ms
                        Overall bit rate mode : Variable
                        Overall bit rate : 19.9 Mb/s
                        Writing application : Lavf58.76.100

                        Video
                        ID : 0
                        Format : FFV1
                        Format version : Version 0
                        Codec ID : FFV1
                        Duration : 3 s 720 ms
                        Bit rate mode : Variable
                        Bit rate : 19.9 Mb/s
                        Width : 720 pixels
                        Height : 576 pixels
                        Display aspect ratio : 5:4
                        Frame rate : 25.000 FPS
                        Standard : PAL
                        Color space : YUV
                        Chroma subsampling : 4:2:0
                        Bit depth : 8 bits
                        Compression mode : Lossless
                        Bits/(Pixel*Frame) : 1.916
                        Stream size : 8.81 MiB (100%)
                        coder_type : Golomb Rice


                        $ mediainfo ~/h265-p2.mkv
                        General
                        Unique ID : 3614689160526176147752985704114819283
                        (0x2B829EF6988D4EEDCB446A8612210D3)
                        Complete name :
            /data/data/com.termux/files/home/h265-p2.mkv
                        Format : Matroska
                        Format version : Version 4
                        File size : 7.48 MiB
                        Duration : 3 s 80 ms
                        Overall bit rate mode : Variable
                        Overall bit rate : 20.4 Mb/s
                        Writing application : Lavf58.76.100
                        Writing library : Lavf58.76.100
                        ErrorDetectionType : Per level 1

                        Video
                        ID : 1
                        Format : FFV1
                        Format version : Version 3.4
                        Codec ID : V_MS/VFW/FOURCC / FFV1
                        Duration : 3 s 80 ms
                        Bit rate mode : Variable
                        Bit rate : 20.0 Mb/s
                        Width : 720 pixels
                        Height : 576 pixels
                        Display aspect ratio : 5:4
                        Frame rate mode : Constant
                        Frame rate : 25.000 FPS
                        Standard : PAL
                        Color space : YUV
                        Chroma subsampling : 4:2:0
                        Bit depth : 8 bits
                        Scan type : Progressive
                        Compression mode : Lossless
                        Bits/(Pixel*Frame) : 1.927
                        Stream size : 7.34 MiB (98%)
                        Default : Yes
                        Forced : No
                        Color range : Full
                        Matrix coefficients : BT.470 System B/G
                        coder_type : Golomb Rice
                        MaxSlicesCount : 30
                        ErrorDetectionType : Per slice



                            I conclude that a couple of referense
            papers on the
                            web say and use level 3 in their
            profile/presets:

                            1) Video into Matroska/FFV1
            https://avpres.net/FFmpeg/im_FFV1.html
            <https://avpres.net/FFmpeg/im_FFV1.html>
                            <https://avpres.net/FFmpeg/im_FFV1.html
            <https://avpres.net/FFmpeg/im_FFV1.html>>

                            We advise to use only the version 3 of FFV1 in
                            production, because the version 1 is
            deprecated, the
                            version 2 has never really existed, and
            the version 4
                            is currently under development.


                            Transcode a video file using the FFV1
            codec into the
                            Matroska container for preservation purposes.
                            Solution

                                ffmpeg \
                                    -i input_file \
                                    -c:v ffv1 \
                                    -level 3 \
                                    -coder 1 \
                                    -context 1 \
                                    -g 1 \
                                    -slices 24 \
                                    -slicecrc 1 \
                                    -c:a copy \
                                    output_file.mkv

                            2) Presets for FFV1 and MKV: Choosing the
            right
                            parameters for the job (ffv1_params.pdf)
            
https://docs.google.com/viewer?url=https%3A%2F%2Fmediaarea.net%2FEvents%2F2019-12-05_NoTimeToWait4%2F03.%2520Peter%2520B.%2520-%2520Presets%2520for%2520FFV1%2520and%2520MKV%2C%2520Choosing%2520the%2520right%2520parameters%2520for%2520the%2520job%2Fffv1_params.pdf&pdf=true
            
<https://docs.google.com/viewer?url=https%3A%2F%2Fmediaarea.net%2FEvents%2F2019-12-05_NoTimeToWait4%2F03.%2520Peter%2520B.%2520-%2520Presets%2520for%2520FFV1%2520and%2520MKV%2C%2520Choosing%2520the%2520right%2520parameters%2520for%2520the%2520job%2Fffv1_params.pdf&pdf=true>
                           
            
<https://docs.google.com/viewer?url=https%3A%2F%2Fmediaarea.net%2FEvents%2F2019-12-05_NoTimeToWait4%2F03.%2520Peter%2520B.%2520-%2520Presets%2520for%2520FFV1%2520and%2520MKV%2C%2520Choosing%2520the%2520right%2520parameters%2520for%2520the%2520job%2Fffv1_params.pdf&pdf=true
            
<https://docs.google.com/viewer?url=https%3A%2F%2Fmediaarea.net%2FEvents%2F2019-12-05_NoTimeToWait4%2F03.%2520Peter%2520B.%2520-%2520Presets%2520for%2520FFV1%2520and%2520MKV%2C%2520Choosing%2520the%2520right%2520parameters%2520for%2520the%2520job%2Fffv1_params.pdf&pdf=true>>

                            Level = FFV1 version
                            page 9 (of 30)

                                0
                                1 (Default)
                                3 (Recommended)


                            FFmpeg recipe (PAL)
                            page 27 (of 30)

                            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











                            --                 Cin mailing list
            [email protected]
            https://lists.cinelerra-gg.org/mailman/listinfo/cin
            <https://lists.cinelerra-gg.org/mailman/listinfo/cin>
                           
            <https://lists.cinelerra-gg.org/mailman/listinfo/cin
            <https://lists.cinelerra-gg.org/mailman/listinfo/cin>>

                        --             Cin mailing list
            [email protected]
            https://lists.cinelerra-gg.org/mailman/listinfo/cin
            <https://lists.cinelerra-gg.org/mailman/listinfo/cin>
                       
            <https://lists.cinelerra-gg.org/mailman/listinfo/cin
            <https://lists.cinelerra-gg.org/mailman/listinfo/cin>>





--
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to