Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - gnarr

#1
it's the same for me, but it only outputs the first few frames and then loops them. The sound sometimes plays on, but usually it loops with the video. It's all dark and clearly not working right.
#2
Quote from: BlueBird on January 19, 2014, 01:57:30 AM
thx work but still have a problem.. i got the dng but no wav! check the error message what i got in the tread!

The program does not have wav extraction capabilities yet. I haven't had any time to maintain the code for months, but I'm going to try to revive this in the next few days and add features and remove bugs.

I saw that there are two branches on bitbucket that haven't had any work done, so if anyone needs any help at all with the code or setting up an environment with this, just contact me.
#3
I just added a makefile to the repository, so now you should be able to build. Just remember to use a recent version of gcc/g++ (4.7 or 4.8 works best).
#4
Quote from: g3gg0 on August 31, 2013, 04:27:42 PM
@gnarr:
can you try to parse the RAWI block and abort in case you can not process the depth?
when compressing, it is better to use 16 bpp depth, as the LZMA can this compress data far better.

and if i accidentally pass such a 16bpp file to mlv2dng, it silently crashes :(


btw:
see https://bitbucket.org/g3gg0/magic-lantern/src/2fc3ab999e72892b6ebc13559209839912ad369b/modules/raw_rec/mlv_dump.c?at=unified

there are those functions:

void bitinsert(uint16_t *dst, int position, int depth, uint16_t new_value)
uint16_t bitextract(uint16_t *src, int position, int depth)


''position'' is the n-th pixel in that line you specified.
you can use them to get and set pixel per pixel with any bit depth up to 16bpp.
so you are not forced to use hardcoded macros or structures for other bit depths, but can read any depth and store as 14bpp.

I just added 16bit support, but I haven't compiled it yet.
#5
Quote from: g3gg0 on August 29, 2013, 08:18:54 PM
can you make the source code public? i.e. on bitbucket and we can merge it into ML source base with you as maintainer.

It is finally online :) https://www.bitbucket.org/gnarr/mlv2dng

You need a compiler with C++11 support to compile this.

Quote from: fpena06 on August 29, 2013, 03:45:12 PM
Thank you very much. Program is working like a charm after disabling electronic leveling :)
You can enable electronic leveling again. The program now just ignores unknown headers and prints a error message.

Quote from: nick.p on August 30, 2013, 01:28:12 PM
I can create an AppleScript GUI if there is a demand for it.
That would be awesome! :)

Quote from: jphansen on August 30, 2013, 04:30:53 PM
I dont know what I'm getting my self in to but in terminal I get the following:
...

This looks weird... Do you get any dng's out of the program?
#6
A new version is up for all platforms.

What is fixed:
Exact frame times (exact to a microsecond).
Exception handling improved.
all meta-data is now read and sorted before any dng's are written.

links are in first post.


Quote from: fpena06 on August 28, 2013, 04:54:39 AM
Worked fine before. Not sure what happened but now I get this error on both windows and osx :S

./mlv2dng M27-2212.MLV test
...std::exception

Thanks for providing the file :) It made debugging very easy.
What was happening is that your camera has electric leveling and it seems that g3gg0 has already implemented it into MLV. I have yet to include this in mlv2dng, and because I was handling missing headers in a stupid way, the program exited without printing the right error message.
Now the error handling has been fixed so that it should notify of missing headers and what the header ID is, without stopping conversion.

Quote from: Danne on August 25, 2013, 01:24:09 AM
How do I use the macversion? Drag and drop would be sweet :)
The "drag'n'drop" feature in windows is just windows being clever and automatically opening a terminal with correct parameters to run. On OsX you will have to use the terminal for now (or some Mac nerd can maybe help you.. I don't know anything about OsX).
on the terminal write:
./mlv2dng inputfile.mlv


Quote from: crwn_schlr on August 27, 2013, 02:29:43 AM
I'm on a mac, i tried mlv_dump through a VM but didn't have any success there either.

I think it's because I'm using OSX 10.7.5.

'Illegal instruction: 4' seems to be a terminal error where whatever tool your attempting to use isn't understood by the terminal, or something like that.

I could partition my drive and run osx 10.8 from it (with out having to pay) but I only wanna do that if it's a last resort.

Thanks for looking into it.
This sounds like a corrupted file since mlv_dump does not work either. Could you by any chance upload the file for me, so I can debug this?

Quote from: Sky_cleaner on August 27, 2013, 03:23:38 PM
What  about mlv2dng WITH conversion to Apple Prores? It is possible?
Everything is possible :) For now, it will be dng only.

Quote from: jsoucy on August 27, 2013, 06:15:19 PM
i got this error too on a mac: "Illegal instruction: 4". and can we get a drag n drop application it will be simple :)
Have you tried converting to legacy raw with mlv_dump?
#7
Quote from: crwn_schlr on August 26, 2013, 10:31:25 PM
Anyone ever received this error message?

XXXX-iMac:~ username$ /Applications/mlv2dng /Users/username/Desktop/M26-0003.MLV
Illegal instruction: 4

I will look into it. Can you try converting to legacy raw with mlv_dump and see if that works?
#8
So, how is mlv2dng working for everyone so far?
No bugs or crashes with current version? Is there something missing from the program that you need?
#10
as soon as I finish downloading an OsX vmware image I will compile and post it here :)
#11
Since I don't want to hijack g3gg0's thread, I decided it was time to move this to a seperate topic.

Here is my mlv2dng converter. It is still work in progress, so there are features missing and it might be unstable.

What doesn't work / todo:
converting non 14 bit mlv to dng.
converting LZMA compressed files to dng.
converting dual iso mlv to dng.
more detailed error logging.
extracting audio.
exact frame time.

Usage is the same as with raw2dng for the moment:
mlv2dng.exe file.mlv [prefix]
=> will create prefix000000.dng, prefix000001.dng and so on.

Windows version:
https://dl.dropboxusercontent.com/u/3181048/mlv2dng.zip

Mac version:
https://dl.dropboxusercontent.com/u/3181048/mlv2dng_osx.zip

Linux version:
https://dl.dropboxusercontent.com/u/3181048/mlv2dng_linux.zip

Please report any errors here.


Source:
https://www.bitbucket.org/gnarr/mlv2dng
#12
Quote from: Danne on August 18, 2013, 12:02:51 PM
Is Gnarrrs mlv2dng converter supposed to work with drag and drop with the .mlv files straight out of the camera? I have some .mlv files but the cmd prompt just closes when I try?

Quote from: Canon eos m on August 18, 2013, 12:18:26 PM
Yes it is drag and drop over the .exe but some previously recorded files do not activate for me too. Maybe a change in format that the new mlv2dng does not recognize.

Quote from: Danne on August 18, 2013, 12:41:21 PM
I see, probably because I tried with some older files. Thanks

This should now be fixed. Old versions of mlv files should be decoded properly.

Please report any errors you have :) Either with a PM or on this thread.

https://dl.dropboxusercontent.com/u/3181048/mlv2dng.zip

and here is a linux version:
https://dl.dropboxusercontent.com/u/3181048/mlv2dng_linux.zip
#13
Don't forget that framespace is a 32bit number, so it's 0x00000F7C.
So the actual frame size is blocksize - (framspace + 32) and you start reading the frame at the framespace offset.
#14
Quote from: g3gg0 on August 18, 2013, 12:46:01 AM
@gnarr:
can you convert the camera serial number to a 12 digit decimal?
e.g. 110091F150 (hex) is 073024008528 (dec)

done :)
#16
Quote from: g3gg0 on August 15, 2013, 06:35:55 PM
Dual iso support isnt implemented yet.
But here some example files: https://docs.google.com/folder/d/0BwQ2MOkAZTFHb3lmaTMzUV9uMWc/edit

Folder contains a spanning mlv, a compressed one, 10 bit uncompressed and compressed etc.

Thanks :) this will help a lot with development.
#17
I just updated mlv2dng.

Fixed / working:
Headers are now correctly matched to frames via timestamps.
Almost all available exif and ifd info should be included in dng's.
There shouldn't be any memory leaks.
file spanning.
Little bit of error output in case it crashes.

What doesn't work / todo:
preview image. (although I'm closer to getting it right now.. will be there soon)
converting mlv to mlv for changing file compression or bit level.
converting non 14 bit mlv to dng.
converting LZMA compressed files to dng
converting dual iso mlv to dng.
more detailed error logging.

https://dl.dropboxusercontent.com/u/3181048/mlv2dng.zip
#18
Could someone post a (or send me) short dual-iso mlv file?
#19
the mlv implementation is not finished yet and hasn't been optimized for 5D2 at all. g3gg0 is still adding features to the format and making it stable for the 5D3. When he has reasonably stable code it will be adapted for 5D2.
The mlv2dng converter is also under heavy development now and needs a lot of work before really being usable.
#20
Quote from: kgv5 on August 13, 2013, 04:58:54 PM
Is mlv2dng works like raw2dng? I mean drag and drop? I cannot run the app, it says that cannot find MSVCR110.dll, got it from post #322.
Windows 7 64bit.

I just uploaded a version compiled with GCC, so this should be fixed now.
#21
it's not yet implemented for dual iso. You will need to go the mlv_dump -> raw2dng way.
#22
Quote from: g3gg0 on August 13, 2013, 11:22:29 AM
-> need to build an internal sorted list of all blocks before metadata can be assigned to a frame

I have still to do this. Currently it just writes metadata from the last info block that was read. But the whole metadata thing is largely unfinished yet anyways :)
#23
new version.

Now handles spanned files and hopefully won't crash :)

With spanned files, you just point to the first file and the program automatically detects if there are more files.

https://dl.dropboxusercontent.com/u/3181048/mlv2dng.zip
#24
one question for you g3gg0.

Frame size in the raw info header shows 4797520 for this video, because the camera was configured for 2080*1318, but of course you can only record max 1920*1288, so the real real frame size is 4327680 (as reported by the video frame header). I was wondering if this was a bug or if it is supposed to be like this?
#25
Quote from: g3gg0 on August 13, 2013, 11:22:29 AM
@gnarr:

thanks for supporting!
(it is crashing with no output on my pc)

things important to know (most of that is written already i think)
- files are numbered in the file itself
- there is a fileCount field and a fileNum (fileCount isnt fixed yet on all files, so dont trust it yet. will do that later)
- no matter if it is the second file after the first file reached 4GiB, or if it is a spanning file, the file is named M00, M01, ...
- all M00, M01, ... also contain a file header (mlv_file_hdr_t)
-> you see no difference in files from card spanning and files that went over 4GiB
- the initial blocks like IDNT, INFO etc are written in the first file before recording
- some of them (RTCI, LENS, EXPO, ELVL) are written periodically too
-> so dont rely on exact positions in file
- blocks are written out of order, which means frame #9 may be in file before frame #4 and frame #6 is in another file
- look at the timestamp to know which EXPO, RTCI, LENS, ELVL etc block belong to the video frame
-> need to build an internal sorted list of all blocks before metadata can be assigned to a frame

will upload a file, takes some time.
it will appear here, when its done.

Thanks for the notes and the files :) I will test this when I get home frome work.