HDMI Output Settings (hdmi_out.mo)

Started by theBilalFakhouri, June 05, 2021, 03:45:56 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

theBilalFakhouri

Hello,

Some time ago, me and reddeercity found out how to change HDMI output signal from Interlaced to Progressive, also HDMI video system from NTSC to PAL, it was only matter of changing some registers values, wasn't that hard, also by digging into "Force HDMI-VGA" code, I found an option to force 1080i output on HDMI displays instead of 720x480p because some monitors don't support interlaced signal, so it output only in VGA mode, this option might be useful for some people.

Now I made a simple module includes these options:



Supported models:

(700D.115 / 650D.104 / 600D.102 / 550D.109 / 6D.116 / 5D2.212 / 100D.101 / EOSM.202 / 70D.112 / 60D.111 / 50D.109 / 1100D.105).

The HDMI output should be 1080i to use Progressive option.

Notes:
-You will need a build from iso-research branch
-The module works in crop_rec_4k builds too, but it conflict with crop_rec module if both loaded, unload crop_rec in this case (use a custom crop_rec_4k build for 70D).
-Download the module, then copy it to ML/modules folder in SD card.

-Some HDMI TVs/monitors won't work when using Progressive setting, it will give black screen
-Currently the module have quirks on DIGIC 4 cameras when using it while recording H.264 video.
-Progressive mode might make an overhead, I got some choppy frames when recorded 720p60 H.264 video
-Using Progressive mode on capture card might give squeezed 1920x540p output, you may need to de-squeeze it to 1920x1080p

-1920x540p is cleaner than 1920x1080i, I could see the noise clearly.
-If your 1080p monitor doesn't support Interlaced signal, enable "Force 1080i output" option, you may have scanning lines pattern, try switching "Signal" to "Progressive".

-After forcing HDMI output to 1080i, you may need to switch the camera to photo mode (beside turning off "Force 1080i output" option) if you want to get back to VGA output.

-This module might be useful for streamers :)
-Use it at your own risk

Module settings:
-Signal: change HDMI output signal from 1920x1080i @ 60 Hz to 1920x540p @ 30 Hz
-System: change HDMI video system from 1080i @ 60 Hz to 1080i @ 50 Hz, or from 1920x540p @ 30 Hz to 1920x540p 25 Hz, or from 720x480p @ 60 Hz to 720x480p @ 50 Hz
-Force 1080i output: Force high resolution (1920x1080i) on HDMI displays.

[gifv]https://i.imgur.com/iVtn6ha.mp4[/gifv]


This video recorded in initial hdmi_out release, so "Force 1080i output" wasn't there at that time.


Short showcase on 5D2 from @Skinny (Thanks!):

https://www.youtube.com/watch?v=FWISRYtvEiw


This module Confirmed working on 700D, 5D2 and 550D, please test this new module and feedback for other models, if the module didn't work on a certain model then report back.

Download / Source code / Technical discussion

Skinny

Hi! Is there any possibility to switch to progressive without entering 1080i?
It seems that my monitor won't accept interlaced 1080i and the camera defaults to 480 so module can't work...

theBilalFakhouri

720x480 output using HDMI is already in Progressive mode by default

Skinny

ok, I didn't explain what I mean properly... I have a monitor which can work with 1080p, but apparently it can't display 1080i. So I can't enter 1080i mode at all...
I just wanted to have better resolution than 720x480, and if there is a way to enable say 1920x540p or any other resolution higher than 720x480, without switching to interlaced mode first, it would be great.

theBilalFakhouri

Got it, fortunately the answer is yes:

Quote from: theBilalFakhouri on June 06, 2021, 08:56:14 PM


I have 1080p monitor and when attaching my 700D to the monitor using HDMI, the camera won't accept outputting in 1080i, it outputs to 720x480p, I do think my monitor doesn't support outputting Interlaced signal properly (some scanning lines pattern would happen) but it can show the Interlaced image at least . .

By reading "Force HDMI-VGA" code, I found an option to force outputting Full-HD signal (1080i), tried it on my 1080p monitor, the output switched from 720x480p to 1080i, nice! but again this only worked in none-LiveView mode, since I know how to switch the Interlaced signal in 1080i to Progressive, I got rid of scanning lines pattern, so Forcing VGA to 1080i, then switching the signal to Progressive might be very useful for some users.



But we need to solve this problem first:
https://www.magiclantern.fm/forum/index.php?topic=26108.0

At this time of writing, not sure how to solve it

deerport


Skinny

It is very cool, I saw it :)
Is it a problem also for digic 4 cameras? I only have 550D and 5D2, so if this hack can work I would be really happy. The module from the first post is universal for the whole range of cameras, so I thought maybe... anyway it is very interesting progress

theBilalFakhouri

New version posted, changes:

-VGA output 720x480p now supports HDMI video "System" option, you can toggle between 720x480p @ 60Hz and 720x480p @ 50Hz
-DIGIC 4 cameras: Added option to "Force 1080i output", for DIGIC 5 cameras we need solve this issue first to make it work.

More details, download link in the first post.

@Skinny please test the new "Force 1080i output" option, also try to switch the "Signal" to "Progressive".

Any feedbacks are welcomed!

Skinny

It worked! i'm gonna test it more on both cameras tomorrow :) awesome!
as it turns out, the monitor can perfectly accept 1080i with forced output... no artefacts or anything. But if I switch to progressive, it shows blank screen with warning "change resolution", probably because of a strange aspect ratio.

1080i is cool, much more detailed than 480 :D now I can focus easily without any magnification. Thank you a lot!

theBilalFakhouri

Awesome :D thanks for the feedback!
I would like to see a video showing enabling "Force 1080i output" option on 5D2, also 550D, to include it in the first post.

Yeah, Progressive mode doesn't work well on all TV/Monitors, for me I have tested this option on two Sony TVs and it gave a blank screen, on Samsung TV and a PC Monitor it worked fine.

Waiting for your new tests! also if you could test "System" option too on both VGA and 1080i outputs on both cams, I would appreciate it!

Skinny

ok I can confirm it is working on 550D and 5D2 :D and NTSC and PAL switch also works..

so what kind of video do you want? I don't have a capture card to show the screen, but maybe I can record something with another camera...

theBilalFakhouri

Nice! thanks for testing!

No need to capture card, attach the 5D2 to the monitor, film the monitor with the 550D in H.264, or using any smartphone with 1080p, and just make sure the image is clear and steady, turn on 5D2, then turn on "HDMI Output", and enable "Force 1080i output" option, and let us see the result :).



Updated first post,  5D2 and 550D have been confirmed to work (Thanks @Skinny).

Skinny

ok I did it :D
I don't know if recording the monitor with 550D is a good idea, but anyway:



And sorry for the accent, this is literally second or third time I speak English :)

theBilalFakhouri

Thanks @Skinny!

I have included the video in the first post, no worries about the accent ;D

theBilalFakhouri

New version posted, changes:

-"Force 1080i output" now available for DIGIC 5 cameras :D (I figure it out, thanks to DebugMsg, as I guessed I needed to apply the patch in another way)

This option tested with success on 700D, please feedback for other DIGIC 5 cameras.

Download link in the first post.

Walter Schulz

@Skinny + Bilal:
Having troubles to confirm 550D "working". Should it work for H.264 recording, too? Because mine doesn't. Most of the screen got frozen and there is an area on top with scrambled content. Area = Top of screen, filling whole width.

Skinny

There are lots of things.. I will do more tests soon.

It isn't working with h.264 recording on 5D2 too, it just switches to 480. and screen goes black periodically, like it is trying to switch but falls back to 480.
But the videos recorded ok. At least in a few tests.

I tested 550 with very slow SD card (I just recently lost my fast sd card) and it was recording only 5-6 seconds, so I thought everyting is the same. I didn't noticed frozen screen because most of the time my monitor was black, and I only saw it for a moment and then "recording stopped".
Now with normal fast SD card I can see - everything as you described, it's frozen with distorted content in the top area.
Actually it starts with 480 sometimes, and then switches to 1080 and screen freezes.

Sometimes 550D doesn't turn off correctly after I use this module, card activity led stays lit.
So it's kind of unstable and more useful for live streaming and so on, for now.. (for 550D).

I didn't have time to check RAW recording with this module on 5D2, but I'm gonna do more tests later
What else... on 550D I can watch recorded h.264 clips in full screen, full width. On 5D2 it is centered and much smaller, with borders.

theBilalFakhouri

@Walter
You mean when enabling "Force 1080i output", what settings have you used with the module?

Thanks for the feedback guys, I didn't have this problem on 700D (DIGIC 5) when recording H.264, it's works fine, the output stays 1080i, also no weird artifacts in LiveView

I will prepare a build for 550D, 5D2 to check some registers values when recording H.264 video, also will put another way to apply "Force 1080i output" patch (the patch which solved force 1080i on 700D).

@Skinny
Yes, I had the problem when the camera is not turning off cleanly, I might have a fix for this, mostly we only need to use "HDMI Output" settings in LiveView, but not in menus.

Quote from: Skinny on June 19, 2021, 09:14:44 AM
What else... on 550D I can watch recorded h.264 clips in full screen, full width. On 5D2 it is centered and much smaller, with borders.

What was the output on 550D and 5D2 when watching H.264 videos ?

Walter Schulz

Quote from: theBilalFakhouri on June 19, 2021, 03:04:40 PM
@Walter
You mean when enabling "Force 1080i output", what settings have you used with the module?

All combinations. PAL/NTSC, Progressive/Interlaced.

BTW: Tested with 7D. Don't have a device giving me troubles connecting with Full-HD so unsure if working properly. No visible problems, though.

Skinny

Quote from: theBilalFakhouri on June 19, 2021, 03:04:40 PM
What was the output on 550D and 5D2 when watching H.264 videos ?
It was all 1080 in both cameras.. The setting I used is NTSC interlaced.

And 5D2 is always turns off correctly, at least so far I haven't noticed anything :)


@theBilalFakhouri thank you so much for all this work, if I ever knew how much progress you will make for 650/700D, I would definitely buy 650 instead of 550 :D I am really surprised how much functionality you have added to this camera

Skinny

little update - I just finished repairing 24" monitor (haha, service center said it cannot be fixed) So I connected 550D and it works with interlaced and progressive scan :) But I didn't see much difference between the two. Although I look at the noise very closely. Well anyway, I can see the output in both modes.

Walter Schulz

Quote from: Skinny on June 24, 2021, 07:49:56 PM
But I didn't see much difference between the two.

Haven't compared it yet, either.
Have you tried fast moving scenes?

Skinny

nope... I thought it should be more detailed or something, because theBilalFakhouri said in the first post:

Quote from: theBilalFakhouri on June 05, 2021, 03:45:56 PM
-1920x540p is cleaner than 1920x1080i, I could see the noise clearly.

cyberninjaTF2

Unfortunately this didn't work on my 60d (Firmware version 1.1.1-ml-iso-research), the HDMI Output option under the Display tab won't appear after i copied the "hdmi_out.mo" to the ML/modules folder.

mineralof

can i somehow start broadcasting on dji RavenEye with this module on canon 6d?

theBilalFakhouri

Quote from: mineralof on September 04, 2021, 09:43:38 PM
can i somehow start broadcasting on dji RavenEye with this module on canon 6d?

You can use this module with any HDMI device, not all HDMI devices are guaranteed to work (like when using Progressive option), you need to do some tests.

IDA_ML

Has anyone tried the HDMI output on a 1920x1080 capture card?  Does that work and how is image quality in the 1x3 crop modes?  I use these 1x3 modes all the time.  My idea is to use an old smart phone as external monitor via a capture card.  Will that work?

Walter Schulz

You can answer both questions on your own:
a) Connect camera HDMI to HDMI input of your monitor/TV set.
b) Connect capture card to phone and connect capture card to HDMI output.

theBilalFakhouri

1x3 presets (which have real-time correct preview) do work with HDMI output, but only in 1080i output and in Full Canon preview (toggle between Small and Full Canon preview by pressing Info button while in 1080i output), the quality is good enough and of course it's better than camera LCD, but it suffer from aliasing and moire in LiveView (this also happens on LCD).

-I didn't have corrupted frames with 1x3 presets and 1080i HDMI (tested on 700D).

As far as I know, Danne did implement HDMI support for 1x3 presets for EOS M but he didn't test it, you need to make some tests (e.g try it on any TV with 1080i output) then feedback.


IDA_ML

Quote from: Walter Schulz on September 06, 2021, 08:25:01 AM
You can answer both questions on your own:
a) Connect camera HDMI to HDMI input of your monitor/TV set.
b) Connect capture card to phone and connect capture card to HDMI output.

If I could, I wouldn't be asking, right?  I am considering buying a capture card, adapters and cables but don't have them yet.  My purchase decision will depend on whether this is a working solution or not.  If anybody has some experience with that, I should appreciate some information.

Thanks a lot, Bilal.  This is very useful information, indeed. 

Walter Schulz

Nobody can tell if your old smartphone will do the job. Telling type and OS version would be a start ...
HDMI adapter (with/without cable) is 2.50 to 6 €, cheap HDMI-USB converter 8 to 15 €. I recommend adapter and converter with cables attached.

IDA_ML

The phone is Samsung Galaxy S5 with Android OS on it, (I do not remember the exact version and dont have the phone here to check).  I will also need a OTG cable, I guess. 

JogaDann

Hi! I have a 5D2 running lastest 2020Dec28 build. But yes, I want to try hdmi_out.mo. Why I'm not doing this?

Because ISO branch just stucks the camera at a blue + red LED on when I turn it off. Did someone have this issue? I know, it's a ML issue, not a module one, but I wish to know if one of you had something similar, and maybe have a workaround. I'm very excited to try hdmi_out.mo (and solve the 480p output), but the base ML isn't working properly  :-\

PukDaLuck

@theBilalFakhouri I would like to use this on my 50D but the iso-research builds don't work for this camera. The camera locks up when it shutdowns down with the iso-research branch (solid blue light). The lua_fix branch works but your module doesn't work with that branch sadly.

I think this is the commit that was applied to the lua_fix branch:
https://foss.heptapod.net/magic-lantern/magic-lantern/-/merge_requests/720/diffs?commit_id=035648f634448331cc93af393ffbb70cc05daf34

Does anyone have an iso-reseach build with this code change?
Any other way to get iso-reseach working on the 50D?
Any way to install hdmi_output.mo in the lua_fix release?

Thanks

JogaDann

Quote from: PukDaLuck on December 19, 2021, 10:48:36 PM
@theBilalFakhouri I would like to use this on my 50D but the iso-research builds don't work for this camera. The camera locks up when it shutdowns down with the iso-research branch (solid blue light). The lua_fix branch works but your module doesn't work with that branch sadly.

I think this is the commit that was applied to the lua_fix branch:
https://foss.heptapod.net/magic-lantern/magic-lantern/-/merge_requests/720/diffs?commit_id=035648f634448331cc93af393ffbb70cc05daf34

Does anyone have an iso-reseach build with this code change?
Any other way to get iso-reseach working on the 50D?
Any way to install hdmi_output.mo in the lua_fix release?

Thanks
Yes, I had the same on 5D2  :'(

Priit Pavelson

Quote from: cyberninjaTF2 on September 04, 2021, 04:42:30 AM
Unfortunately this didn't work on my 60d (Firmware version 1.1.1-ml-iso-research), the HDMI Output option under the Display tab won't appear after i copied the "hdmi_out.mo" to the ML/modules folder.
It didn't work for me either: 60D.111

Quote from: Skinny on June 08, 2021, 10:28:09 PM
ok I can confirm it is working on 550D and 5D2 :D and NTSC and PAL switch also works..
I got an error after enabling the module on 5D2.212
tcc: error: undefined symbol 'unpatch_memory'
tcc: error: undefined symbol 'patch_hook_function'
[E] failed to link modules

lea84

Quote from: PukDaLuck on December 19, 2021, 10:48:36 PM
@theBilalFakhouri I would like to use this on my 50D but the iso-research builds don't work for this camera. The camera locks up when it shutdowns down with the iso-research branch (solid blue light). The lua_fix branch works but your module doesn't work with that branch sadly.

I think this is the commit that was applied to the lua_fix branch:
https://foss.heptapod.net/magic-lantern/magic-lantern/-/merge_requests/720/diffs?commit_id=035648f634448331cc93af393ffbb70cc05daf34

Does anyone have an iso-reseach build with this code change?
Any other way to get iso-reseach working on the 50D?
Any way to install hdmi_output.mo in the lua_fix release?

Thanks

Same with Canon 5D ii. has someone a solution???

liteo

Hi @JogaDann

I had the same issue with my 5D2 but managed to make it work.

I had to use a custom crop_rec_4k release (official release of crop_rec_4k for 5D2 doesn't exist) mentionned here https://www.magiclantern.fm/forum/index.php?topic=19336.msg223333#msg223333
The bitbucket to download the release no longer exists but can be found here https://bitbucket-archive.softwareheritage.org/new-static/e6/e6b5dbd1-408b-4864-b984-289cb9371366/attachments/

Dobfek

Hello Together! As far as I know, using HDMI output drops a heavier load on the CPU. Would it be possible, to toggle the HDMI output with a push of a button? I would use a color calibrated HDMI monitor only to check if the aperture and the focusing is right, but I would not use the HDMI monitor during recording, to eliminate bad frames. Do you think that it would be possible?

Walter Schulz

Quote from: Dobfek on June 20, 2022, 05:23:20 PM
Would it be possible, to toggle the HDMI output with a push of a button?

I think this button is already there and located on your HDMI monitor.

xthomasm

First of all, thanks for this.
I own a T5i that was sitting in my closet so I decided to use it as a webcam as I'm working from home now.

I have stumbled upon all of the hurdles that came with this idea:
1. I tried installing the EOS Webcam Utility, and although it shows a beautiful HD image, it is choppy as hell. I tried all of the different options in OBS, but I always get a choppy, lagged video out.
2. I then proceeded to discover Magic Lantern for clearing the output and forcing the camera to stay on beyond the 30-minute mark. So I bought a cheap HDMI capture device, downloaded the version of ML that comes out of the box, and... the camera only outputs a 720x480 image. No lag, no choppiness, but a low-resolution video nonetheless. I thought it was the video capturing device for a second, but then I discovered that the T5i did that on purpose. A was losing faith in this.
3. So, I was between a crisp image that was very laggy and delayed (EOS software) and a low-resolution image that was snappy (Magic Lantern). Since I was beginning to see what the community of ML is all about, I decided to Google the possibility of "forcing" the camera to output 1080p, and as luck would have it, you guys did it. I tried plugging the camera directly into my monitor and it worked using HDMI: ON, Signal: Interlaced, System: NTSC, and Force 1080i: ON.

So, the thing is: My monitor has two HDMI inputs, one for 4K and the other for 1080p. Only when I plugged the camera at the 4K out was the camera able to output in 1080i. When plugged into the 1080p input, it outputs the default 720x480 resolution.
Similarly, when I connect the camera HDMI output to the capturing device and then plug it into my computer, the camera continues to output the 720x480 image... Very strange.

Might you guys know what's happening? I tried all of the combinations of configurations on the hdmi_out.mo settings, and it just doesn't work. It's like I have to "force" the resolution somehow in the capturing device, but it doesn't seem to have that functionality.

DrSnug

Hello, I have a Canon eos 600D. Currently I have bought a DJI Gimbal Ronin RSC 2. The Raveneye was also included in the set. Unfortunately, the image transfer does not work. I know that the Reveneye is incompatible according to DJI. But that is because of the resolution that the camera outputs. I was hoping that with ML I could change the output to have a 1080p output. Googling and this thread didn't get me there though. Controlling the shutter and other settings through the app works, it's just that the image won't transfer.
Do any of you have any ideas? Thanks a lot

theBilalFakhouri

Quote from: DrSnug on January 04, 2023, 11:59:07 AM
I was hoping that with ML I could change the output to have a 1080p output.

Hello, AFAIK 600D does only support 1080i output or 480p.
This module can get you 1920x540p, but it doesn't work very well on DIGIC 4 models (like 600D, please read the first post for more info).

Currently ML can't enable 1920x1080p output, I don't know how to do it.

Does the mentined device accepts 1080i or 480p stream?

cermurat

hi. can you update the download link. i have Canon 550D. I get 480p video in obs with video capture card. I hope it will be a solution.

mario1000

Quote from: cermurat on February 11, 2023, 08:05:19 PM
hi. can you update the download link. i have Canon 550D. I get 480p video in obs with video capture card. I hope it will be a solution.
The download link is still valid: you can find it at the bottom of the first post...

iaburn

Just tried the module on the 6D, crop mode disabled, and the "System" option works (switched between 1080i@60Hz and 1080i@50Hz), but my monitor loses the image intermittently when "Signal" is set to progressive.
No need to force 1080i because it seems to be the standard for the 6D

Walter Schulz

There are reports of cams locked in states like VGA. Therefore forcing 1080i makes sense.

iaburn

Quote from: Walter Schulz on April 04, 2024, 08:36:09 PMThere are reports of cams locked in states like VGA. Therefore forcing 1080i makes sense.

Now that you mention, when I decided that I didn't need the module, after switch it off, the resolution was very low, like VGA.
After restarting the camera without the module, it was normal again (1080i)

reddeercity

Quote from: liteo on April 27, 2022, 10:06:40 AM.......
The bitbucket to download the release no longer exists but can be found here https://bitbucket-archive.softwareheritage.org/new-static/e6/e6b5dbd1-408b-4864-b984-289cb9371366/attachments/
Good find ! Very helpful to me, even-though most of this is mind old development info etc.......
i don't have all the log in one place , Thanks
special the TTL.Log file it has address to compressed raw on D4 cams , i can check that against my code
hard coded address , but i has a suspicion its a changing address (not sure but the Log will help cause i won't have to capture no log , which take a lot of time)