MLVFS - a FUSE based, "on the fly" MLV to CDNG converter

Started by dmilligan, August 31, 2014, 02:01:24 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

dmilligan

Quote from: N/A on December 22, 2014, 02:02:01 PM
Color management. Compatibility. A thorough record of information for archiving, transcoding and sharing footage across programs, platforms and OS's.
Well, that's sort of the point of the DNG specification, and all that stuff is already there => all the information needed to properly and consistently interpret the DNG is already provided. If certain programs do not abide the DNG spec and ignore particular metadata (e.g. the Apple Finder ignores the blacklevel metadata), which is quite rampant (even for Adobe who created the DNG spec), then there's nothing I can really do about that.

N/A

Yeah I definitely understand, hopefully we'll see a lot more support for CDng in the future.

Interestingly enough, I found a Quicktime and quicklooks component for playing back Dng's, but unfortunately its been discontinued.

http://hamburgpromedia.com/products/mxf4mac/codecs/dng-qt.php
7D. 600D. Rokinon 35 cine. Sigma 30 1.4
Audio and video recording/production, Random Photography
Want to help with the latest development but don't know how to compile?

Piotruchna

Hello,
I am not sure if anybody had this problem but Ill just type it out:

If you use latin extended characters (for me polish) in names of the folders you will not be able to mount .mlv files. Error window will come out. Just changing name from "kręcić" to "krecic" will make everything work.

Also thanks!

dmilligan

Makes sense, the standard C libraries do not have multi-byte character support (UTF-8 ), only ASCII. This may or may not be a limitation that can be overcome depending on the FUSE library, I'm not sure.

bwv656

I just want to say Thank You to all of you made this possible.
I couldn't believe my eyes watching non-converted MLV playing real-time in resolve.

I haven't tried it on PC side yet but the OSXFUSE+MLVFS works incredibly well.
Thank you so much once again!!

limey

Help me understand where I'm messing this up.

I'm using Windows.

I've installed PFMAP.
I've registered the DLL.
In a windows explorer window I find a MLV file and use Quick Mount.

I then goto Premiere and import the first image of the image sequence on that quick mounted MLV folder that is created.

When it gets imported the file is black and only the audio works.

**initially was mounting MLV files on an external drive, but wanted to rule out that it wasn't a loading issue and copied the files to the desktop in its own folder (MLV Test). Didn't fix it.

dmilligan


limey

The M21-0244 DNG is the one that comes out black.

I tried another MLV after quick mounting it and importing to Premiere and it has a Pink overlay. This is (M10-0244)

Both files are totally fine in MLVRawViewer and I've used them both in movies doing different methods before, ie export to DNG, or straight export to .mov file.

https://www.dropbox.com/sh/6sih3x1alfcme9o/AACQj3yySqm72gQ7Cc-z2Nn6a?dl=0

Thanks for your help dmilligan.

dmilligan

There's nothing wrong with either DNG you posted. They both appear fine in Premiere and all the metadata looks correct. It may be some kind of issue with how Premiere is reading the data from MLVFS, but I can't really be much help with the Windows port as I don't own a Windows PC.

limey

I appreciate the time you took to look into it dmilligan.

limey

As a further sidenote.... When I export from MLVRawViewer to DNG, those will not import to premiere as a sequence, but MLV mounting does (despite the pink or black overlay). Not sure if that helps diagnose anything.

dmilligan

You are running the latest Premiere CC? Have you tried SpeedGrade or Resolve or some other program?

Markus

Resolve works for me on pc. Still on premiere cs6 though so I can't try to import them there.

andy kh

unable to register mlvfs.dll. getin this eror msg "the module mlvfs.dll was loaded but the entry-point DllRegisterServer was not found Make sure that mlvfs.dll is a valid DLL" can someone here help me
5D Mark III - 70D

Frank7D

These are the steps I followed that worked:
1. Downloaded the file and renamed it to add the ".dll" on the end.
2. Copied the file to my Windows folder.
3. Left-clicked somewhere in the Windows folder.
4. Held down the shift key while right-clicking, and chose "Open Command Window Here."
5. Typed the command per ayshih.

timbytheriver

Hello

I've installed binary on Mac OSX 10.8.5 as per instructions.

I'm not getting the services MLVFS option showing on my right-click menu > services > MLVFS

Have rebooted, repaired prefs. Can anyone help me with a solution please?

Thanks

Tim

PS I have checked in the main Preferences cp and it lists MLVFS as a ticked option for the menu. What gives? :S
5D3 1.1.3
5D2 2.1.2

dmilligan

Are you right clicking on a folder?

Quote from: timbytheriver on January 14, 2015, 10:05:12 AM
I've installed binary on Mac OSX 10.8.5 as per instructions.
I've never tested MLVFS on 10.8 so it could be this, nor do I really have the capability (or desire) to support old OS versions. I would recommend updating to the latest (10.10)

kgv5

Guys, is vertical banding correction works on windows version? Seems not but maybe i missed something.
www.pilotmovies.pl   5D Mark III, 6D, 550D

timbytheriver

Quote from: dmilligan on January 14, 2015, 01:47:00 PM
Are you right clicking on a folder?
I've never tested MLVFS on 10.8 so it could be this, nor do I really have the capability (or desire) to support old OS versions. I would recommend updating to the latest (10.10)

@dmilligan I was clicking on the mlv itself. Doh!  :o  It's working fine. My bad, sorry.

PS And thank-you for an inspirational approach in this app.
5D3 1.1.3
5D2 2.1.2

surami

I just started to play again with the MLVFS on my freshly reinstalled system.
- OS: Windows 7 Ultimate 64bit
- Pismo File Mount version: 2014.7.11
- mlvfs.dll version: latest from bitbucket (2014-10-03)
- AE CC 2014 version: 13.2.0.49 (2014.2 Release)
- ML: Nightly.2015.Jan15.550D109, mercurial changeset 4fff9f6cb33f (unified) tip

I can't import the DNG sequence into AE. After I adjust the settings in ACR (version 8.7.1) during the import process and hit OK, it gives me an error, saying:
"After Effects error: The file format module could not parse the file 45::35"

This happens only with my new MLV file (recorded today). If I import an older MLV file, which was recorded with a nightly build from previous year (I don't know the date), then everything works fine.

Somebody could help me out with checking the MLV files?
550D + nightly ML

dmilligan

They both work fine on the current Mac version, and there doesn't appear to be much difference between the two. I guess you'll have to wait until somebody with Windows and some programming skills updates the Windows version.

swinxx

Is it possible to speed up dual iso conversion (on mac) ?? Thx

dmilligan

Yes. Use mean32 interpolation instead of AMaZE, or figure out how to optimize this code from cr2hdr, 75% of the time is spent here (I don't even understand how it works/what its doing, much less being able to optimize it, so good luck):

        for (int y = 5; y < h-5; y ++)
        {
            int s = (is_bright[y%4] == is_bright[(y+1)%4]) ? -1 : 1;    /* points to the closest row having different exposure */
            for (int x = 5; x < w-5; x ++)
            {
                int e_best = INT_MAX;
                int d_best = d0;
                int dmin = 0;
                int dmax = COUNT(edge_directions)-1;
                int search_area = 5;
               
                /* only use high accuracy on the dark exposure where the bright ISO is overexposed */
                if (!BRIGHT_ROW)
                {
                    /* interpolating bright exposure */
                    if (fullres_curve[raw_get_pixel32(x, y)] > fullres_thr)
                    {
                        /* no high accuracy needed, just interpolate vertically */
                        not_shadow++;
                        dmin = d0;
                        dmax = d0;
                    }
                    else
                    {
                        /* deep shadows, unlikely to use fullres, so we need a good interpolation */
                        deep_shadow++;
                    }
                }
                else if (raw_get_pixel32(x, y) < white_darkened)
                {
                    /* interpolating dark exposure, but we also have good data from the bright one */
                    not_overexposed++;
                    dmin = d0;
                    dmax = d0;
                }
                else
                {
                    /* interpolating dark exposure, but the bright one is clipped */
                    semi_overexposed++;
                }
               
                if (dmin == dmax)
                {
                    d_best = dmin;
                }
                else
                {
                    for (int d = dmin; d <= dmax; d++)
                    {
                        int e = 0;
                        for (int j = -search_area; j <= search_area; j++)
                        {
                            int dx1 = edge_directions[d].ack.x + j;
                            int dy1 = edge_directions[d].ack.y * s;
                            int p1 = raw2ev[gray[x+dx1 + (y+dy1)*w]];
                            int dx2 = edge_directions[d].a.x + j;
                            int dy2 = edge_directions[d].a.y * s;
                            int p2 = raw2ev[gray[x+dx2 + (y+dy2)*w]];
                            int dx3 = edge_directions[d].b.x + j;
                            int dy3 = edge_directions[d].b.y * s;
                            int p3 = raw2ev[gray[x+dx3 + (y+dy3)*w]];
                            int dx4 = edge_directions[d].bck.x + j;
                            int dy4 = edge_directions[d].bck.y * s;
                            int p4 = raw2ev[gray[x+dx4 + (y+dy4)*w]];
                            e += ABS(p1-p2) + ABS(p2-p3) + ABS(p3-p4);
                        }
                       
                        /* add a small penalty for diagonal directions */
                        /* (the improvement should be significant in order to choose one of these) */
                        e += ABS(d - d0) * EV_RESOLUTION/8;
                       
                        if (e < e_best)
                        {
                            e_best = e;
                            d_best = d;
                        }
                    }
                }
               
                edge_direction[x + y*w] = d_best;
            }
        }


My dual ISO preview code only takes about 10ms per frame :P The cr2hdr stuff I didn't write, nor do I totally understand everything it does.

andy kh

Quote from: surami on January 16, 2015, 01:02:58 PM

This happens only with my new MLV file (recorded today). If I import an older MLV file, which was recorded with a nightly build from previous year (I don't know the date), then everything works fine.

i also have problem with new mlv files recorded @ 23.97 fps which i recorded recently. i am unable to import xml in resolve. older mlv files which i recorded last year wirth t2i  works fine.
5D Mark III - 70D

dmilligan

Updates:
fixed issues causing MLVFS to not work with full res silent pictures MLVs
enabled SSE2 extensions for AMaZE (AMaZE itself is faster, but the cr2hdr stuff overall isn't really any faster)
ability to override the framerate