FFVCL is a native VCL components suit including Video Encoder and Video Player VCL components which wrap FFmpeg libraries perfectly. FFVCL is more easy, more flexible and more powerful than the official FFmpeg command line interface for converting and playing audio and video files.
Features of FFVCL:
- All-in-one solution for audio/video encoding and playing.
- Perfect wrapper of FFmpeg libraries, easy to use, flexible and powerful.
- Input frames editable such as text and/or image overlay.
- Join multiple input files in variable formats to a single output file.
- Support Frame Input (Bitmap canvas, Bitmap data, Bitmap DeviceContext, YUV).
- Support Frame Output (RGB, MJPEG, H.263, H.264, YUV).
- Support Packet Input (H.263, H.264, MJPEG, M4V, MPEGVideo, VC1).
- Support directly PCM wave data input.
- Support directly PCM wave data output.
- Support DirectShow Capture.
- Support GDI(Screen/Wave) Capture.
- Support WebCam Capture.
- Support Video Filters, such as flip, negate, scale, rate, etc.
- Support previewing while encoding.
- Support multiple instances of Player.
- Support controlling playback speed of Player.
- Support encoding in multiple threads.
- Encoding multiple files in batchs built in.
- Task thread priority is configurable.
- Pause, Resume and Stop operations are available.
- Log messages event via FFLogger component.
- Encoding progress event.
- OnVideoHook event is a very easy and powerful way to edit all input frames acting as internal Video Hook, such as text and/or image overlay, reverse frame picture, and various effects what you can process on Bitmap.
- OnFrameHook event provides a chance to modify the video frames in original format.
- OnAudioHook event is a very easy way to edit all input audio samples acting as internal Audio Hook.
- FFEncoder provides audio/video formats transcoding: intput -> decoding(decompression) -> encoding(compression) -> output.
- FFEncoder is powerful and a little complex, please refer to the encoder document and the sample application.
- FFPlayer plays audio and video files.
- FFPlayer is easy to use and still not powerful enough, please refer to the sample application.
- Obtaining detail information of the input file.
- Previewing any frame picture of the special video stream by seeking timestamp with Bitmap result.
- FFLogger catchs the log generated by (Add-ons, FFEncoder, FFPlayer, FFDecoder and DLLs).
- FFLogger is an assistant component, it will be automatically created as an global instance when necessary, and only one instance is allowed.
- 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.
FFmpeg is a complete solution to record, convert and stream audio and video. It includes libavcodec, the leading audio/video codec library. FFmpeg is developed under Linux, but it can compiled under most operating systems, including Windows.
Relation between FFVCL and FFmpeg
Because FFVCL is a direct wrapper of FFmpeg’s libavcodec APIs, it is able to reflect the power of FFmpeg libraries. And it is more flexible and more powerful than the official FFmpeg command line interface. At the same time, FFVCL is very easy to use. Therefore, FFVCL is better than FFmpeg CLI in some measure. View FFVCL Architecture…