RVMedia 2.0
Posted: Sat Oct 18, 2014 6:39 am
RVMedia 2.0
RVMedia 2.0 has been released.
This is a free update for customers who ordered RVMedia 1.x
The new features are listed in this topic. Additionally, we added numerous tweaks and fixed many bugs (including several critical bugs).
So, if you tested RVMedia 1.x and was not satisfied with its speed and stability, please give it a second chance.
RAD Studio XE7
This update supports Delphi and C++Builder XE7.
There are two alternative packages:
- RVMediaDXE7.dproj - for Delphi and C++Builder XE7, requires Delphi personality
- RVMediaCBXE7.cbproj - for C++Builder XE7.
Like for previous versions of RAD Studio, the trial contains only RVMediaDXE7.dproj.
A C++Builder-only trial is available on request.
64-bit compilers
Starting from this update, RVMedia supports 64-bit projects in RAD Studio XE2 and newer.
We decided not to include 64-bit units in the trial.
GStreamer support
RVMedia supports GStreamer, both 32-bit and 64-bit versions.
In the previous version, it was possible to play H.264 videos via RTSP and Mpeg-4 movies via HTTP.
In this version, you can use GStreamer to play MJpeg, Mpeg-4, H.264 videos via HTTP or RTSP, any combinations are possible (providing that necessary GStreamer codecs are installed).
TRVCamera introduces a new property allowing to configure GStreamer.
There is a new demo: Demos\Cameras\GStreamer.
The demo Demos\Cameras\8Cams\ (former 4Cams) uses GStreamer too.
GStreamer is optional in RVMedia. Without GStreamer, RVMedia can display MJpeg streams and video in updated Jpeg files.
Receiving video
In RVMedia 1.x, while TRVCamera and TRVCamReceiver used threads, in general it was a cycle: receive - decode - show.
In RVMedia 2.0, these operations are performed in threads: one thread for receiving, one thread for decoding, one thread initiating video displaying.
It allows using multiple processors more efficiently.
In addition, it solves a lag problem, when a source sends video stream faster than a destination can receive them, and the delay accumulates. It can be because of a low bandwidth or because of a slow processing. RVMedia 2.0 can receive data as fast as possible, so, if the network speed is acceptable, there will be no delay accumulation (on buffer overflow, old frames could be dropped without displaying to support correct timing).
When we implemented this feature, we found that there are a lot of buggy MJpeg translations over the Internet - when data are requested too often, they return invalid frames. So we implemented an automatic frame-rate detection for video streams.
Sending video
RVMedia uses its own protocol to send multimedia data via the network.
When sending video, it can send only changed areas; this mode greatly reduces traffic.
However, in RVMedia 1.x the process of finding changed areas was slow for high resolution videos.
RVMedia 2.0 uses a smaller copies of frames for finding changed areas, so this process is now fast even for hires videos.
Sound
We did many tweaks to improve quality of sound read from a microphone.
For example, a filter that cuts of too quiet sound is not applied for a couple of seconds after a loud sound, to prevent cutting word ends.
Previously, sound from microphone was read using a minimal quality (8000 Hz - 8 bits). In RVMedia 2.0 we added properties allowing to increase sound quality (sample rate, bit depth), but now, for a simple voice transferring, minimal settings work ok.
TRVMicrophone now can read sound not only from a microphone, but also from a Wav file.
TRVMicrophoneView can display activity not only for TRVMicrophone, but for TRVCamReceiver (which receives sound from the network and plays it).
TRVCamMultiView optionally displays sound indicators next to videos, so, when implementing a conference, you can see sources of sounds.
TRVCamReceiver now can mix sound from multiple sources properly, it is absolutely necessary for video chats for multiple users.
Localization
Video viewers and traffic meter components are localized. They can display messages in English, Spanish, Russian, Portuguese (Brazilian)
There are not too many messages to translate, but nevertheless.
New translations are available on request.
Previous version
http://www.trichview.com/forums/viewtopic.php?t=6451
RVMedia 2.0 has been released.
This is a free update for customers who ordered RVMedia 1.x
The new features are listed in this topic. Additionally, we added numerous tweaks and fixed many bugs (including several critical bugs).
So, if you tested RVMedia 1.x and was not satisfied with its speed and stability, please give it a second chance.
RAD Studio XE7
This update supports Delphi and C++Builder XE7.
There are two alternative packages:
- RVMediaDXE7.dproj - for Delphi and C++Builder XE7, requires Delphi personality
- RVMediaCBXE7.cbproj - for C++Builder XE7.
Like for previous versions of RAD Studio, the trial contains only RVMediaDXE7.dproj.
A C++Builder-only trial is available on request.
64-bit compilers
Starting from this update, RVMedia supports 64-bit projects in RAD Studio XE2 and newer.
We decided not to include 64-bit units in the trial.
GStreamer support
RVMedia supports GStreamer, both 32-bit and 64-bit versions.
In the previous version, it was possible to play H.264 videos via RTSP and Mpeg-4 movies via HTTP.
In this version, you can use GStreamer to play MJpeg, Mpeg-4, H.264 videos via HTTP or RTSP, any combinations are possible (providing that necessary GStreamer codecs are installed).
TRVCamera introduces a new property allowing to configure GStreamer.
There is a new demo: Demos\Cameras\GStreamer.
The demo Demos\Cameras\8Cams\ (former 4Cams) uses GStreamer too.
GStreamer is optional in RVMedia. Without GStreamer, RVMedia can display MJpeg streams and video in updated Jpeg files.
Receiving video
In RVMedia 1.x, while TRVCamera and TRVCamReceiver used threads, in general it was a cycle: receive - decode - show.
In RVMedia 2.0, these operations are performed in threads: one thread for receiving, one thread for decoding, one thread initiating video displaying.
It allows using multiple processors more efficiently.
In addition, it solves a lag problem, when a source sends video stream faster than a destination can receive them, and the delay accumulates. It can be because of a low bandwidth or because of a slow processing. RVMedia 2.0 can receive data as fast as possible, so, if the network speed is acceptable, there will be no delay accumulation (on buffer overflow, old frames could be dropped without displaying to support correct timing).
When we implemented this feature, we found that there are a lot of buggy MJpeg translations over the Internet - when data are requested too often, they return invalid frames. So we implemented an automatic frame-rate detection for video streams.
Sending video
RVMedia uses its own protocol to send multimedia data via the network.
When sending video, it can send only changed areas; this mode greatly reduces traffic.
However, in RVMedia 1.x the process of finding changed areas was slow for high resolution videos.
RVMedia 2.0 uses a smaller copies of frames for finding changed areas, so this process is now fast even for hires videos.
Sound
We did many tweaks to improve quality of sound read from a microphone.
For example, a filter that cuts of too quiet sound is not applied for a couple of seconds after a loud sound, to prevent cutting word ends.
Previously, sound from microphone was read using a minimal quality (8000 Hz - 8 bits). In RVMedia 2.0 we added properties allowing to increase sound quality (sample rate, bit depth), but now, for a simple voice transferring, minimal settings work ok.
TRVMicrophone now can read sound not only from a microphone, but also from a Wav file.
TRVMicrophoneView can display activity not only for TRVMicrophone, but for TRVCamReceiver (which receives sound from the network and plays it).
TRVCamMultiView optionally displays sound indicators next to videos, so, when implementing a conference, you can see sources of sounds.
TRVCamReceiver now can mix sound from multiple sources properly, it is absolutely necessary for video chats for multiple users.
Localization
Video viewers and traffic meter components are localized. They can display messages in English, Spanish, Russian, Portuguese (Brazilian)
There are not too many messages to translate, but nevertheless.
New translations are available on request.
Previous version
http://www.trichview.com/forums/viewtopic.php?t=6451