Architecture of FFVCL

Architecture of FFVCL - Delphi FFmpeg VCL Components (Video Converter and Video Player)

Architecture

  • Add-ons are used for input and/or output of FFEncoder, FFPlayer, FFDecoder.
  • FFEncoder provides audio/video formats transcoding: intput -> decoding(decompression) -> encoding(compression) -> output.
  • FFPlayer plays audio and video files.
  • FFDecoder provides media file information and decoding video frames or audio samples.
  • FFLogger catchs the log generated by (Add-ons, FFEncoder, FFPlayer, FFDecoder and FFmpeg libraries).
  • FFLoader provides loading DLLs in run-time dynamic linking.
  • DLLs includes FFmpeg libraries, SDL library, SoundTouch library, and libmfx library.

Add-ons

  • MemoryAccessAdapter provides memory access for intput and output (open, read/write, seek, close).
  • FrameInputAdapter provides directly video frames input (Bitmap canvas, Bitmap data, Bitmap DeviceContext, YUV).
  • FrameOutputAdapter provides directly video frames output (RGB, MJPEG, H.263, H.264, YUV).
  • PacketInputAdapter provides directly video packets input (H.263, H.264, MJPEG, M4V, MPEGVideo, VC1).
  • WaveInputAdapter provides directly PCM wave data input.
  • WaveOutputAdapter provides directly PCM wave data output.
  • GDICapture provides screen capturing for video input and wave recording for audio input.
  • DShowCapture(built in ffmpeg libraries) provides webcam capturing for video input and wave recording for audio input.
  • Please refer the demos for more information.

FFEncoder

  • FFEncoder is powerful and a little complex, please refer to the encoder document and demos.
  • DLLs needed: AVCodec, AVDevice, AVFilter, AVFormat, AVUtil, SwResample, SwScale and libmfx(optional).

FFPlayer

  • FFPlayer is easy to use and still not powerful enough, please refer to the demo application.
  • DLLs needed: AVCodec, AVDevice, AVFilter, AVFormat, AVUtil, SwResample, SwScale, SDL and SoundTouch(optional).

FFDecoder

  • FFDecoder is easy to use, please refer to the demo application.
  • DLLs needed: AVCodec, AVFilter, AVFormat, AVUtil, SwResample, SwScale.

FFLogger

  • FFLogger is an assistant component, it will be automatically created as a global instance when necessary, and only one instance is allowed.

FFLoader

  • FFLoader is an assistant class, it will be automatically created as a global instance at startup. Please forget it.

FFmpeg Libraries

  • FFmpeg libraries with GPL/LGPL: AVCodec, AVDevice, AVFilter, AVFormat, AVUtil, SwResample, SwScale.
  • AVCodec provides decoders and encoders of audio/video stream.
  • AVDevice provides VFW capturing and DirectShow capturing.
  • AVFilter provides video filter for special effects.
  • AVFormat provides demuxers and muxers of containers.
  • AVUtil provides common utilities.
  • SwResample provides audio resampling.
  • SwScale provides video frames resampling.

SDL Library

  • SDL provides audio playback and video rendering.

SoundTouch Library

  • SoundTouch provides resampling audio for changing tempo(speed).

libmfx Library

  • libmfx provides Intel QSV dispatcher.