Author Topic: Recording RAW and H.264 at the same time  (Read 7729 times)

marcb

  • New to the forum
  • *
  • Posts: 9
Re: Recording RAW and H.264 at the same time
« Reply #25 on: March 14, 2017, 07:40:46 PM »
This is a great idea. Tested it and it works well. However, would it be possible to have the proxy h.264 recording together with the non-lite flavour of MLV (with sound).
That would make post-production syncing a lot easier. Thanks!

larrycafe

  • Freshman
  • **
  • Posts: 65
Re: Recording RAW and H.264 at the same time
« Reply #26 on: March 16, 2017, 04:11:22 PM »
what about separating chroma channels to be recorded with RAW video? could it further cut the RAW video bitrate?

combining the chroma channels with the H264 compressed video in post, this should give better video quality for the slow write speed camera

quality between full RAW and H264, while giving longer record time perhaps.


dmilligan

  • Developer
  • Hero Member
  • *****
  • Posts: 3199
  • 60Da / 1100D / EOSM

Pyriphlegethon

  • New to the forum
  • *
  • Posts: 6
Re: Recording RAW and H.264 at the same time
« Reply #28 on: April 16, 2017, 12:10:54 AM »
As it currently stands, this isn't meant to be used as an online/offline proxy solution, right, it's more of a 'confidence check'? With the h.264 file starting before and ending after the raw, and having no option for timecode (unless with the 5D3 there is a way of ML 'reading' camera timecode I don't know about) there's really no current solution for re-conforming offline proxies to online raw in post, cierto? Not to mention filenames are different. But the h.264 file can be set to inherit timecode from the camera clock which ML has more than frame-accurate access to no?

Finishing a shoot, popping the SD card into a laptop, editing, and reconforming and processing only the needed ML clips would be quite the treat. The only camera that does this well for me currently is any DSMC2 body from Red and even then it's on the same media as the raw file which is less convenient. The lack of a simultaneous proxy solution was the one thing that kept me from buying an Ursa mini pro. Would be delightfully humorous if ML ends up being able to do this ;)

domasa

  • New to the forum
  • *
  • Posts: 38
Re: Recording RAW and H.264 at the same time
« Reply #29 on: April 30, 2017, 11:24:25 AM »
Is there the possibility of simultaneously deleting the h264 proxy and corresponding RAW file...?
It will be greate! Please do it.

Ilia3101

  • Member
  • ***
  • Posts: 171
Re: Recording RAW and H.264 at the same time
« Reply #30 on: August 02, 2017, 08:38:22 PM »
@a1ex What would it take to get h.264 proxy working on the 5D mark 2?
Could you give me a pointer if it is not a difficult task ;)
If it is difficult, then I guess it can stay broken for some more time :(

I think it would be a good feature to put in to unified if it gets to a point where it works on all cameras ;)
5D2

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 10072
  • 5D Mark Free
Re: Recording RAW and H.264 at the same time
« Reply #31 on: August 02, 2017, 09:02:54 PM »
Probably just troubleshooting it.

You could break the task into simpler ones, for example:
- can you allocate memory with shoot_malloc and/or srm_malloc during H.264 recording?
- can you record H.264 while the LiveView RAW stream is active?
- if not, is there any conflict over EDMAC channels? can it be solved by using other channels?
- does the raw recording code get stuck anywhere?
- if yes, find out where (using printf, NotifyBox, LED blinks, special effects or whatever else you find easier)
- anything unusual in Canon's debug messages? (warning: in LiveView, you'll get a few MB of messages within seconds, and you may have to reduce the FPS)

Ilia3101

  • Member
  • ***
  • Posts: 171
Re: Recording RAW and H.264 at the same time
« Reply #32 on: August 02, 2017, 10:50:00 PM »
First step:
- can you allocate memory with shoot_malloc and/or srm_malloc during H.264 recording?

Ok I don't know if I'm testing correctly, but here's what I did (in the h264 proxy branch)
Added this in line 1699 of mlv_lite.c: (some original code left in for context)
Code: [Select]
    if (h264_proxy)
    {
        /* start H.264 recording */
        ASSERT(!RECORDING_H264);
        movie_start();
    }

    struct memSuite * testmem = shoot_malloc_suite(20);
    if (testmem != NULL)
    {
        NotifyBox(5000, "shoot_malloc success");
    }
    shoot_free_suite(testmem);

    //testmem = srm_malloc_suite(20);
    //if (testmem != NULL)
    //{
    //    NotifyBox(5000, "srm_malloc success");
    //}
    //srm_free_suite(testmem);
Is this the right way to test successful memory allocation in ML? I hear stdlib isn't perfect in ML, so not 100% sure.
(I individually commented out srm and shoot and recompiled twice, both allocations seem worked)

I think I'll test this one next:
- does the raw recording code get stuck anywhere?
As it seems easier than these:
- can you record H.264 while the LiveView RAW stream is active?
- if not, is there any conflict over EDMAC channels? can it be solved by using other channels?
5D2

reddeercity

  • Hero Member
  • *****
  • Posts: 1368
Re: Recording RAW and H.264 at the same time
« Reply #33 on: August 03, 2017, 07:15:08 AM »
I tried this out about 2 mouths ago or so , if I remember right I had both h264 & raw enabled at same time but it defaulted to only h264 recording instead of both .
I see if I can find that build .

Ilia3101

  • Member
  • ***
  • Posts: 171
Re: Recording RAW and H.264 at the same time
« Reply #34 on: August 03, 2017, 11:53:27 PM »
Ok it seems to get to
Code: [Select]
hack_liveview(0);and freezes there... until I go to the trashcan, disable raw video, then stop it myself.

The line right after that is
Code: [Select]
edmac_memcpy_res_lock();"edmac"... sounds familiar...
- is there any conflict over EDMAC channels? can it be solved by using other channels?
I'm guessing it must be an EDMAC channel conflict. Do you think this is the case?
... sorry to be bothering you again how do you change EDMAC channels?

EDIT: found it, changed the channels around within allowed range in the comments, did not seem to help. So I guess it might not be an EDMAC conflict.
5D2

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 10072
  • 5D Mark Free
Re: Recording RAW and H.264 at the same time
« Reply #35 on: August 04, 2017, 04:33:51 PM »
You can use the "edmac" module to diagnose it. Find the free channels in standby mode (to cross-check the existing configuration), then see if anything changes while recording.

Ilia3101

  • Member
  • ***
  • Posts: 171
Re: Recording RAW and H.264 at the same time
« Reply #36 on: August 04, 2017, 04:52:08 PM »
Hmm, you mean the EDMAC thing in the debug tab?
I looked at it, but don't understand what's going on.

Here's a screenshot while recording h.264 (no RAW):



Here's it in liveview not recording:




Doesn't really make much sense to me :-\
5D2

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 10072
  • 5D Mark Free
Re: Recording RAW and H.264 at the same time
« Reply #37 on: August 05, 2017, 11:41:32 AM »
Yes, that EDMAC thing was recently moved to a module (check the current nightly).

Unfortunately, the "Find free EDMAC channels" tool does not work while recording, as it goes to PLAY mode whenever the tested channel is busy (that's because in PLAY mode, all channels are free). It might work if you use PauseLiveView instead, but that one must be forwarded to a different task (because check_timeout runs on interrupt, not on a regular DryOS task).

Background info: http://magiclantern.wikia.com/wiki/Register_Map#EDMAC

On this screen, [] are channels and <> are connections.

I should probably draw a diagram, based on my current understanding (which can be found as "executable documentation" in the QEMU branch).

Ilia3101

  • Member
  • ***
  • Posts: 171
Re: Recording RAW and H.264 at the same time
« Reply #38 on: August 05, 2017, 07:52:40 PM »
I downloaded latest nightly - there was no edmac.mo, maybe there's a build error happening?

As it seems finding free channels automatically is troublesome, might have to try and hand pick some more channels next time and see if that works.
5D2

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 10072
  • 5D Mark Free
Re: Recording RAW and H.264 at the same time
« Reply #39 on: August 05, 2017, 07:57:59 PM »
I downloaded latest nightly - there was no edmac.mo, maybe there's a build error happening?

Yeah, that's why these things are under review for some months, until nobody bothers to look at them :D

https://bitbucket.org/hudson/magic-lantern/pull-requests/811

12georgiadis

  • New to the forum
  • *
  • Posts: 37
  • 5DmkIII - 7D
Re: Recording RAW and H.264 at the same time
« Reply #40 on: August 13, 2017, 10:34:32 AM »
I just tested H264 proxy with sound + 1080p compressed raw and it works perfectly. However h264 are longer. to sync h264 proxy + sound + 1080 raw, I tried to determine the offset. It is around 2s but not regular. Sometimes +1i or 2, sometimes -1i or two. Is there a way to have a stable offset ? If yes, a simple ffmpeg script could sync everything.

Danne

  • Hero Member
  • *****
  • Posts: 3121
Re: Recording RAW and H.264 at the same time
« Reply #41 on: August 13, 2017, 11:17:35 AM »
There is an idea from a1ex about synching H.264 and raw stream by starting off with a black frame(both raw and H.264) when H.264 starts. Can't find the link. I thought it was a cool idea.

12georgiadis

  • New to the forum
  • *
  • Posts: 37
  • 5DmkIII - 7D
Recording RAW and H.264 at the same time
« Reply #42 on: August 13, 2017, 09:25:14 PM »
And the black frames appear together Both on h264 and raw ? With the same number of iframe ? It sounds interesting


Envoyé de mon iPhone en utilisant Tapatalk

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 10072
  • 5D Mark Free
Re: Recording RAW and H.264 at the same time
« Reply #43 on: August 17, 2017, 01:17:29 AM »
I should probably draw a diagram

Done - check the "edmac" branch and this topic.