Page 1 of 1

RVMedia 5.0

Posted: Wed Jun 29, 2016 10:55 am
by Sergey Tkachenko
RVMedia 5.0

RVMedia 5.0 has been released.
This is a free update for customers who ordered RVMedia 1.x - 4.x

Trial version can be found here: http://www.trichview.com/download/
RVMedia brief description: http://www.trichview.com/features/rvmedia.html
RVMedia online manual: http://www.trichview.com/help-media/


Sound

Previously, TRVMicrophone used the system default audio input device (usually, it is a microphone). In the new version, you can choose the device using the properties: AudioInputDeviceIndex, AudioInputDeviceCount, AudioInputDeviceList.

New events are added (TRVCamSender.OnEncodeAudio and TRVCamReceiver.OnDecodeAudio). You can use them is you want to encode and decode audio data manually.

Local web cameras

RVMedia can decode different formats of video from local web cameras (YV12, YUYV, YUY2, YVYU, UYVY, NV12, etc.) itself. Previously, it relied on a converter that converts these formats to RGB (it may be installed or not).

In addition to choosing from a list of video modes supported by a web camera, the new version of RVMedia provides a simplified way to choose video resolution, by assigning to TRVCamera.VideoResolution property.

Motion detection

RVMedia included a motion detection mechanism, but it was hidden.
It is used internally in TRVCamSender to send only changed fragments of video frames.
In this version, we published this mechanism as TRVMotionDetector class, you can use it in your applications.

FFmpeg

In this year, FFmpeg 3.0 was released. In this release, its API was changed, this version of FFmpeg could not be used in RVMedia 4.0.
This release supports FFmpeg 3, as well as 2 and 1.
Also, correction for using FFmpeg in 64-bit projects were made.

IP cameras

In this release, we added support for newer (H.264) Foscam cameras, including configuration and movement control. Older versions of Foscam cameras are supported as well.
Note: H.264 support in IP cameras requires FFmpeg

Media server

In this version, we added support for named and password-protected groups on the media server (TRVMediaServer component).
Groups may be used to implement chat rooms.
To-do: this version does not support group deletion, it will be implemented in future.

Delphi and C++Builder support

This update supports Delphi and C++Builder 10.1 Berlin.
A help file is integrated in RAD Studio XE8, 10 Seattle, 10.1 Berlin (F1-help and menu "Help | Third-Party Help")
In this update, we changed a structure of packages.
Previously, we used the following scheme:
- for C++Builder, a single package, for example RVMediaCB10.cbproj
- for Delphi, two independent packages: 32-bit designtime package (e.g. RVMediaD10.dproj) and independent 64-bit runtime package (e.g. RVMediaD10_64.dproj).
In the new version, we separated packages on runtime and designtime:
- for C++Builder, runtime 32-bit package (e.g. RVMediaCB10.cbproj) and dependent designtime package (e.g. RVMediaCB10_Dsgn.cbproj)
- for Delphi, runtime 32&64-bit package (e.g. RVMediaD10.cbproj) and dependent designtime package (e.g. RVMediaD10_Dsgn.dproj)

Because of this change, we highly recommend to uninstall the previous version before installing a new one (otherwise, unused *_64 packages will remain in the system)

Previous version
http://www.trichview.com/forums/viewtopic.php?t=7052

Posted: Wed Jun 29, 2016 11:03 am
by Sergey Tkachenko
Changes in demo projects

Changes in all demos
Some changes in properties and events were made, so the demos are updated accordingly. See http://www.trichview.com/help-media/ for additional information.

Cameras\MotionDetect
The old MotionDetect demo that implemented a simple (and not very good) motion detection method is moved to MotionDetect_Old folder. It's still usable as an example of manual processing of video frames.
A new demo is added in MotionDetect folder. It uses TRVMotionDetector class.
Image

ClientServer\VideoChats\ChatRooms\
This demo works with the same server (Cameras\VideoChats\Server\) as other VideoChat demos.
It shows
- how to use named and password protected chat rooms
- how the room creator can choose the user who will transmit video to all other room visitors.
The login form of this demo looks like this:
Image
You can see a list of available chat rooms on the server. Green color shows rooms created by this client. In this demo, creators become moderators of their rooms.
When the user enters the chat room, the following window appears (for non-moderators). The user can check "I want to transfer video", and his/her name will be colored in green in the list of room visitors.
Image
The moderator can choose to transmit his/her own video, or choose from "green" users.
Image

ClientServer\VideoChats\

In all video chat clients, we added a combobox that allows selecting a microphone (or another available audio capture device):
Image
(on this screenshot, you can see two devices: microphone and line in; this screenshot was made in Russian version of Windows, so devices have Russian names)

Cameras\MediaTest\ (_Delphi and _Lazarus)
A combobox for choosing video format is added, it lists MJPEG and H.264.
When you click "Search Camera", the application searches for MJPEG or H.264 cameras at the specific host:port, depending on the choice.
Note: H.264 cameras are supported only if FFmpeg is available.

Posted: Fri Sep 30, 2016 5:45 am
by Gonwai
The motion detector is now really good. I like that you can make it very sensitive by changing how many detected pixels need to change before it detects motion.

Posted: Fri Sep 30, 2016 5:47 am
by Gonwai
I was going to ask if there was a way to make the motion detector only look out for certain stuff. Maybe by the colour of the pixel. For example if you have a pond with 5 red fish and one blue fish to make it only detect the blue fish?

Is something like that possible?

Posted: Fri Sep 30, 2016 6:51 am
by Sergey Tkachenko
In the current version - no.
But it looks like it's very simple to implement.
One of the base functions for a motion detection is a comparison of two pixels. If we add weights for R, G and B colors to this function, we can implement a selective motion detection.

We will test it, and probably include in the next update.