Skip to content

Releases: WyattBlue/auto-editor

30.5.0

09 Jun 01:58

Choose a tag to compare

Features

  • Composite multiple video layers into one output: a v3 JSON timeline with stacked v tracks is now rendered bottom-to-top, with each overlay clip placed by a pos action in its effects. Still images (PNG/JPG/...) are supported as overlay sources (logos, watermarks), and overlay alpha is preserved.
  • Add the following actions: drawbox, pos (overlay placement, pos:x:y[:scale]), rotate:deg (fixed-angle, expands the canvas for aspect flips), and spin:deg/rate (continuous rotation, never clipped, transparent corners on overlays)
  • Add the add virtual action, add:path or add:path:x:y:scale. Actions chained after an add apply to the new overlay layer (e.g. add:./logo.png,spin:0/-30 spins the logo)
  • Add animated effects: zoom, opacity, blur, and brightness accept keyframe ramps (a..b..c) that interpolate across the section, with optional easing via :ease=curve[:duration] (curve linear/in/out/inout, duration e.g. 2sec). A standalone ease: token applies a curve to the animated actions that follow it.
  • Add AMD AMF hardware encoders (h264_amf, hevc_amf, av1_amf) for x86_64 Windows and Linux builds.

Performance

  • Skip demuxing unused streams during audio analysis and rendering, which is significantly faster when working with high-bitrate video files.
  • Speed up audio loudness analysis with a faster SIMD peak scan (NEON, SSE2, and WebAssembly SIMD).
  • Render audio as a bounded stream instead of assembling the whole timeline into a memory-mapped buffer first. Memory now scales with the largest clip rather than the total duration, which especially helps memory-constrained environments like WebAssembly. Normalization (peak/ebu) decodes the timeline twice to stay streaming.

Fixes

  • Fix whisper subtitle timestamps being wrong (scaled by the ratio of the stream time base to the sample rate) by passing the stream's time base to the audio buffer source.

Full Changelog: 30.4.0...30.5.0

30.4.0

01 Jun 07:32

Choose a tag to compare

Features

  • Add micro-fade at clip edges to prevent audio pops.
  • Store audio/motion/waveform analysis levels as 16-bit normalized values, roughly halving level-cache file size. levels output values are rounded accordingly.
  • For URL inputs, only the streams that are actually used are fetched: streams the output container can't hold are skipped unless an --edit method needs to analyze them. --stats downloads only the streams it needs.
  • -res WIDTH,HEIGHT now limits the height of yt-dlp downloads (e.g. -res 1920,1080 caps the video at 1080p).
  • URL inputs now default to an mkv container and the h264 video codec (instead of inheriting the downloaded file's container/codec, e.g. webm/vp9).
  • Add the deesser action to reduce harsh "s"/"sh" sibilance in audio sections; accepts positional intensity[:max[:freq]] (e.g. --when-normal deesser:0.5).

Fixes

  • info now reports the intended display aspect ratio: it folds in the pixel aspect ratio so anamorphic video shows its true ratio (e.g. 720x480 with SAR 32:27 shows 16:9), and snaps codec-rounding artifacts to the common ratio they approximate (e.g. 854x480 shows 16:9 instead of the meaningless exact reduction 427:240).
  • Remove --download-format as it is now superfluous.

Full Changelog: 30.3.0...30.4.0

30.3.0

27 May 10:12

Choose a tag to compare

Features

  • Add OpenTimelineIO export (--export premiere-otio, .otio). Unlike the FCP7 XML export, it carries the invert, hflip, and vflip actions into Premiere Pro as native video effects.
  • Add opacity and blur video actions.
  • Add brightness, brighthue, contrast, and saturation video actions. brightness shifts all RGB channels equally (lutrgb); brighthue/contrast/saturation adjust the Y/U/V channels and are fused into a single lutyuv pass when used together.

Fixes

  • Add empty_moov for --fragmented mp4s
  • Fix progress bars sometimes not clearing correctly
  • Support for wasm64.

Full Changelog: 30.2.4...30.3.0

30.2.4

19 May 23:41

Choose a tag to compare

Fixes

  • Allow using experimental codecs
  • Enable the vorbis encoder
  • Improve seeking so unoptimal jumps don't happen
  • Fix decoder seek thrashing at speed-segment boundaries by making timeline generation monotonic
  • Fix --no-seek producing black frames in some cases

Full Changelog: 30.2.2...30.2.4

30.2.2

17 May 08:25

Choose a tag to compare

Fixes

  • Fix only the first uncached audio stream being analyzed when multiple are referenced
  • Fix exporting to the GIF format if the input has audio
  • Fix --export resolve/final-cut-pro offsetting every clip's timeline position by the media's start timecode, breaking the edit for footage with embedded timecode
  • Fix --export resolve/final-cut-pro writing an invalid sequence audioLayout (e.g. mono) rejected by Final Cut Pro; layouts now map to stereo or surround
  • Fix --export final-cut-pro setting each asset's duration to the edited timeline length instead of the source media's duration
  • Fix --export premiere forcing mono sources into an exploded stereo track-pair, leaving the audio playing on only one side; mono sources now export as a single Mono track
  • Fix --export premiere writing duplicate clipitem ids and dangling <link> references

Full Changelog: 30.2.0...30.2.2

30.2.0

11 May 02:37

Choose a tag to compare

Features

  • Add hflip and vflip actions
  • Kdenlive export: support multiple inputs

Fixes

  • Use ffmpeg 8.1.1
  • Enable flv muxer/demuxer
  • Fix incorrect rendering of some AV1 videos

Full Changelog: 30.1.6...30.2.0

30.1.6

01 May 17:51

Choose a tag to compare

Fixes

  • Upgrade x265 to 4.2
  • Copy embedded images
  • Add image tracks to the info commmand
  • Fix rendering audio when speed is less than 0.5x
  • Add -preset option

Full Changelog: 30.1.4...30.1.6

30.1.4

17 Apr 21:49

Choose a tag to compare

Fixes

  • Always check return value when linking av filters.
  • Fix black screens output with media with nonstandard stream configuration.

30.1.2

13 Apr 06:30

Choose a tag to compare

Fixes

  • Add task for building for wasm32 (for the web).
  • Add task for building auto-editor dynamically.
  • Fix expressions that only work when int is 8 bytes.
  • Merge similar functions into one, e.g. tl.len initLayout.
  • Avoid some allocations by using av.openFormatCtx instead of av.open.

Full Changelog: 30.1.0...30.1.2

30.1.0

27 Mar 02:27

Choose a tag to compare

Features

  • Use FFmpeg 8.1.
  • Add setting Constant Rate Factor: -crf.
  • Add --no-cache to main program.
  • Add -encoders to info command.
  • Build whisper-cpp for Windows AArch64.

Fixes

  • Implement Neon SIMD for readChunk proc (audio). Makes audio analysis faster by 10% for AArch64.
  • Use SvtAv1 4.1.0.

Full Changelog: 30.0.0...30.1.0