RVMedia 10.2

RVMedia 10.2 – FFmpeg 6

We’ve released RVMedia 10.2

A trial version can be downloaded from https://www.trichview.com/download/

In this update: FFmpeg 6, drawing using OpenGL and Skia, improved noise reduction, new demo projects.

FFmpeg 6

Since this update, RVMedia supports the newest FFmpeg version: 6.
FFmpeg has breaking changes only in major releases. This means that all 6.x releases of FFmpeg are supported.
RVMedia still supports all old versions of FFmpeg (an available version of FFmpeg is auto-detected)


In VCL and Lazarus version, you can choose a graphic engine for drawing video viewers (TRVCamView.RenderModeTRVCamMultiView.RenderMode properties).
In FireMonkey, RVMedia always uses the form’s drawing engine.

The code for drawing video viewers using various graphic engines is completely rewritten. It is removed from the video viewer units and moved to a separate painter classes.

OpenGL drawing was once supported in old VCL versions of RVMedia. RVMedia 10.2 restores, optimizes and improves OpenGL support.
Now it is available not only in VCL, but also in Lazarus version of RVMedia (Windows platform).
The main reason for using OpenGL is drawing scaled video frames with use of a graphics processing unit (GPU) instead of a central processing unit (CPU).

A new rendering mode is added: Skia. Unlike OpenGL mode, Skia is used only for drawing video frames. All other content is still drawn using standard Windows GDI functions.
RVMedia does not turn GPU features in Skia on, so frames are still scaled using CPU (I think it does not make sense to use OpenGL via Skia, since RVMedia can use it directly).

  • Skia4Delphi (included in Delphi 12; can be installed in older versions of Delphi, starting from XE7)
  • MRVCamViewSkia unit must be added to the project

DirectX drawing is removed, since it never worked as good as it should.

TRVCamView.FrameScaleQuality now works in all rendering modes: Windows (“software”), OpenGL, Skia. You can choose fast low-quality scaling methods to reduce CPU/GPU usage.

New property: TRVCamMultiViewer.Viewers[].AudioViewerColor defines a background color for microphone viewers (if they are displayed)

This update also includes several fixes and tweaks, such as drawing overlapping video viewers on TRVCamMultiView, and painting in high-DPI display modes.


noise reduction feature is greatly improved. Now you can not only turn it on/off, but you can specify a level of noise reduction.
New properties: TRVMicrophone.NoiseReductionLevelTRVAudioPlayer.NoiseReductionLevel
The recommended range of these properties is 0..100 (although, you can use greater values). 0 means no reduction; higher values mean greater reduction (but can lead to sound distortion). The default value (20) is small, and may be not enough for noisy sound sources.

I added a trackbar for a noise reduction level in Recording\AudioRecorder\ demo, and in audio options for of all ClientServer\VideoChats\ demos.

Unlike all other microphone settings, noise reduction controls are not disabled when recording. You can change settings and listen the result immediately.


New event: TRVCamRecorder.OnGetImage allows modifying video frames before writing them to a file.

Demo projects

New demo projects for C++Builder VCL (from XE2 to 12), in Demos\CBuilderUnicode\ folder. This update includes only two demos: Cameras\WebCamera\ and Cameras\IPCamera\. More demos will be converted to C++Builder in future updates.

New demo: Cameras\IPCamera\ (in 4 versions: Delphi VCL, Lazarus, C++Builder VCL, Delphi FireMonkey). This is a simple demo dispaying video either from the specified video URL or from the specified camera address (host : port). Cameras\MediaTest demo already has this functionality; however, MediaTest is an overcomplicated demo; and I wanted to create a simple demo showing basic functions.
You can see a screenshot of this demo used in the collage at the top of this post.

Share this article