Giter VIP home page Giter VIP logo

flowframes's Introduction

Flowframes - Windows GUI for Video Interpolation

Flowframes Windows GUI for video interpolation - Supports RIFE (Pytorch & NCNN), DAIN (NCNN), and FLAVR (Pytorch) implementations.

Flowframes is open-source donationware. Builds are released for free on itch after an early-access period on Patreon. This repo's code is complete and does not "paywall" experienced users who want to compile the program themselves or want to contribute to the development.

However, I do not provide support for self-built versions as I can't guarantee that the code of this repo is stable at any given moment.

img

Quick Installation

  • Download on itch or, for the most recent beta versions, on Patreon. This repo does not provide builds.
  • Follow the instructions in the installer and wait for it to complete
  • Run Flowframes

Using A Pytorch Implementation

Flowframes comes with RIFE-NCNN which runs on Tencent's NCNN framework, which allows it to run on any modern (Vulkan-capable) GPU.

However, the official RIFE implementation run best via its original Pytorch implementation.

The requirements to run these are the following:

  • A modern Nvidia GPU (750 Ti, 900/1000/1600/2000/3000/4000 Series).
  • A Python installation including Pytorch (1.5 or later) as well as the packages opencv-python, sk-video, imageio.
    • The Flowframes Installer will automatically download all dependencies by default if these requirements are not fullfilled.

More Details On Python Dependencies

Configuration

All Settings have reasonable defaults, so users do not need to do any configuration before using the program.

Here is an explanation of some of the more important settings.

Application

  • Processing Style: Either run all steps at once, or each step manually, in case you want to edit frames, or deduplicate manually.
  • Maximum Video Size: Frames are exported at this resolution if the video is larger. Lower resolutions speed up interpolation a lot.
  • Export Name Pattern: Customize the pattern of the filenames of outputs using variables.

Interpolation

  • Input Media To Preserve: Toggle transfer of Audio, Subtitles and MKV Metadata.
  • Enable Transparency: Interpolate transparency. Only active if the input and output support transparency (PNG/GIF).
  • Import HQ JPEGs: Will extract JPEG instead of PNG frames from videos. Fast and lightweight, but with a tiny (invisible) quality loss.
  • Frame De-Duplication: This is meant for 2D animation. Removing duplicates makes a smooth interpolation possible.
    • You should disable this completely if you only use content without duplicates (e.g. camera footage, CG renders).
    • "During Extraction" works for most content. Use "Accurate (After Extraction)" for fine-tuning the sensitivity.
  • Loop Interpolation: This will make looped animations interpolate to a perfect loop by interpolating back to the first frame at the end.
  • Fix Scene Changes: This avoids interpolating scene changes (cuts) as this would produce weird a morphing effect.
  • Auto-Encode: Encode video while interpolating. Optionally delete the already encoded frames to minimize disk space usage.

AI Specific Settings

  • RIFE - UHD Mode - This mode changes some scaling parameters and should improve results on high-resolution video.
  • GPU IDs: 0 is the default for setups with one dedicated GPU. Four dedicated GPUs would mean 0,1,2,3 for example.
  • NCNN Processing Threads: Increasing this number to 2, 3 or 4 can improve GPU utilization, but also slow things down.
  • RIFE CUDA Fast Mode: Utilizes Half-Precision (fp16) to speed things up and reduce VRAM usage, but can be unstable.

Video Export

  • Encoding Options: Set options for video/GIF encoding. Refer to the FFmpeg documentation for details.
  • Minimum Video Length: Make sure the output is as long as this value by looping it.
  • Maximum Output Frame Rate: Limit frame rate by downsampling, for example, if you want a 60 FPS output from a 24 FPS video.

Debugging / Experimental

  • Show Hidden CMD Windows: This will show the windows for AI processes. Can be useful for debugging.

System Requirements

Minimum:

  • Vulkan-capable GPU (Nvidia Kepler or newer, AMD GCN 2 or newer)

Recommended:

  • Modern CUDA-capable GPU (Nvidia Maxwell or newer) with 6 GB VRAM or more
  • 16 GB RAM
  • Modern CPU (Intel Core 7000 Series or newer, AMD Ryzen 1000 Series or newer)

Frequently Asked Questions (FAQ)

Q: What's the difference between RIFE CUDA and RIFE NCNN? Which one should I use?
A: The results should be identical, however, RIFE-NCNN also runs on AMD cards, CUDA only on Nvidia. If you have an Nvidia card, use CUDA as it's faster.

Q: What is frame de-duplication for? When should I enable or disable it?
A: It's primarily for 2D animation, where the video has consecutive frames without changes. These have to be removed before interpolation to avoid choppy outputs. Enable it for 2D animation, disable it for constant frame rate content like camera footage or 3D rendered videos.

Q: My output looks very choppy, especially in dark (or low-contrast) scenes!
A: Disable De-Duplication (or reduce the threshold if you still need it)

Q: What's the technical difference between the de-duplication modes "Remove During Extraction" and "Remove After Extraction"?
A: "During" uses ffmpeg's mpdecimate filter and won't extract duplicate frames at all. "After" extracts all frames and then checks for duplicates by checking the image difference using Magick.NET, which is slower but more accurate and flexible.

Q: How does Auto-Encode work, and should I enable or disable it?
A: It encodes your output video during interpolation, instead of afterwards. Enable it unless you have a very weak CPU.

Q: I downloaded a "Full" package but now want to switch to my own system Python installation. How do I do that?
A: Go to FlowframesData/pkgs/ and delete the folders py-tu or py-amp, whichever you have. Flowframes will now try to use system python.

flowframes's People

Contributors

drpleaserespect avatar genericness avatar hzwer avatar n00mkrad avatar richardletshacks avatar tsubajashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flowframes's Issues

Cant use RIPE

keeps saying i need runtime python or system python and idk what that is, pls help

Avoid copying files when possible

Copying "compatible" files instead of reencoding is a good improvement, but it'd be even better to symlink/hardlink source files to avoid wasting disk space. I found the allowSymlinkEncoding key in the config (which doesn't seem to be in the GUI), but this option isn't used in the compatible files code path for some reason (admittedly, I haven't really explored the code). There's a lot of duplication happening on various stages, especially if image sequences are used as input and output (all of input, half of interpolated, iiuc), so it'd be great if FlowFrames used links whenever possible.

Cannot install FF 1.24.1

I'm having issues installing FlowFrames 1.24.1.
When I'm using the installer, it gives me an error about not having enough disk space on C:
image
Here's the amount of space I have free (as of writing this):
image

In later versions of FlowFrames, there should be a feature in the installer to specify the temporary file location during the installation to prevent this from happening (as I have other drives that have enough space for temporary files).

Video FPS: Not Found on (1.22.3-Full.7z)

Hi,

I have tried to interpolate this video and I get this message:

LogoFinal.zip

Loading metadata...
Video FPS: Not Found - Total Number Of Frames: 1
Canceled interpolation.

This was not happen in the previous version.

I have tried the version 1.20.4 and work but produce flickering.

Here the test video
Battle1.zip

I have set checked "don't interpolate scene changed" to 0.1 without get better result.

Can you help me please ?

Thanks !

torch dependency not installing

Heres the error log after trying multiple times using the page that shows by default and adding --user to the end. Nothing seems to work. Im not sure if I messed up my python installation or what but other python programs work fine.

8SOXE5p 1

Output to "Image Sequence" ignores "Output Directory"

To reproduce
Version: V17-RC4

Package Installer:

  • RIFE (Nvidia)
  • Python Runtime
  • Audio/Video Tools
  • Licenses

Interpolation settings:

  • Interpolation AI: RIFE - CUDA/Pytorch Implementation of RIFE
  • Input Video: C:\Users\USER\Desktop\run(image sequence of 8 frames)
  • Output Directory: C:\Users\USER\Desktop\run\images (exists and is empty)
  • Set FPS: input-12, x2, = 24 Ouput FPS
  • Tile Size - Not available for selected AI
  • Output Mode: Image Sequence

Expected outcome: output images get written in the "Output Directory"
Actual outcome: output images get written to C:\Users\USER\Desktop\run-interpolated

Log panel output:

Welcome to Flowframes!
This is the console output box. Status messages will appear here.
Flowframes is up to date.
Failed to detect drive type: Could not detect Disk Id of H
Video FPS (Loaded from fps.ini): Not Found - Total Number Of Frames: 8
Input Resolution: 150x200
Importing images...
Generating timecodes... Done.
Using embedded Python runtime.
Running RIFE (interp-parallel.py)...
Interpolated 15/18 frames (83%) - Average Speed: 3.35 FPS In / 6.69 FPS Out - Time: 05s - ETA: 0ms
Done running RIFE - Interpolation took 05s
Moving interpolated frames out of temp folder...
C:\Users\USER\Desktop\run-temp\interp -> C:\Users\USER\Desktop\run-interpolated
Deleting temporary files...
Total processing time: 05s

There's an error when merge audio to video files.

Here's the ffmpeg's log about this.
[15570] [2-28-2021 12:24:44]: Done Encoding Chunk #9 [15574] [2-28-2021 12:24:44]: cmd.exe /C cd /D "D:\ChaZhen\Temp\ED2-temp" & "E:\Flowframes\FlowframesData\pkgs\av\ffmpeg.exe" -hide_banner -loglevel warning -y -stats -vsync 1 -f concat -i chunks-concat.ini -c copy -movflags +faststart "D:\ChaZhen\ED2-2x-RIFE.mkv" [15575] [2-28-2021 12:24:44]: frame= 6051 fps=0.0 q=-1.0 Lsize= 186004kB time=00:01:40.93 bitrate=15096.3kbits/s speed= 307x [15577] [2-28-2021 12:24:44]: cmd.exe /C cd /D "D:\ChaZhen\Temp\ED2-temp" & "E:\Flowframes\FlowframesData\pkgs\av\ffmpeg.exe" -hide_banner -loglevel warning -y -stats -i vid.mkv -i 1__audio.m4a -map 0:v -map 1 -c:v copy -c:a copy -c:s copy -shortest muxed.mkv [15578] [2-28-2021 12:24:45]: [matroska @ 0000026241d02480] Only audio, video, and subtitles are supported for Matroska. [15579] [2-28-2021 12:24:45]: Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
If the output format is mkv, there leaves a video without audio. If the output format is mp4, there's a blank video with only one frame.

May the Queue's Maxsize of Read_buffer in Rife-Cuda be a optional parameter?

I noticed that the speed of reading data is slower than predicting and writing. When I increased the maxsize of read_buffer to 160×args.wthreads in rife.py, there's a speedup in all processes, with the malloc memory increased too. So is it possible to make queue's maxsize of read_buffer in rife.py be a parameter? It may be more efficient in machine with RAM more than 16GB.

Deduplication algorithm works incorrectly on smooth transitions

Deduplication works fine when non-duplicated frames are very disctinct, however it completely removes all smooth transitions (fade from frame to frame).

Let's say we have frames with "values": 1, 20, 40, 50, 100, 101, 102, 103, 104, ..., 129, 130, 200, 230, 300. And we set frame difference threshold to 5.

Expected deduplicated sequence would be: 1, 20, 40, 50, 100, 105, 110, 115, 120, 125, 130, 200, 230, 300.

The sequence Flowframes produces is: 1, 20, 40, 50, 100, 200, 230, 300.

With the way the cycle in Dedupe.RemoveDupeFrames is implemented, every frame can remove all subsequent frames within the threshold, even if the frame itself has previously been removed by one of the preceding frames. This effectively completely removes all smooth transitions, though at worst, smooth transitions are to become choppy after deduplication.

If I understand correctly, the if (diff < threshold) path should increment both i and compareWithIndex (maybe increment in the for should be removed to account for that). I haven't tested it though.

Remove Duplicate Frames doesn't removes Duplicate Frames

"Remove Duplicate Frames" doesn't remove duplicated frames, but adds more and more duplicated frames with unpredictable insertion pattern producing weird video stream as you increase the threshold value.
Here the original 23.976fps progressive source with duplicated frames:
https://user-images.githubusercontent.com/53234248/102701727-be9f0500-420e-11eb-9487-09dbc9ab4614.mp4
Here the processed stream with Threshold value = 2%
https://user-images.githubusercontent.com/53234248/102701757-281f1380-420f-11eb-872c-14f74b803b31.mp4
Here the processed stream with Threshold value = 5%
https://user-images.githubusercontent.com/53234248/102701866-8a2c4880-4210-11eb-8879-ca49340abadb.mp4
Using "frame by frame" clearly demonstrates that inconsistency.

Flowframes doesn't preserve color information

On 1.24.6 -
I cannot get Flowframes to retain the correct colors. Input files are yuv420p bt709/bt709/bt709. Output files are (where applicable for the output codec) yuv420p bt709/bt709/bt709. Yet, the colors are seriously yellowed. I don't know what the problem is.

I tried huffyuv with yuv420p specified, lossless 264, non-lossless 264. All yellowed.

Improve Sprite interpolation

I would like to show some results with some sprite animations, maybe training the model with sprites could solve the problem?

ps: all gifs are <= 40 FPS

Original 5 FPS:
flame

2x 10 FPS:
flame-2x-RIFE

4x 20 FPS:
flame-4x-RIFE

8x 40FPS:
flame-8x-RIFE

FPS Limit

Is there a limit for maximum FPS that can be created? It seems it can't go higher then 400 or 500 fps, saying "Invalid target frame rate". Might it be because input fps is something like 240,006 ?

put as rar pls

it has my to not run i posted on itch it says

but it saids on my pc 

Windows protected your PC
Microsoft Defender SmartScreen prevented an unrecognised app from starting. Running this app might put your PC at risk.
Application: Publisher: 

FlowframesInstaller1.24.6 (2).exe

Unknown publisher

Vulkan error occuring during interpolation

image
I get this error whenever i try to use the app, not sure why. I'm using RIFE (NCNN) and the AI model is RIFE 2.4 updated general model.
Processor: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz, 2501 Mhz, 2 Core(s), 4 Logical Processor(s)
Graphics: Intel(R) HD Graphics 4000

The same thing happens when I use DAIN (NCNN)
image
And upon changing the tile size to anything below 256, the error changes to this:
image

Add option to use NVENC Encoder for FFMPEG

Feature Request to add the option of using Hardware accelerated encoding with ffmpeg.
Feature Request to add the option of using more threads / cores with ffmpeg.

I just ran a Frame Interpolation on a 45 Minute 4K Video and after successful interpolation the encoding of the resulting video using ffmpeg is only running on cpu (AND only on 2 Core out of 8 available) which slows down the process a lot.

The encoding takes longer than the actrual frame interpolation took.

System:
Ryzen 7 4800H 8 Core 16 Threads
Nvidia RTX 2060

Last version produce error message

Hi,

Just installed last version by compiled the last update source code im this repository. There are 2 problems:

Error message:
bug1

Warning: don't have sufficient privilege to enable development mode for nvidia CUDA mode.

Instructions on how to compile?

Will there ever be instructions on how to compile Flowframes from the source at some point, or no? If the code is going to be open source, I see no reason for there not to be compile instructions, even if it would take a while to write, test, and make sure it all works and makes sense for others.

Im not saying this is exactly what you are doing/intending, but as things are, im somewhat wondering if the lack of build instructions is to deter people to instead get the latest pre-built on Patreon, when they see that there is no compile instructions, leading them to wonder aimlessly on compiling, eventually giving up, and just donating on Patreon to get the newest build.

I'm all for the idea of getting paid for the software one makes, but to lock the latest versions behind a paywall, giving non paid users no way to get latest, without donating, seems a bit scummy, to me. If a user legit wants to support you, and or doesnt know much about compiling things, then I can see the appeal of a pre built for the latest version, and them getting a pre built ahead of time before others. However, for those who do know how to compile things, shouldn't they at least have instructions on how to compile, so no one is left out from using the latest version?

I love your software, and honestly find it super useful (I use your tools almost daily, honestly), but please, do consider adding compile instructions, down the line. The tool is doing well enough at this point, and is far along enough at this point, to where id say its time to add some to the readme, or someplace in the repo.

HDR is not encoded

When interpolating a MKV File with HDR information as a source.
The resulting MKV File is missing the HDR Data which leads to wrong colors displayed.

GPU is not being utilized by frame extraction

I have a freshly installed Windows 10 Pro on a Xeon E3-1220 V3 with ASUS TUF GTX 1650 4GB OC GDDR6 and 8GB of total RAM Capacity. The onboard graphics processor has already been disable via BIOS and is no longer appearing neither in Device Manager nor in dxdiag command.

I'm trying to interpolate one of my old videos from 29.97 to ~60fps but i can't help but notice that Flowframes only uses the CPU for extracting the frames. CPU runs at an average of 80% utilization with no other running apps while the GPU remains at 2-6%

I have already tried playing ith the Pytoch and NCNN GPU IDs from 0 to 1 and nothing changed. is this normal?

No Cuda?

Hi,
I have this issue in two Laptops, both win10, i7 processors, one with 1050gtx and one 2070Max-q

Flowframes (FullVersion) says in the Welcome Text that it found the Graphics Card and shows the right model name.

But when I start interpolarion the text in the black window says no cuda - running in CPU. It works and results are amazing (I donated) but it takes forever. Any solutions?

bug reports

Hi,

Thank you for your last fix I have tested it and work fine.

Now I report you other bugs:

  1. Batch processing: If choose folder (and not single file) if I press "interpolate" there is a crash (this was not happen in the previous version).
  2. I have gtx 1060 If i choose "cuda/pytorch" the process use the CPU and not GPU. If I set "Vulcan" work fine (again, this was not happen in the previous version).
  3. Strage frame at 20 seconds in this video:

look_at_20_second.zip

Hope is possible solve.

Thank you !

Marco

MKV track name

When interpolating MKV with audio track named "LPCM->FLAC" the audio is missing.
If you choose to extract audio separately, program just stops on "extracting audio" stage.
Renaming track to "FLAC" helped.
Version 1.26.1

JPG Output Not Working

I checked the jpg output option to save space but it is still exporting png.
Can you fix that?

Bug Edgecase: unsorted filesystem

My Filesystem doesn't sort by name. Which means the frame import mixes up the frames.
ddd
Left Picture -> latest git -> added array sort for the img import, Right -> Patreon 1.9.0 release
I'm most likely the only one with this problem but it's worth fixing anyway.
Proposed change: https://pastebin.com/StMVCDmf

4 bugs with 1.23.4 ordered by "most" important (1) to "least" important. (4)

So, I've encountered some bugs in 1.23.4

  1. VP9 doesn't copy over audio to interpolated video
  2. Making the hidden command window visible makes the progress bar not update until interpolation is finished (Might be intentional)
  3. Every time you want to use DAIN it needs to re-install, but DAIN isn't really relevant anymore so shrug
  4. And lastly, mode 2 of de-duplication will say it deleted all the other frames from the full video, instead of just the trimmed part. It won't actually process the parts that aren't in the trimmed area, but it will say it deleted frames from the deleted area from the trim. (this is confusing holy heck)

Bug: Multiple GPU Support not working

I cannot get the Multiple GPU support working, however they work on both cards individually when specifying their Pytorch ID (0 or 1).
The interpolation process will still work with both ID's, it will just pick the first GPU ID entered in the Pytorch GPU IDs section and use that GPU exclusively for the process.

image

GPU's:
RTX 3080
GTX 1080
Interpolation Method
RIFE - CUDA
Output Method
Image Sequence or MP4
Prerequisites
I am using System Python as I cannot see the Rtx-3000 Pkg Folder on the Itch download for the latest version.
Using all the listed recommended versions of Python and Python Modules that this Github page recommends.
Releases Tested On
1.20.4 - Self Built
1.19.1 - Latest Itch Release

When turning on the CMD debugging option, release 1.19.1 clearly detects the presence of both GPU's but when the process begins however it only goes onto use 1 - please see attached screenshots. My self built version does not print this same message to the console, however the same behaviour is observed.

image
image

I got the popup with the same error message, but my log file includes below lines which I think might be useful.

I got the popup with the same error message, but my log file includes below lines which I think might be useful.

rife-cuda-log.txt

12-2-2020 16:29:30: [E] Traceback (most recent call last):
12-2-2020 16:29:30: [E]   File "interp-parallel.py", line 138, in <module>
12-2-2020 16:29:30: [E]     inferences = make_inference(model, I0, I1, exp=args.times)
12-2-2020 16:29:30: [E]   File "interp-parallel.py", line 110, in make_inference
12-2-2020 16:29:30: [E]     middle = model.inference(I0, I1)
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\rife-cuda\model\RIFE.py", line 207, in inference
12-2-2020 16:29:30: [E]     return self.predict(imgs, flow, training=False).detach()
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\rife-cuda\model\RIFE.py", line 191, in predict
12-2-2020 16:29:30: [E]     refine_output, warped_img0, warped_img1, warped_img0_gt, warped_img1_gt = self.fusionnet(
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\py\Lib\site-packages\torch\nn\modules\module.py", line 722, in _call_impl
12-2-2020 16:29:30: [E]     result = self.forward(*input, **kwargs)
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\rife-cuda\model\RIFE.py", line 118, in forward
12-2-2020 16:29:30: [E]     x = self.up3(torch.cat((x, s0), 1))
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\py\Lib\site-packages\torch\nn\modules\module.py", line 722, in _call_impl
12-2-2020 16:29:30: [E]     result = self.forward(*input, **kwargs)
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\py\Lib\site-packages\torch\nn\modules\container.py", line 117, in forward
12-2-2020 16:29:30: [E]     input = module(input)
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\py\Lib\site-packages\torch\nn\modules\module.py", line 722, in _call_impl
12-2-2020 16:29:30: [E]     result = self.forward(*input, **kwargs)
12-2-2020 16:29:30: [E]   File "D:\Apps\Flowframes\FlowframesData\pkgs\py\Lib\site-packages\torch\nn\modules\conv.py", line 905, in forward
12-2-2020 16:29:30: [E]     return F.conv_transpose2d(
12-2-2020 16:29:30: [E] RuntimeError: CUDA out of memory. Tried to allocate 60.00 MiB (GPU 0; 6.00 GiB total capacity; 348.98 MiB already allocated; 8.99 MiB free; 444.00 MiB reserved in total by PyTorch)

Originally posted by @public-profile-test in #2 (comment)

vkAllocateMemory Faied -2

I have three GPUs

I'll say "VKALLOCatememory FAIED-2" when I run it

GPU2 also has no utilization

Set as shown in figure
2021-01-27 (1)
2021-01-27

Can't install Flowframes

When trying to install, the programs simply hangs up without telling anything except "Something went wrong"
image

error while interpolating

error:

A python error occurred during interpolation!
Check rife-cuda-log for details.
[WinError 193] %1 is not a valid win32 app.
Error loading (directory)

Image order gets scrambled and HDR weirdness when setting temp directory to network share

I'm attempting to interpolate a few larger videos of mine which will require the larger storage space on my NAS. I have a Samba share mounted and mapped to my Z: drive and have full permissions for that share. Using the free itch.io build (1.24.6) as well as building Flowframes myself from the latest commit on GitHub (8e14c61), there are two strange issues that occur with using a temp directory on that SMB share (either setting it manually or having it set to be in the same directory as the video itself, stored on the share).

The first issue is the order of the video frames get scrambled after extraction. During the extraction phase, the frames in the temp folder are in the correct order, and all should be well. However, after it's finished extracting the frames, it performs the step "Generating frame order information" and scrambles the images. It seems to interweave frames from the first and second half of the video, where the first half of the frames has nine digits and the second half has eight digits in the file name. Once it's finished generating the frame order information, the frames are all renamed back to eight digits. It then performs the interpolation with the incorrect order, generating bad (although hilarious) frames. This is for normal SDR videos.

For HDR videos, it will extract frames that, when opened in the default image viewer in Windows, appears vibrant at first as it should, then becomes dull as it finishes loading. I'm able to recreate this with ffmpeg by running the command:

ffmpeg -i .\CH04.mkv -r 24000/1001 -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc -profile:v main10 -pix_fmt yuv420p10le %08d.png

I don't believe this is a bug itself, just how HDR frames are being extracted. Nevertheless, it initially extracts fine and in the correct order, but gets scrambled same as above. However, in addition to this, when it does the interpolation, it will simply copy each frame from the "frames" directory (no interpolation performed at all) without the HDR colour information. Additionally, it will generate an entirely black frame every other frame.

Both issues only occur when the temp directory is on the SMB share. I've attempted this on different videos from different sources, and this is repeatable. When those same videos are processed with the temp directory on my HDD, all works as it should.

Non-integer interpolation factors?

If I wanted to interpolate a video from (e.g.) 60 fps to 90 fps, I could do:

  • x4 (240 fps)
  • x4 (960 fps)
  • Keep every 11th frame (87.27 fps)
  • Speed up the audio by 3% and tweak the frame rate (90 fps)

Would it be possible for Flowframes to perform this x16/11 interpolation more efficiently, by taking advantage of the fact that most of the frames will be discarded?

Bug fix or feature request - jpeg interpolated frames

Using 1.27.2 here, in the debug menu options there's a section called jpeg interpolation, when set to true, it doesn't output interpolated frames as jpeg, it still does png.

I'm going through my old HSBS movies and png frames take a toll on the HDD space too much.

Can you help?

Confused about the program

It says the RTX 3000 one which is the biggest in size is also compatible with older cards, would the RTX 2060 be compatible as-well?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.