On Monday, December 27, 2021, Terje J. Hanssen <terjejhans...@gmail.com> wrote:
> > > Den 26.12.2021 23:44, skrev Andrew Randrianasulu: > >> >> >> On Monday, December 27, 2021, Terje J. Hanssen via Cin < >> cin@lists.cinelerra-gg.org> wrote: >> >> >> >> Den 26.12.2021 21:13, skrev Andrew Randrianasulu via Cin: >> >>> >>> >>> On Sunday, December 26, 2021, Phyllis Smith via Cin >>> <cin@lists.cinelerra-gg.org> 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 ) > > > 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 > 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.. > > 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-Li >> ve-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 >> >> 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-ff >> mpeg-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 >>> <cin@lists.cinelerra-gg.org> wrote: >>> >>> >>> >>> On Sunday, December 26, 2021, Terje J. Hanssen via Cin >>> <cin@lists.cinelerra-gg.org> 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> >>> >>> 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_NoTim >>> eToWait4%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/viewe >>> r?url=https%3A%2F%2Fmediaarea.net%2FEvents%2F2019-12-05_NoTi >>> meToWait4%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 >>> Cin@lists.cinelerra-gg.org >>> https://lists.cinelerra-gg.org/mailman/listinfo/cin >>> <https://lists.cinelerra-gg.org/mailman/listinfo/cin> >>> >>> -- Cin mailing list >>> Cin@lists.cinelerra-gg.org >>> https://lists.cinelerra-gg.org/mailman/listinfo/cin >>> <https://lists.cinelerra-gg.org/mailman/listinfo/cin> >>> >>> >>> >> >
-- Cin mailing list Cin@lists.cinelerra-gg.org https://lists.cinelerra-gg.org/mailman/listinfo/cin