back to top

How Does a Camera Work?

A- A+
Related course: Photography for Beginners

Have you ever wondered what is a camera, and how does a camera work? How does that piece of delicate machinery work when you take a photograph? You are not alone.

Cameras have evolved a lot in the past one-and-a-half century. Photography has changed drastically. Today’s modern cameras are the result of countless years of development, but the base principles remain the same.

So how does a camera work? Here’s our guide.

A camera with miniature figurines around it [Note: ExpertPhotography is supported by readers. Product links on ExpertPhotography are referral links. If you use one of these and buy something, we make a little bit of money. Need more info? See how it all works here.]

What Is the Role of Light?

If we want to understand how does a camera work, we need to know how does light work. Photography would not exist without our understanding of light.

Without diving further into wild territories of physics, let’s make the basics clear.

Light travels in a straight path. It doesn’t take curves (at least practically for us, photographers). It gets reflected and absorbed.

For our eyes and cameras, light is a wave. It has very much the same properties as sound – it varies in wavelength, frequency, and amplitude. It differs in energy level.

The task for the photographer is to collect and capture the light in their own taste and form.

Core Concept of Cameras

Aside from the very first pinhole cameras (which don’t have glass), the two main parts of cameras are the lens and the light detector.

The camera lens collects light and projects it onto a light detector surface – film or digital sensor.

Then, through various ways of processing, you get your final image that is shaped to your taste.

Photography is all that happens between these steps – and even before that.

And you, the photographer, have control over it.

The Lens

The lens is the first encounter of the light with the camera.

Light passes through the lens. Through different optical formulas, it crafts the way the image is projected. It is one of your most powerful tools of expression – so it’s vital that you understand how it works.

Optical Structure

Your camera lens is actually not one lens. It’s made up of numerous single lenses and lens groups.

The structure is the result of meticulous designing and testing. There are some standard formulas, like the 50mm f/1.8 or f/1.4. These are very similar throughout different manufacturers and have been developed long ago.

Some advanced and extreme camera lenses have formulas that weren’t possible until only recently.

The optical formula of a lens determines the image it can project onto a sensor.

Diagram showing the anatomy of a lens

Focal Length

In simple terms, focal length defines the amount of zoom. A lower focal length gives a wider angle of view. A higher – “longer” – focal length gives a narrower crop of the scene.

In technical terms, the focal length is the distance between the point of convergence of the lens and the sensor or film.Diagram showing focal length

It’s practically impossible to design a lens with its point of convergence before the front element, but it can be behind that. This means that telephoto lenses must actually be longer  (with the exception of mirror lenses). Yet, wide-angle lenses can be surprisingly long.

Zoom lenses change their point back and forth. Prime lenses have theirs fixed, and the elements only move for focusing.Diagram showing zoom lens

Aperture

The diameter of the lens determines the maximum amount of light that can pass.

In most lenses, there is an iris. The iris is used to narrow down the diameter. It works like the pupil in your eye: the narrower it is, the less light it lets in.

Also, with tighter iris comes a deeper depth of field and less background separation.

The aperture value is given in the form of F-stops. The F-stop is a ratio. You can calculate it by dividing the focal length with the diameter of the lens (at the iris).

For example, the F-stop of a 50mm lens with a 25mm aperture diameter is f/2.Diagram showing aperture size

Of course, when you zoom, focal length changes. In lenses with a constant minimum aperture value – for instance, a 24-70mm f/2.8 – the aperture gradually opens up as you zoom in. This keeps the ratio the same throughout.

Focusing

Like your eye, a camera lens sees the world in focal planes. These planes are parallel to the front element of the camera lens and (in most cases) to the sensor. The exceptions are tilt-shift and extremely wide-angle lenses.

To get a certain plane in focus, a lens element must move inside the lens. You can control this element with autofocus or manually by turning the focusing ring.

There is a focusing range that each lens is capable of. The closer the focusing element gets to the sensor, the further it focuses.

Except for macro-only lenses, most go to infinity focus. Infinity is the plane beyond which practically everything is in perfect focus. Physically it’s possible to go further – but it doesn’t make sense since, after that, the image gets blurry again.

When shooting close-up, the focusing element gets away from the sensor. Hence, it’s possible to make any non-macro lens capable of macro by adding extension tubes between the body and the lens.

Usually, the focusing ring is physically connected to the focusing mechanism inside the lens. In that case, manual focus gives you direct control. In some lenses, there is only electronic control.

This happens in heavy lenses (like Canon’s 85mm f/1.2 II). In tiny constructions, where a normal focus ring would be impractical anyway (like the Canon 40mm f/2.8 pancake lens), it’s also often used.

Stabilization

In some modern lenses, you will find an element that actively stabilizes the motion of the camera. This part is usually a structurally distinct block at the back with one lens.

With the help of a gyroscope, it meters and counteracts your handshake and other movements.

The naming of stabilization systems differs from brand to brand. Canon calls theirs IS (Image Stabilizer), Nikon has VR (Vibration Reduction), Sony has OSS (Optical SteadyShot), and so on. They all do the same for the most part.

Weight and Ergonomics

The size and weight of lenses depend on plenty of factors.

Usually, faster aperture means bigger lenses. Wide zoom range also results in longer lenses when zoomed in, but they are often retractable.

Also, the bigger the intended sensor size is, the bulkier the lens has to be.

Stabilization also comes with higher weight.

Most often, manufacturers design their lenses to provide great balance with their cameras. But in some cases, this is not possible. Fast telephoto and super-telephoto lenses (like the Canon 200mm f/2) and fast ultra-wide-angle lenses (like Sigma’s 14mm f/1.8) must have huge front elements, so they may feel unbalanced.

Connection to the Camera Body

In this sense, there are two types of camera lenses: interchangeable and fixed to the body.

Fixed lenses are mostly found on consumer-level compact and bridge cameras. Some brands, for instance, Leica, are making top-level fixed-lens cameras.

There aren’t many options with fixed lenses – you get what you get.

However, on DSLRs (Digital Single-lens Reflex) and MILCs (Mirrorless Interchangeable Lens Camera), you can change the camera lenses independently from camera bodies.

For connecting their lenses to their camera bodies, each camera manufacturer (or alliance) has standard lens mounts.

Besides holding the lenses safe and steady, each mount has an electronic protocol as well. This is necessary to provide power for autofocus and stabilization. Data links also transfer aperture, focus distance, zoom, and general lens information.

Most notable camera mount types include the Canon EF/EF-S (DSLR),  EF-M (cropped-sensor mirrorless), and RF (full-frame mirrorless), as well as Nikon’s F (DSLR) and Z (mirrorless), Sony’s A (DSLR) and E (mirrorless), and much more.Image of the Sony E, Canon EF and Nkon F cameras

Cameras

After going through the lens, light arrives at the camera, where it gets detected by a sensor or film.

Viewfinder

All DSLRs and many mirrorless cameras have viewfinders.  It can be optical or and electronic.

In a DSLR digital camera with the optical viewfinder, once the light arrives from the lens, it bounces onto a semipermeable mirror. Most of the light then reflects up to a pentaprism and then to the viewfinder.

Some of the light reflects downwards through a secondary mirror into the autofocus sensor.

Diagram showing how the viewfinder works

In a mirrorless camera, there is no optical connection between the lens and your eye. The light always goes directly onto the sensor.

From the sensor, the live view is transmitted digitally to the electronic viewfinder (EVF) or to the back screen.Diagram showing the mage sensor in a mirrorless camera

Shutter

The shutter is the mechanism that lets the light onto the film or sensor for a set amount of time (the shutter speed).

Before the digital camera age, the only option was a mechanical shutter. They physically move an obstacle in the way of light.

Rolling mechanical shutter, which is found in most cameras, has two curtains. When you press the shutter button, the first curtain slides up and lets the light onto the camera sensor. Then, after the set time of the shutter speed, the second curtain shuts. The sensor is blocked again.

One of the rolling shutters’ disadvantages is that you can’t use a standard flash below a certain shutter speed. This is usually around 1/200th of a second. Below that, they are not exposing the whole frame at the same time.

There’s a window between the curtains that travel from on side to the other.

In turn, a flash is instantaneous, so if you drop below that speed, only a band of the frame will be lit. You can avoid this problem by using High Speed Sync.
Diagrams showing curtain actions on a shutter

Electronic shutters are a product of the digital camera era. They are used for quick, continuous image readout.

A rolling electronic shutter is found in almost every digital camera. It works by gathering the data from the sensor in blocks (usually, rows of pixels), proceeding downwards.

This allows for silent shooting and very low shutter speeds, in some cases 1/32000th of a second. The downside is that fast-moving subjects appear distorted because of the asynchronous readout.

Live View and video recording both utilize electronic shutters in consumer-level cameras.

In some advanced cameras, you will find a global electronic shutter. It reads the data from the whole frame simultaneously, solving the problem of banding distortion. It’s mostly used for professional video recording.

Sensor

Digital sensors are composed of pixels. Pixels are tiny solar cells that convert light into electricity.

Most digital cameras feature a standard single-layer CMOS or CCD sensor. CMOS is a newer technology that allows for individual pixel readout and low power consumption.

Pixels are laid out in an arrangement called the Bayer mosaic using color filters. The Bayer mosaic consists of blocks of four pixels, two green, one red and one blue.

Since each pixel is only sensitive to its own color, the end result is an image with scattered red, green, and blue dots.Illustration of Bayer arrangement

To get gradual tones and a smooth photograph, the processor or your editing software will have to perform debayering.

ISO Sensitivity

In film cameras, you swap the film for a different sensitivity film. In digital cameras, it’s a different process.

When you (or your camera) set the ISO value, multiple things can happen depending on your camera and the exact ISO value.

Cameras with CMOS sensors (most digital cameras) have a tiny amplifier for each individual pixel. After the frame is exposed, it amplifies the pixels to a higher level, according to the ISO.

Until a certain value, usually ISO 1600, this is the only amplification.

Beyond that, ISO is a digital tag that is embedded in the raw file or a digital amplification for jpg files.

Digital Conversion and Processing

After readout from the digital camera sensor and going through the amplifier, the data is converted to digital data. This is the task of the analog-to-digital converter.

Most modern cameras convert to 16-bit but using only 14 bits of that. The extra 2 bits allow for more flexibility in post-production and filtering.

14 bit means that for every pixel there are 16.384‬ possible values. This results in immense color and tonal range in modern digital cameras.

The pixel data then proceed to the image processor. The processor performs several algorithms, filtering, debayering, and compresses if you’re choosing jpg output.

The final image is then written onto your card.

Conclusion

You now have a deeper understanding of how do cameras work. You can implement this knowledge in everyday situations, as well as for deciding on difficult technical questions.

Understanding how your camera works opens up more possibilities in using your gear and utilizing its capabilities.

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]
[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]