back to top

What Is HDR Photography (And How to Use HDR Correctly!)

A- A+

Subscribe Below to Download the Article Immediately

You can also select your interests for free access to our premium training:

Your privacy is safe. I will never share your information.
Related course: Photography for Beginners

High Dynamic Range or HDR can bring our beautiful details. But there is a thin line between an excellent HDR image and one that is overdone.

As a photographer, you only have full control over the light in your studio. Everywhere else, you have to work with the natural light.

With light comes contrast. The difference between the deepest shadows and the brightest highlights defines the dynamic range.

HDR helps to maximize the dynamic range in a highly contrasted scene. It is useful for outdoor scenes interior real estate images. It can also add a fantasy element for creative photo manipulation photography.

HDR image of Venice canals
Photo by Federico Beccari on Unsplash

What Is HDR Photography?

High Dynamic Range photography is the method of fusing images to create a final photo. The way we do this is to capture many photos and then stitch them together.

Each image captures the scene at different exposures. When merged, the picture provides an overall correct exposure.

We need to take at least three images. One to capture a mid-range exposure shot, one that meters for the highlights, and a third for the shadows.

You can take many images, as long as the number is divisible by 3. These images show as a plus or minus on the Exposure Value Meter. +3 and -3 is a common choice.

For example, if you capture three images, your shots would be 0, +3 and -3. +3 equates to three stops of light, increasing the exposure. -3 is reducing the median exposure by three stops.

For seven images, your range could look like this: -3, -2, -1, 0, +1, +2, +3.

Your camera will most likely allow you to change the settings to capture three images in this manner. Other cameras might have a special section for HDR imaging, allowing you to set up your shots as you wish.

Abstract colorful photo with 3D effect

When Would You Use HDR Photography?

It is late afternoon and finally, the sunset you are after begins. The sky is a majestic display of red, yellow, orange and blue colors. Clouds light up with warm undertones. The city below is lighting up. Sunrise and sunset make for perfect HDR images.

Because sunsets don’t last long, you got in position early. With the camera set up and the remote shutter release in your hand, you wait for the right moment and… click!

Most often than not, what comes next is a disappointment. Your photo looks nothing like the scene you saw with your eyes.

Depending on how you set your exposure (manual or auto), you can find that:

  • The sky is very bright and the foreground quite dark with little details
  • Your foreground is well exposed, but your sky is completely washed out
  • The sky is perfect, but the foreground is solid black

In the image below, it is clear you can’t capture the whole dynamic range in one single photo. Lightroom highlight warning shows up in the sky. This shows areas that are almost clipped to pure white. There are no details there to recover.

And the histogram shows there are almost no middle tones. High dynamic range can solve the problem.

Triptych photo collage showing a cityscape and lightroom screens.
The whole DR in this sunset cannot be captured in one single image.

Understanding Natural Light and Dynamic Range

As a rule of thumb, a soft and diffused light, like during overcast days, will reduce the contrast in the scene.

The cloudy sky, in fact, acts as a giant softbox by diffusing sunlight and scattering it all around. As a result, the contrast between shadows and highlights (the dynamic range), reduces.

On a sunny day with a clear sky, the light is hard and direct. It casts deep black shadows while objects in full sunlight are very bright. This high contrast scene has a great dynamic range (DR).

At sunset, the foreground is much darker than the sky, and you cannot have correct exposure for both. Such sceneries can have an extreme DR.

In short, if you are not photographing in a studio, you will be often confronted with scenes of high contrast. These can improve with high dynamic range.

Camera Sensors and Dynamic Range

Camera sensors are electronic devices. They react to light by converting it into electrical signals. Sensors have a minimum and maximum light sensitivity.

Too little light and the sensor will see nothing. Too much and it will get blinded. Modern sensors are capable of dealing with DR of 12 stops or more.

A stop is a measure of the change in the amount of light available. Every time the amount of light hitting the sensor doubles, you gain a stop.

Every time the light is halved, you lose a stop.

Camera sensors for HDR photography
DXO Mark provides values of the dynamic range of a wide range of cameras. New sensors have better dynamic ranges than older ones.

How Do I Make HDR Photos?

Shooting for HDR is not tricky. It’s better to be safe than sorry. You should shoot for HDR when presented with a high contrast scene. You can always decide later what to do with your images.

Estimate the Dynamic Range

Can you capture all the details in the scene in a single image?

To know that, you can use your camera light meter. Place it in spot meter mode to get a measure of the brightness of different parts of the scene.

This way, you have an idea of the DR you need to capture. You can also use your mobile with a light meter app, such as the iOS Light Meter app.

In the three images below, I show the darkest area, mid-exposure and brightest one.

To expose the street in the deep shadow (photo 1), I need a shutter speed of 1/200th of a second. For less deep shadows (photo 2), 1/800th of a second is enough.

This means those lighter shadows are 2 full stops brighter than the darker ones.

The sky (Photo 3) has the right exposure at 1/5000th of a second. The sky, thus, is almost 5 stops (or EV) brighter than the deepest shadows. This is, more or less, the DR of the image.

Estimating the dynamic range of a scene

HDR vs Non-HDR

Modern sensors can cope with 12-stops dynamic ranges or more. You should be able to capture the whole 5EV dynamic range, right?

Unfortunately not. At least if you want some good image quality.

Let’s consider a single exposure and say this exposure has value 0 EV. Next, let’s create an HDR version by combining three exposures taken at -2EV, 0EV, and +2 EV.

After editing them with the same settings in Lightroom, let’s compare them in the image below.

A diptych of the same street scene shot at a single exposure 0EV (top) vs -2EV, 0EV and +2EV exposures (bottom)
Single exposure 0EV (top) vs HDR from -2EV, 0EV and +2EV exposures (bottom).

At first, the two images are very similar. But the HDR image presents a little less contrast. It has more detail in the shadows, and the colors are more vibrant and saturated.

You could say you need to brighten up the shadows in the single exposure. If you reduce the contrast and increase saturation, will you get the same results as the HDR shot? Let’s see a 100% crop of the two images:

Two images of a blue car on the street. 100% crop from the single exposure 0EV (top) Vs HDR from -2EV, 0EV and +2EV exposures (bottom).
100% crop from the single exposure 0EV (top) Vs HDR from -2EV, 0EV and +2EV exposures (bottom).

As you can see, the HDR shot (bottom) is cleaner and more detailed. Lifting the shadows more in the single exposure will degrade the image even more.

Even with the modest 5EV dynamic range, a single exposure will have a far worse image quality. Especially when compared to an image obtained by combining multiple exposures. Here’s a more technical explanation of why this happens.

Capture a Series of Differently Exposed Images

You can create HDR images on a single file. But it is best to rely on multiple exposures.

Your sequence should cover a great DR. Better to take a few extra images than realize later that you needed more.

Also, you do not need to collect the same number of underexposed and overexposed images. It depends on the scene you want to photograph.

For sunsets, it may be better to use more underexposed images. This will capture all the details in the bright sky.

Multiple photographs of a cityscape with different exposures. All photos were taken 1EV apart.
For my urban sunset I need to underexpose 4EV to capture all the details in the highlights. I could have stopped at +2EV for the foreground. To play it safe, I pushed to 3 EV. All photos were taken 1EV apart.

Pro Tip: Before starting a new sequence, take a photo with your hand visible in the frame. This will help you see the different sequences later.

You will be combining different images together. Thus, you should have as little movement as possible between the frames.

Set up your camera on a tripod. Use a remote shutter to avoid camera shake. Most software allows you to combine handheld images by performing an image alignment.

Handheld is only possible when your slowest shutter speed is faster than your focal length. Otherwise, you’ll end up with blurred images.

It is also best to photograph a still scene, without fast-moving clouds, people or traffic. A certain degree of movement among the different exposures is OK.

You can correct it with a de-ghosting procedure, available in any HDR software.

In the image below, the clouds moved, creating patches in the sky (top image). I then removed this by de-ghosting (bottom).

Two photos of the same cityscape. Comparison between simple HDR fusion (top) and fusion with deghosting (bottom).
Comparison between simple HDR fusion (top) and fusion with de-ghosting (bottom).

Camera Settings for HDR Photography

Some phone and compact cameras have a built-in HDR mode. You can use that, but usually, this only works if you save the images in jpeg format. Plus, you have little to no control over the whole process.

Here’s a short checklist for HDR camera settings:

  • Set your camera to save the photo in RAW format and to manual mode;
  • Use the lowest ISO setting working for your situation. Increasing the ISO will reduce the DR the sensor can record;
  • Keep the same aperture for all the photos, as this will affect your depth of field;
  • Note the suggested shutter speed for the 0EV exposure;
  • Set the shutter speed to the most underexposed image you need (e.g. -4EV).
  • Change the shutter speed in steps of 1EV (double the shutter speed) after each photo. Continue the sequence until you get the brightest image you need.

Some cameras have automated bracketing functions. These are great if you want to limit yourself to the +/-2EV range in 3 to 5 photos. This depends on the settings and the camera.

Best Scenes for Shooting HDR

HDR is not only useful for sunsets. It’s a technique you can use with any high contrasted scene.

A compelling sunset over a countryside road and fields

Interior Photography

Interior photography is not as simple as it sounds. Natural light from windows with a bright outside view calls for HDR. The same goes for an uneven illumination inside.

A bedroom interior shot

Nightscapes

Nightscapes in the city are great situations for the HDR treatment. This is due to many dark areas and bright lights. Even far from the city, HDR is useful at night.

In the image below, it was not possible to get everything in one shot. The details of the colored lights and the interior of the building don’t work well with the shadows.

Instead, I took eight different exposures and combined them in one HDR image. Due to the long exposures needed, I could not de-ghost all the cloud movement.

Mons des Arts (Brussels) by night. (Camera: Olympus OM-D EM-10).
Mons des Arts (Brussels) by night. (Camera: Olympus OM-D EM-10).

Weather

A dramatic sky goes a long way in adding interest to your landscape. But bad weather usually means dramatic contrasts. Especially when comparing the sky and the foreground. HDR photography allows you to exploit this great DR.

Spectacular high angle shot of lightning over a cityscape

Pros and Cons of Using Filters for HDR Photography

Landscape photographers like to get things “right” in camera. Their trick is the Graduated Neutral Density filter or GND.

As I mention in this article about filters, GNDs are square filters mounted on a holder. This allows you to rotate them in relation to the camera body and to slide them up or down in the holder. Those filters have a dark part and a clear part, with a transition in the middle.

Their use is simple. Place the darker part on the brighter area of your view (usually the sky). Leave the clear part on the dark foreground and place the transition around the horizon.

The filters come in different strengths. Their job is to balance the exposure across the frame. This way, you can capture all the DR in one photo.

These filters work well but are most useful for landscapes with a flat horizon, such as seascapes.

For situations such as interior and architecture photography, filters are not as useful as HDR. Furthermore, a good set of filters is much more expensive than any good HDR software.

Rectangular GND filters.
Rectangular GND filters.

HDR Photography Software

Before concluding this article, here’s a useful list of software for HDR photography.

Adobe Lightroom and Photoshop

Lightroom and Photoshop have a Photo Merge mode. This allows you to combine different photos into a single HDR image.

You won’t have a lot of options to tweak the HDR, but you can auto-align the images. This feature is useful for handheld sequences. You are also able to apply auto settings to the final exposure and choose strengths for the deghost.

The HDR Photo Merge panel in Lightroom.
The HDR Photo Merge panel in Lightroom.

Photomatix/Photomatix Pro

Photomatix is the big guy in the HDR world. You can move your image from Lightroom and reimport the HDR image automatically.

It has many options and presets. You can choose different methods to create HDR (detail enhancer, tone mapping, tone compression, tone balancer, etc.).

Every one of these methods will create a different, basic HDR image that you can tweak in many ways.

Photomatix Pro comes with a plugin for Lightroom called “merge 32 bit”. This will create a basic 32-bit HDR image you can edit in Lightroom.

Phone Apps For HDR Photography

Many phone cameras have a HDR mode function in their default camera app. But, many dedicated apps are available, like True HDR and Pro HDR X for iOS.

Why HDR Photography Has a Bad Reputation

One problem with HDR photography is that it has acquired a bad reputation.

HDR was particularly popular among photographers some years ago. Unfortunately, with automated tools, the internet became flooded with bad pictures.

They show surreal, fake, oversaturated and gritty HDR pictures.

Tasteless grainy and oversaturated shot of the Ruins of Abbey Aulne (Belgium), Interior.
This is a classic example of too much HDR processing.

The problem is that it is easy to over-process HDR images. There are many presets available in automated HDR software. They produce surreal and overcooked images.

In time, those images became synonymous with HDR mode. But HDR is not a style, it’s a technical tool. The goal of HDR mode is to expand the dynamic range of your pictures.

Good HDR photos are subtle and keeps the natural, yet richer, look of your images. Furthermore, you don’t need to remove all contrast. Contrast is what keeps things natural. The way you then manipulate the picture has little to do with HDR. You can opt for realistic editing, or you can go wild.

Natural looking HDR photos of an urban sunset.
A natural-looking HDR version of the problematic urban sunset shown before.

Conclusion

HDR does not have to produce gritty, surreal and overcooked images. It’s a powerful photographic technique that can come in handy for helping you photograph your subject in all its glory.

Check out our post on how to use tone mapping next!

Save this article to your Pinterest profile to access it later!

Leave a Reply

Your email address will not be published. Required fields are marked *

[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]