- Use PyAV 14.
- Remove
--ffmpeg-location
arg. - Remove help text for recently removed args.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/26.0.1...26.1.0
- Fix
ssa
not being a known format. - Catch exception when parsing invalid bitrate.
- Remove the
--my-ffmpeg
--show-ffmpeg-commands
--show-ffmpeg-debug
cli options. - Remove the
ae-ffmpeg
package dependency. - Remove unused args, functions.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/26.0.0...26.0.1
- You can now preview videos before rendering is complete. (see footnote 1).
unset
is now never a valid codec. Useauto
instead.unset
is now not a valid bitrate value. Useauto
instead.- Removed the
--extras
and-qscale:v
cli options. - The
ae-ffmpeg
pypi package is deprecated and will be removed in a future release. Future versions of auto-editor will not ship ffmpeg cli binaries. - The
--my-ffmpeg
--ffmpeg-location
--show-ffmpeg-commands
and--show-ffmpeg-debug
cli options are now deprecated and can be removed in a future26.x
release.
- Auto-Editor is consistency twice as fast as
25.x
if-c:a pcm_s16le
is set. - Auto-Editor is now 20% faster to 50% slower with default options. (see footnotes 2 and 3).
- Remove all uses of ffmpeg-cli in auto-editor, with the exception of a few holdouts (EBU norm, audio mixing, yt-dlp).
- using GPL vs LGPL builds of PyAV now determine if the
libx264
orlibopen264
encoder is used.
- using GPL vs LGPL builds of PyAV now determine if the
- Never write a "null frame" if the timeline is known to be linear. Fixes #468
- [1] You can preview media files if they are in the Matroska format (
.mkv
). Although.mp4
hybrid could theoretically work, ffmpeg does not appear to have sufficient support yet. YMMV with other formats. - [2] Smaller files perform better. Larger files perform worse compared to
25.x
when using a solid state drive/fast storage. - [3] It should be possible to eventually recover this lost performance. Either with multiprocessing, or multi-threading with GIL-free builds of Python.
- Data Streams, Attachment Streams, and Embedded Image (video) streams are now always dropped due to some limitations with the current version of PyAV. This should be fixed in a future version of
26.x
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/25.3.1...26.0.0
- Use PyAV 13.1
- Make correct webvtt files, fixes #531
- Don't open player when exporting as clip-sequence
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/25.3.0...25.3.1
- Add
-dn
option. Allows data streams to be dropped from final output. - Allow using older version of final cut pro. Example:
--export final-cut-pro:version=10
- Add file "last modified time" to cache string. Fixes #536
- Fix
motion
returning lower values than it should.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/25.2.0...25.3.0
- Use PyAV 13
- Add stacktraces to the Palet Programming Language
- Add
input-port?
type and more procedures. Helpful for writing custom edit procedures inconfig.pal
.
- Prevent colon form from evaluating arguments eagerly
- Set upper bounds on dependencies
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/25.1.0...25.2.0
- Add the DaVinci Resolve FCP7 backend. It's not the default since there are known issues, but it is available if you're having other issues with the FCP11 backend.
- Add
--config
flag option. When set, it will look for./config.pal
. If found, it allows extending auto-editor by adding new editing methods by defining new procedures.
- Fix "divide by zero error" when editing subtitle streams when a speed is exactly 0.
- Removed the "speed" warning for the DaVinci Resolve FCP11 backend because it appears to not be true anymore for DaVinci Resolve 19 (maybe 18?) and newer.
- Allow including/excluding the Palet standard environment for applications like pyinstaller.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/25.0.1...25.1.0
- Hardcode that
.mp4
files supportsrt
subtitles. Fixes #493 - Info: display audio layout
- Add PyAV License to the
--debug
screen - Improve argument parsing error messages
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/25.0.0...25.0.1
- Switch versioning system from "CalVer weeks of the year" to SemVar.
- Make temp directories lazily. This will mean a temp directory is not created at all in some cases.
- Add the
--no-cache
option. When set, will prevent auto-editor from reading from or writing to a cache file.
- Step around PyAV bug when getting pix_fmt. Fixes #489
- Add
hevc_nevc
as a known encoder. Fixes #490 - The cache is twice as small as the equivalent 24w31a would write.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w31a...25.0.0
- Bug fix: never set the color primary if the value is 0
- Palet: add
max-seq
andmin-seq
procedures
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w30a...24w31a
- Upgrade to PyAV 12.3
- Use PyAV to get encoder information instead of maintaining a big list
- Audio analysis no longer writes a temporary WAV file
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w29a...24w30a
- Use numpy's
.npz
for smaller and faster caching - Add
audio-levels
motion-levels
to Palet - In general, remove lines of code
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w25a...24w29a
- Only extract subtitle files when needed
- Analyze subtitles robustly, don't rely on hacky methods
- Assert generated timeline is monotonic (fixes #470)
- Errors are now colored, will be disabled if NO_COLOR or AV_LOG_FORCE_NOCOLOR environment variable is set
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w24a...24w25a
- Use
pyav
12.1.0, the first release that is compatible withav
- Handle import v1 timelines better
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w19a...24w24a
- Round timebase to two-digits, which should fix a Premiere Pro issue
- v3 format: offset is no longer implicitly multiplied by clip speed
- Consider
libopus
a valid encoder
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w13a...24w19a
- Color space handling has been improved
- Having ffprobe is no longer required
auto-editor subdump
now only uses/requires PyAV
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w09a...24w13a
- By default, all tracks will now be considered when editing audio
- Premiere Export: Fix 24w07a regression where only a single audio channel would play
- Auto-Editor will now never attempt to copy attachments unless subtitle streams are present
audio
motion
subtitle
are now no longer special lexer constructs
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w07a...24w09a
- Fix crash on certain resolutions for legacy macs
- Final Cut Export: always set "start" attribute even when value is 0
- Premiere Export: additional tracks no longer need external wavs
- Fix crash for all
.ts
media files
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/24w03a...24w07a
- Analyzing motion is now 1.3x faster.
- Changing the aspect ratio (adding padding) is now 2.7x faster.
- Better support for the
yuv444p
yuvj444p
pix_fmt's - Dropped the Pillow dependency
- Upgrade pyav to 12.0.2
- Removed
--mark-as-loud
and--mark-as-silent
. Use--add-in
,--cut-out
instead. - Removed
pixeldiff
as an option for--edit
. Usemotion
instead.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w51a...24w03a
- Upgrade pyav to 12.0.0
- Sources are now directly linked in the v3 format.
- Removed the
--source
and--add
option - Switch from setup.py to pyproject.toml
Remember to upgrade setuptools! pip install -U setuptools
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w46a...23w51a
- Bump pyav from
11.0.1
to11.2.0
- Bump Pillow from
10.0.1
to10.1.0
- Palet: added
append class eval for-items list list?
, and fixed many bugs - Removed the ability to draw text and ellipse shapes.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w40a...23w43a
- Auto-Editor now knows all h264, hevc, av1, and prores encoders
- Bump
pillow
from 10.0.0 to 10.0.1 - Palet: Rename
string-append
to&
, add&=
- Palet:
/
will now return a float, unless all numbers are frac? or any number is complex. - Palet: Add keyword datatype, allow keyword parameters for
define
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w35a...23w38a
- Removed support for Python 3.9, use 3.10 or 3.11
- DaVinci Resolve: Use fcp10 format instead of fcp7
- Palet: Add
incf
decf
case
- Palet: Add dot syntax and lang pragma
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w32a...23w35a
- Final Cut Pro XML: Fix desync issue / Use modern APIs
- Palet: Add
hash-ref
hash-set!
hash-update!
hash-remove!
- Palet: Fix
hash
incorrectly erroring when its arity is 0 - Palet:
ref
no longer accepts hashes
- ShotCut: support exporting multiple videos
- Palet: Implement lexical scoping
- Palet: Add
let
let*
system
cond
sleep
error
- Palet: Improve variable error messages
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w28a...23w31a
- Fix ShotCut export producing wrong cuts
- Translate README to Chinese by @flt6 in #361
- Add back
var-exists?
procedure, addrename
anddelete
syntax - Info subcommand: remove
--include-vfr
- Bump pillow version to 10.0.0
- @flt6 made their first contribution in #361
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w24a...23w28a
- Added the following procedures:
assert
array-copy
between/c
div
maxclip
maxcut
maxcut
andmaxclip
were added to address #348
- Fix displaying vectors
- Updated
--audio-normalize ebu
's contracts so they match the ranges for ffmpeg >=6
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w21a...23w24a
- wavfile: immediately return when data chunk is read (fixes #351)
- fcp7: fix reading pathurl
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w20b...23w21a
- Work around DaVinci Resolve bug where timeline will break strangely if
<duration>
tag in<file>
is not present even though the value is not used
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w20a...23w20b
- fcp7 backend (Premiere and DaVinci Resolve)
- You can now export multiple video files into one xml
- The xml now respects the number of channels the audio has and no longer assumes it's always 2
- v3 timeline backend
- the
"timeline"
key has been flatten and removed "version"
value has been changed"unstable:3.0"
->"3"
- the
"dur"
attribute for all timeline objects is now always the "real" duration even if the speed is != 1. This makes many internal operations simpler and imitates how fcp7 represents timing.
- the
- v1 timeline importing and exporting is back
- All v(NUMBER) timelines now no longer use or accept semantic versioning
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w15a...23w20a
- Only allow valid bitrate units
k
K
M
- Handle previously unhandled exceptions when parsing certain options with invalid values
- Pin pillow to
9.5.0
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w12a...23w15a
- Support for DaVinci Resolve is now added back in. Added the
--export resolve
-exr
and--export-to-resolve
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w11a...23w12a
- Add new option
--audio-normalize
that can apply EBU R128 or Peak audio normalizing methods - Change default video bitrate from 10m to 10M by @hunterhogan in #337
- @hunterhogan made their first contribution in #337
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w10c...23w11a
--edit all
is now--edit all/e
- Bug Fix Premiere can now find the source file in Premiere XMLs
- Levels subcommand
- Levels now has start tag to ensure no dropped data
- Levels can now use
none
andall/e
edit methods
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w08a...23w10c
auto-editor info
now displays the audio stream's channel count--add
now uses palet for parsing instead of having a little parsing language for each attribute.
# old way, adding special characters like newline and tab was terrible
auto-editor --add 'text:0,60,This is my text!
Wow,font=Arial'
# new clean and explicit way
auto-editor --add 'text:0,60,"This is my text!\nWow",font="Arial"'
- The palet scripting language, and its associated docs, has been greatly improved. For a normal auto-editor, palet doesn't matter right now, but allow for new and exciting auto-editor functionally in the future.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/23w04a...23w08a
- Added
subtitle
edit method.subtitle
analyzes subtitle streams and adds sections when any subtitle shown on screen matches the given regex pattern. - Added new attribute:
name
for thepremiere
andfinal-cut-pro
export object.
- Removed
--min-clip
--min-cut
cmd options. Useminclip
andmincut
procedures in the--edit
option or the newmincut
minclip
attributes on theaudio
edit method:--edit audio:mincut=4,minclip=3
- Removed
--show-ffmpeg-debug
. Instead use--show-ffmpeg-commands
or--show-ffmpeg-output
- Removed the
grep
subcommand. The newsubtitle
edit method does all of its functionality
"Palet" is auto-editor's scripting language used in the --edit
option and repl
subcommand. It is similar to the racket language but has a few differences. Palet existed in earlier versions but it wasn't worth mentioning in the release notes until now. The biggest change is that you can now define your own procedures:
(define circle-area (lambda (r) (* pi (* r r))))
(circle-area 5)
> 78.53981633974483
- Upgrade Pillow
9.3.0 -> 9.4.0
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w52a...23w04a
- Fix capital file extensions confusing auto-editor
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w48a...22w52a
- Fixed all of the subcommands not working when auto-editor is installed with pip
- Make having the
readline
module optional forrepl
. This allows Windows to use it without immediately causing a traceback.
Auto-Editor can now read use its own v2 json timelines. v2 timelines are still undocumented and unstable[1] but is a step in the right direction and opens up the way for more powerful Premiere, ShotCut and FinalCutPro exports.
[1] In the sense that how it works can change from version to version.
Exporting v1 json timelines has been removed due to in part to format being entirely undocumented. Auto-Editor still uses a v1-format like structure for "Editor" exports and
Besides making 'Premiere and friends' exports better, Auto-Editor will not work on new features till at least mid-Jan, 2023. Instead improving documentation will be the primary focus.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w46a...22w48a
- Fixed all of the subcommands not working when auto-editor is installed with pip
- Make having the
readline
module optional forrepl
. This allows Windows to use it without immediately causing a traceback.
Auto-Editor can now read use its own v2 json timelines. v2 timelines are still undocumented and unstable[1] but is a step in the right direction and opens up the way for more powerful Premiere, ShotCut and FinalCutPro exports.
[1] In the sense that how it works can change from version to version.
Exporting v1 json timelines has been removed due to in part to format being entirely undocumented. Auto-Editor still uses a v1-format like structure for "Editor" exports and
Besides making 'Premiere and friends' exports better, Auto-Editor will not work on new features till at least mid-Jan, 2023. Instead improving documentation will be the primary focus.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w46a...22w48a
- ffmpeg colorspace won't be set if applied value is
reserved
- Fixed premiere xml export setting
channelcount
to10
instead of2
- Bug Fix: Handle PyAV reporting
stream.duration
asNone
instead of crashing #313
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w43a...22w46a
Add Python 3.11 support, drop Python 3.8 support Improve Premiere Pro and ShotCut XML reading
--edit now has direct access to the margin
mincut
minclip
cook
functions. Along with or
and
xor
not
--edit '(or (margin 5 motion:4%) (cook 6 3 audio:threshold=4%))
Fix or
and
xor
length resizing. Old behavior added random data instead of just filling zeros.
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w39a...22w43a
- Auto-Editor can now read Premiere xml files, provided that it follows a very strict subset of features
- Timeline files now have
_ALTERED
part added - Premiere XML and ShotCut MLT timeline files have been improved
- Fixed bug on Windows that caused sound to not render right when speed was changed
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w37a...22w39a
You can now add audio to the timeline and change its volume.
auto-editor movie.mp4 \
--source my-background:/Users/wyattblue/Downloads/music.mp3 \
--add audio:0,500,my-background,volume=0.7
Auto-Editor renders volume using FFmpeg's volume audio filter and accepts both raw floats and decibels.
dB is now a supported unit.
auto-editor --edit audio:threshold=-24dB # equivalent to 0.063
- ZipSafe is now set to True, which makes auto-editor slightly faster
- You can now add background music/audio
- Removed
--timeline
and--api
options. Instead, use the export option as so:--export timeline:api=$VAL
- Final Cut Pro: Use numerator and denominator of timebase fraction by @marcelohenrique in #302
- @marcelohenrique made their first contribution in #302
Full Changelog: https://github.com/WyattBlue/auto-editor/compare/22w35c...22w37a