Skip to content

Engines

Downloaders are the core of the application. They are responsible for downloading the video stream from the source. The application supports three downloaders: Kotlin, FFMPEG, and Streamlink. Each downloader has its own features and limitations.

The FFMPEG downloader is the default downloader and is the most stable and reliable. It is written in C and is capable of downloading FLV and HLS streams. It is the most efficient downloader in terms of CPU and memory usage. However, it does not support multithreading for HLS downloads.

NOTE

The FFMPEG shipped with the docker image is a modified version that supports Chinese non-standard HEVC containers. The original FFMPEG can be found here.

1. Engines Feature List

FeatureKotlinFFMPEGSTREAMLINK
FLV Download
HLS Download
(Multithreaded)

(Multithreaded)
Recording Duration Stats
(Raw data mode not supported)
Download Bitrate Stats
(-f segmentation not supported)

(-f segmentation not supported)
Size Segmentation
(Raw data mode not supported)

(-f segmentation not supported)
Duration Segmentation
(Raw data mode not supported)
Download FormatFLV, M3U8,TS, M4SSupports other formatsSupports other formats
FLV AVC Repair
CPU UsageMedium
(Repair enabled)
LowLow
Memory UsageMedium
(Repair enabled)
LowMedium

2. FLV AVC Repair Feature List

FeatureEngine Action
Timestamp JumpsFix using delta
Video Header Changes (Resolution, Other Parameters)Split file
Audio Header ChangesSplit file
AMF Metadata Injection (lastheadertimestamp, keyframes...)Inject
Duplicate TAG (experimental)Ignore