Skip to content

Releases: zh30/ffkit

ffkit 0.391.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:06

ffkit 0.391.0

Added

  • remux --sidx — global sidx segment-index box inside a --frag pack (+global_sidx; CMAF players / DASH packagers byte-range seek off it; mp4/mov only)
  • remux --shift SEC — -itsoffset applied to every read of the input (input-side clock shift, incl. the --audio-delay/--video-delay re-reads; unlike --offset it moves the demux timeline so --from/--to keep measuring against the original; negative values clamp to 0 on mp4 via elst)
  • transcode --vstats FILE — -vstats_file per-frame encode stats sidecar (frame/q/f_size/running-bitrate rows: which scene ate the bitrate budget; empty on pure stream-copy paths)
  • split --manifest-window N — -segment_list_size N keeps only the newest N entries in a --manifest index (rolling parts index; part files stay on disk; needs --manifest)
  • split --ref-stream V|A|N — -reference_stream picks which stream drives cut boundaries (a cuts on audio-frame edges instead of snapping to video keyframes)
  • hls --keep N — -hls_delete_threshold N keeps N scrolled-off segments on disk behind the rolling --live playlist (an archive tail still reachable by URL; needs --live)
  • deliver --platform +8 recruiting/async video-interview targets: hirevue, sparkhire, vidcruiter, myinterview, willo, recruitee, breezyhr, workable — all 16:9 1920x1080 → 695 targets

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.391.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.391.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.391.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.390.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:04

ffkit 0.390.0

Added

  • transcode --frag — fragmented MP4 on the encode path (+frag_keyframe+empty_moov+default_base_moof; h264/proxy presets, mp4-family outputs; stream-copy stays on remux --frag)
  • transcode --shortest — -shortest on every transcode path (music-bed audio ends with the video; ~1-2s muxer flush overshoot on file outputs is ffmpeg's, documented)
  • transcode --preset aptxhd — aptX HD audio-only .aptxhd (high-def Bluetooth delivery; the extension auto-selects the aptx_hd muxer)
  • split --non-keyframes — -break_non_keyframes 1 lets segment boundaries land mid-GOP (tighter --every windows; part starts decode-sloppy until the next keyframe)
  • extract --data — dumps a telemetry/GPS/sensor data stream to raw payload bytes (-f data; --track N picks the Nth data stream)
  • probe.format_long_name — readable container name ("QuickTime / MOV") alongside the demuxer short-name list
  • levels --auto — normalize per-frame range stretch (flat lifted-footage rescue); --smoothing damps frame-to-frame flicker (default 50)
  • blur --engine tmix — temporal frame-mixing blur (tmix; --sigma scales a 2-16-frame window — motion smear, locked shots stay clean)
  • sharpen --engine deconv — deconvolution deblur (split+gblur impulse+deconvolve; reverses a known gaussian blur, --amount scales the assumed radius; no --at window)
  • glitch --engine scroll — wraparound pixel drift (scroll; --strength maps to a fraction-of-width shift per frame)
  • channel --mode order --order 1,0 — raw per-channel re-order by index (-map_channel; re-encode only — stream copy ignores it)
  • deliver --platform +8 music-education targets: tonara, playgroundsessions, musicca, melodics, trala, modacity, pianomarvel, tonebase — all 16:9 1920x1080 → 687 targets

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.390.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.390.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.390.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.389.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:03

ffkit 0.389.0

Added

  • transcode --x264-params k=v:k=v — raw x264 private-option pass-through (-x264-params — encoder tuning beyond the named flags; h264/proxy presets only)
  • transcode --qp N — constant-quantizer encode (-qp — the CQP alternative to --crf; the two are mutually exclusive; h264/proxy only)
  • probe --from SEC/--to SEC — bound the scan window (-read_intervals — audit a suspicious stretch without scanning the whole master; applies to streams/--frames/--packets alike)
  • probe.streams[] +3 fields: bits_per_sample (coded audio bit depth — pcm_s24→24, 24-bit master ingest QC; 0 on float codecs like aac), start_pts (first-packet pts in the stream's own time_base — negative-ts masters at full precision), stream_tag_count (per-stream metadata keys present)
  • hls --omit-endlist — leave the playlist open without --live's windowing (no EXT-X-ENDLIST — a draft/preview pack a later pass re-opens and appends onto)
  • denoise --engine nlm — non-local-means denoiser (anlmdn — slowest engine, gentlest on speech detail)
  • blur --engine smart — edge-aware smartblur (smooths skin/backgrounds while outlines keep)
  • deliver --platform +8 sales & personalized-video hosting targets: bombbomb / covideo / dubb / sendspark / warmwelcome / hippovideo / vadootv / tolstoy videos 16:9 1920x1080 (679 platform targets)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.389.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.389.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.389.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.388.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:04

ffkit 0.388.0

Added

  • transcode --refs N — reference-frame cap on the x264 encode (-refs — low-power/old-hardware decoders cap reference frames; h264/proxy presets only, probe.streams[].refs reads it back)
  • transcode --nal-hrd cbr|vbr|none — write VBV/HRD buffering signaling (-nal-hrd — broadcast ingest validators check it; .mp4 coerces cbr to vbr, pair with --vbitrate for real CBR)
  • transcode --bluray — Blu-ray player compatibility workarounds on the x264 encode (-bluray-compat — BD disc/master ingest specs; h264/proxy only)
  • transcode --preset jpeg2000 — JPEG 2000 + AAC/PCM in .mkv/.mp4/.mxf (libopenjpeg — digital-cinema and archive interchange; .mxf forces 48kHz PCM audio)
  • tempo --engine rubberband — phase-vocoder retime (music/podcast masters — smoother than atempo at big factors; whole-file only, refuses --at)
  • remux --system-b — conform the TS to System B (DVB) instead of System A (ATSC) (-mpegts_flags +system_b — .ts/.m2ts targets only)
  • remux --pes-payload N — minimum PES packet payload bytes (-pes_payload_size, default 2930 — legacy decoder ingest grouping; .ts/.m2ts only)
  • remux --mux-queue N — interleave buffer cap in packets (-max_muxing_queue_size — raise it when copy-muxing throws 'Too many packets buffered' on densely interleaved sources; any container)
  • deliver --platform +8 faith/ministry & OTT streaming targets: subsplash / planningcenter / sermonaudio / resi / boxcast / wowza / dacast / churchonline videos 16:9 1920x1080 (671 platform targets)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.388.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.388.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.388.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.387.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:01

ffkit 0.387.0

Added

  • transcode --keyat T1,T2 — force keyframes at exact timestamps (-force_key_frames — VFX/handoff cuts & QC marks pinned on times; stacks with -g; h264/hevc/webm/av1/prores/dnxhd/proxy encodes only)
  • conform --frames N — stop the spec pass after N decoded frames (-frames:v — spec-sample rendering before committing the whole master)
  • extract --frame N — still at decoded-frame index (select='eq(n,N)' + -vsync 0 — frame-exact VFX/QC grabs; .png/.jpg/.jpeg/.webp)
  • split --clock — name parts by wall clock (-strftime 1 — the output template carries strftime tokens like seg_%H-%M-%S.mp4; same-second cuts share a name, keep --every ≥1s)
  • remux --streamid IDX:PID,... — explicit per-stream PID assignments (broadcast servers expect fixed PIDs the auto-increment can't express — .ts/.m2ts only, PID 32-8186/0x20-0x1ffa)
  • transcode --preset framecrc — per-frame CRC32 manifest (.framecrc/.txt — bit-exact archive-ingest QC: a later re-decode must produce the same CRC listing; text, not media)
  • transcode --preset ffmeta — the container's metadata+chapters as an .ffmeta sidecar (-map_metadata 0 -f ffmetadata — audit what a master carries before re-editing; text, not media)
  • transcode --preset spdif — IEC-61937 S/PDIF AC3 bitstream in .spdif (the digital-out cable format receivers decode — 48kHz AC3, audio only)
  • deliver --platform +8 social-scheduler targets: buffer / hootsuite / later / metricool / loomly / socialbee / planoly / sendible videos 16:9 1920x1080 (663 platform targets)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.387.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.387.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.387.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.386.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:00

ffkit 0.386.0

Added

  • transcode --preset vp9 — VP9 + Opus in .webm/.mkv (the modern open-codec pair YouTube and MSE/Shaka players expect; --crf picks quality, no --vbitrate = true constant-quality)
  • transcode --preset h264rgb — RGB-space lossless H.264 in .mp4/.mkv/.mov (libx264rgb — no chroma subsample, crisp UI/text capture; -qp 0 by default, --crf for graded quality)
  • transcode --preset s302 — SMPTE 302M AES3 audio carriage in .ts/.m2ts (broadcast ingest — fixed 48kHz, 2/4/6/8 channels; experimental -strict -2)
  • transcode --preset h263p — H.263+ v2 in .mkv/.avi (legacy videoconference archives — .3gp/.mp4/.flv have no codec tag for it on 4.4)
  • split --manifest-prefix STR — prepend a base path to every manifest entry (-segment_list_entry_prefix — the playlist references published CDN URLs, not local files; needs --manifest)
  • split --increment-tc — continuous timecode track across parts (-increment_tc — each part's tmcd resumes where the previous ended; needs --copy and an input timecode track)
  • dash --playback-min/--playback-max — trick-play rate window in the manifest ServiceDescription (-min_playback_rate/-max_playback_rate — players know the pack scrubs clean at 0.5–1.5x)
  • deliver --platform +8 workplace-comms & CRM targets: slack / msteams / workplace / salesforce / hubspot / pipedrive / freshworks / attio videos 16:9 1920x1080 (655 platform targets)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.386.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.386.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.386.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.385.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 00:14

ffkit 0.385.0

Added

  • probe --packets — dump per-muxed-packet detail (-show_packets → probe.packets[]: pts/dts/duration/size/key flags per packet — timestamp + interleave forensics without decoding; 4.4 string fields normalized to numbers)
  • split --wrap N — reuse part filenames after N parts (-segment_wrap — rolling window keeps only the newest N part files on disk)
  • split --slack SEC — cut-tolerance window (-segment_time_delta — a boundary may land early inside the window; dense-keyframe sources split finer)
  • split --manifest extension-driven formats — .csv name,start,end rows / .m3u8 index / .ffconcat rejoin list / else flat name list (-segment_list_type)
  • remux --fix-negative-ts — shift negative capture timestamps up to zero (-avoid_negative_ts make_zero — matroska carries real negative start_time; conflicts --copy-ts)
  • remux --skip-init N — read the input past a N-byte junk prefix (-skip_initial_bytes — the ffprobe pre-flight gets the same flag)
  • transcode --preset hash — whole-stream checksum receipt (-f hash — one ALGO=hex line over the muxed payload for ingest/transfer verification; algorithm by extension: .md5/.sha256/.sha512/.txt/.hash)
  • chapter --at-frames F|TITLE — chapter marks by frame number (comma list, converted through the input's fps — lands where split --at-frames cuts)
  • deliver --platform +8 PM & issue-attachment targets: jira / asana / trello / monday / clickup / basecamp / linear / shortcut videos 16:9 1920x1080 (647 platform targets)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.385.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.385.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.385.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.384.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 23:39

ffkit 0.384.0

Added

  • split --at-frames 10,20,30 — cut at frame indices (-segment_frames — VFX/review pipelines that address cuts by frame number; boundaries snap to the next keyframe on --copy, forced exact on the re-encode path)
  • frames --start N — number the first still N (-start_number — keep appending frames onto an existing numbered sequence)
  • frames --clock — name stills by wall-clock capture time (-strftime — output pattern takes %Y-%m-%d_%H-%M-%S codes for timelapse/surveillance stills; refuses --at)
  • probe --frames — dump per-decoded-frame detail (-show_frames → probe.frames[]: key_frame/pict_type/interlace flags/pts_time — forensic QC on masters)
  • conform/deliver/transcode --timelimit SEC — wall-clock encode cap (-timelimit — batch safety valve for runaway jobs)
  • remux --discard-corrupt — drop damaged packets on read (-fflags +discardcorrupt — salvage runs on corrupted captures/bad rips)
  • deliver --platform +8 music-licensing catalogs: songtradr / artlist / epidemicsound / musicbed / audiojungle / premiumbeat / soundstripe / marmoset catalog videos 16:9 1920x1080 (639 platform targets)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.384.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.384.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.384.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.383.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 22:57

ffkit 0.383.0

Added

  • remux --ignore-editlist — read the source past its mov/mp4 edit list (-ignore_editlist 1 — a wrong elst shifts A/V sync on ingest; stripping it exposes the raw timestamps; mp4/mov/m4a/3gp-family sources only)
  • remux --empty-moov — init-style mp4 (+empty_moov — empty sample tables at the head, payload in inline moof/mdat pairs without default_base_moof: the self-contained CMAF init+fragment layout; mp4/mov/m4a only, refused with --also)
  • split --start N — number the first part N (-segment_start_number — keep appending parts onto an existing numbered series instead of restarting at 0; refused with --black)
  • transcode --preset pcm64 — 64-bit float WAV audio-only (pcm_f64le — double-precision mastering/DSP intermediate)
  • deliver --platform +8 print-on-demand merch sites: printful / printify / spring / redbubble / society6 / zazzle / spreadshirt / displate merch listing videos 16:9 1920x1080 (631 platform targets)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.383.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.383.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.383.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.

ffkit 0.382.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 22:20

ffkit 0.382.0

Added

  • remux --no-editlist — drop the elst atom (-use_editlist 0; QT7-era decks and strict parsers reject edit lists — the b-frame reorder shift stays on timestamps alone; mp4/mov/m4a/m4v only)
  • split --manifest parts.csv — write a name,start,end CSV index of the parts next to the files (-segment_list; works on every split path except --black)
  • probe.streams[].refs — reference-frame count (encoder-complexity QC)
  • probe.streams[].closed_captions — embedded CEA-608/708 captions in the video essence (broadcast-ingest QC)
  • probe.streams[].codec_long_name — full readable codec name for manifests/QC labels
  • deliver --platform +8 — heritage/invaluable/liveauctioneers/catawiki/stockx/goat/poizon/stadiumgoods collectible & auction-marketplace listing videos (16:9 1920x1080; 623 platforms)

Download the platform zip (binary + skill + install.sh).
Do not use the Source code zip as the install bundle.

  • macOS Apple Silicon: ffkit-0.382.0-aarch64-apple-darwin.zip
  • macOS Intel: ffkit-0.382.0-x86_64-apple-darwin.zip
  • Linux x86_64: ffkit-0.382.0-x86_64-unknown-linux-gnu.zip

Unzip, then ./ffkit doctor --json or ./install.sh. Needs ffmpeg/ffprobe.