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.