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

Architecture

  • Add-ons used for input and/or output of Converter.
  • Converter provides audio/video formats transcoding: intput -> decoding(decomposition) -> encoding(compression) -> output.
  • FFPlayer plays audio and video files.
  • AVprobe provides media file information and decoding video frames of video files.
  • FFLogger catchs the log generated by (Add-ons, Converter, FFPlayer, AVProbe and DLLs).
  • FFLoader provides loading DLLs in run-time dynamic linking.
  • DLLs includes FFmpeg libraries, SDL library and other VideoHook stuffs.

Add-ons Components/Classes

  • EventStreamAdapter 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.264, YUV).
  • ScreenCapture provides screen capturing for video input.
  • WaveCapture provides wave recording for audio input.
  • Please refer the demos for more information.

FFmpegVCL Component - Video Converter

  • FFVCL is powerful and a little complex, please refer to the converter document.
  • DLLs needed: AVCodec, AVFilter, AVFormat, AVUtil, SwScale.
  • DLLs optional: AVDevice, VideoHook stuffs.

FFPlayer Component - Video Player

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

AVProbe Component

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

FFLogger Component

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

FFLoader Class

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

FFmpeg Libraries

  • FFmpeg libraries with GPL/LGPL: AVCodec, AVDevice, AVFilter, AVFormat, AVUtil, SwScale.
  • AVCodec provides decoders and encoders of audio/video stream.
  • AVDevice only provides webcam capturing input, it is not stable and not loaded automatically and can be ignored.
  • AVFilter provides video filter for special effects.
  • AVFormat provides demuxers and muxers of containers.
  • AVUtil provides common utilities.
  • SwScale provides video frames resampling.

SDL Library

  • SDL provides audio playback and video rendering.

VideoHook Libraries

  • VideoHook DLLs provides video hook feature which are deprecated and had been removed after ffmpeg offical version 0.5 (they would be removed from FFVCL in the future, they are "As It", no warrant and no support.)