When you run:
auto-editor example.mp4 --edit audio:0.05,stream=0
You're actually running a palet expression!
To be precise, you're writing the syntax-sugary equivalent of:
auto-editor example.mp4 --edit "(audio 0.05 #:stream 0)"
Isn't that neat.
You can use any syntax or procedure defined in the core language.
auto-editor example.mp4 --edit '(print "Hello World!")(audio 0.05 #:stream 0)'
And that command will indeed, print "Hello World!".
As long as that expression returns a boolean array, you can do anything.
All the edit methods are listed below:
(audio [threshold] [stream] [mincut] [minclip]) → bool-array? Procedure
threshold : threshold? = 0.04
stream : (or/c nat? 'all) = 'all
mincut : int? = 6
minclip : int? = 3
Auto-Editor's default. Provides a high level abstraction over audio-levels.
(motion [threshold] [stream] [blur] [width]) → bool-array? Procedure
threshold : threshold? = 0.02
stream : nat? = 0
blur : nat? = 9
width : nat1? = 400
Motion analysis. Provides a high level abstraction over motion-levels.
(subtitle pattern [stream] [ignore-case] [max-count]) → bool-array? Procedure
pattern : string?
stream : nat? = 0
ignore-case : bool? = #f
When pattern, a RegEx Expression, matches a subtitle line, consider that time the line occupies as loud.
Analysis audio volume based on samples. Using a 2-pass method where all the values are adjusted based on the highest sample value. Returns an array of float64s.
(motion-levels stream [blur] [width]) → array? Procedure
stream : nat?
blur : nat? = 9
width : nat1? = 400
Scale the video to width pixels, convert to grayscale, apply a Gaussian blur of blur amount, then compare the difference with the previous frame. Returns an array of float64s.