In version 11.1.1 I used the Simon Woods MathMF form to extract png images from large avi files (up to 100 GB in size). Your package was MUCH faster than using something like this:
nImages = Length @ Import["D:\movie.avi", "Frames"];
Do[
image = Import["D:\movie.avi", {"Frames", i}];
strCounter = ToString @ PaddedForm[i, 4, NumberPadding -> {"0", ""}];
To export[StringJoin[outputPath, "image_", strCounter, ".png"]image
"png"], {i, 1, nImages}
];
Here, just reading the number of images taken by a large 6 GB avi file (containing 640 * 480 pixels) takes a long time (45 s).
Reading a a single image in a certain position i = 1
It also takes about 45 sec.
Why is this so slow? (I have 32 GB of RAM, processor: i7-4940MX 3.1 GHz)
Watch this:
image = Import["D:\movie.avi", {"Frames", 1}]; // AbsoluteTiming
{44.1149, null}
In versions 11.3. MathMF
It does not work anymore (see this question and Simon's comment).
Simon mentioned the following:
Looking at the MediaTools package it looks like it could do everything
that MathMF can do anyway. If you do Needs["MediaTools["MediaTools[“MediaTools[“MediaTools"]and so
Private` $ MF * seems to have functions for
? MediaTools
Reading and writing frame by frame.
If I execute ? MediaTools
Private$ MF *
I get a list of fuctions
How can I replace my higher code with these functions to increase performance?