<< Click to display table of contents >>


A class of TRVCamera.FFMpegProperty. Contains properties configuring FFmpeg.

Unit [VCL and LCL] MRVCamera;

Unit [FMX] fmxMRVCamera;


TRVFFMpegProperty = class(TPersistent)



Property for turning FFmpeg support on/off:

UseFFMpeg: Boolean – if True, and FFmpeg is available, the component uses it (default value = True). If both GStreamer and FFmpeg are available and turned on, the component uses FFmpeg (see TRVCamera.GStreamerProperty.UseGStreamer).

Property allowing/disallowing using FFmpeg parameters specified in this class:

UseFFMpegProperty: Boolean – if True, the parameters listed below are passed to FFmpeg (default value = True). Otherwise, FFmpeg is used with the default parameters.

Properties defining video processing by TRVCamera:

FrameDrop: Boolean - if True, TRVCamera drops frames that are received too late (default value= False).

Properties to resize video:

UseVideoScale: Boolean – if True, video is requested in the size specified in VideoWidth, VideoHeight properties. Otherwise (default), it has the original size.

VideoWidth, VideoHeight: Integer are used only if UseVideoScale = True. At least one of them must be a positive value to apply scaling (if value of one of these properties is zero or negative, this side of video is auto-calculated to keep aspect ratio).

VideoFilter: TRVFFMpegFilter – method used to scale video frames, rvffBilinear by default.

Other FFmpeg parameters:

Video: Boolean allows receiving video, True by default.

Audio: Boolean allows receiving audio, True by default. If True, sound is processed by the linked TRVCamSound component.

CustomProperties: TStringsList – additional FFmpeg properties. It allows providing parameters in addition to the parameters listed below. Each string must have the format 'param_name=param_value'. For the list of supported parameters, see the documentation about ffplay command line.

Threads: Integer – count of video processing threads; 0 (default) for auto-calculation.

TimeOut: Integer – maximum timeout (in seconds) to wait for incoming connections, -1 for infinite waiting. Default value is -1. Note: in any case, RVMedia does not allow timeouts more than 20 seconds.

RTSPTransport: TRVProtocolsEx – RTSP transport network protocol, [rvpeTCP, rvpeUDP] by default. Multiple lower transport protocols may be specified, in that case they are tried one at a time.

RTSPFlags: TRVRTSPFlags sets RTSP flags, [] by default.

MaxDelay: Integer – maximum muxing or demuxing delay in microseconds (0 or -1 for using defaults), 0 by default.

STimeOut: Integer – timeout (in microseconds) of socket TCP I/O operations (0 for using defaults), 0 by default.

RecvBufferSize: Integer – UDP receive buffer size in bytes, 65535 by default.

UdpFifoBufferSize: Integer –packet buffer size in bytes, 1000000 by default. May be set to 0.

TcpNodelay: Boolean – True to disable Nagle’s algorithm, False to enable it; False by default.

OverrunNonfatal: Boolean allows to survive in case of UDP receiving circular buffer overrun, True by default.

VideoFilter: TRVFFMpegFilter (one of rvffNone, rvffFastBilinear, rvffBilinear, rvffBicubic, rvffX, rvffPoint, rvffArea, rvffBicublin, rvffGauss, rvffSinc, rvffLaczos, rvffSpline) defines video scaling method, rvffBilinear by default.

ProbeSize: Int64 sets probing size in bytes, i.e. the size of the data to analyze to get stream information. A higher value will enable detecting more information in case it is dispersed into the stream, but will increase latency. Must be an integer not lesser than 32. It is 5000000 by default.

DecodeAudioCodecName, DecodeVideoCodecName: String – name of codecs for decoding audio and video. If empty, codecs is auto-detected by content. This is a low-level property. Incorrect codec names may cause decoding to fail. You can use GetListOfAudioDecoders and GetListOfVideoDecoders functions to get possible values of these properties.