auto-editor 24.13.1__tar.gz → 24.19.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. {auto-editor-24.13.1/auto_editor.egg-info → auto_editor-24.19.1}/PKG-INFO +10 -35
  2. {auto-editor-24.13.1 → auto_editor-24.19.1}/README.md +9 -34
  3. auto_editor-24.19.1/auto_editor/__init__.py +2 -0
  4. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/formats/fcp11.py +1 -1
  5. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/formats/fcp7.py +6 -6
  6. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/formats/json.py +21 -0
  7. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/formats/shotcut.py +3 -3
  8. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/make_layers.py +10 -3
  9. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/preview.py +2 -1
  10. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/render/audio.py +2 -2
  11. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/render/video.py +1 -1
  12. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/container.py +7 -7
  13. {auto-editor-24.13.1 → auto_editor-24.19.1/auto_editor.egg-info}/PKG-INFO +10 -35
  14. auto-editor-24.13.1/auto_editor/__init__.py +0 -2
  15. {auto-editor-24.13.1 → auto_editor-24.19.1}/LICENSE +0 -0
  16. {auto-editor-24.13.1 → auto_editor-24.19.1}/ae-ffmpeg/ae_ffmpeg/__init__.py +0 -0
  17. {auto-editor-24.13.1 → auto_editor-24.19.1}/ae-ffmpeg/ae_ffmpeg/py.typed +0 -0
  18. {auto-editor-24.13.1 → auto_editor-24.19.1}/ae-ffmpeg/setup.py +0 -0
  19. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/__main__.py +0 -0
  20. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/analyze.py +0 -0
  21. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/edit.py +0 -0
  22. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/ffwrapper.py +0 -0
  23. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/formats/__init__.py +0 -0
  24. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/formats/utils.py +0 -0
  25. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/help.py +0 -0
  26. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lang/__init__.py +0 -0
  27. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lang/json.py +0 -0
  28. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lang/libmath.py +0 -0
  29. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lang/palet.py +0 -0
  30. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lib/__init__.py +0 -0
  31. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lib/contracts.py +0 -0
  32. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lib/data_structs.py +0 -0
  33. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/lib/err.py +0 -0
  34. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/output.py +0 -0
  35. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/render/__init__.py +0 -0
  36. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/render/subtitle.py +0 -0
  37. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/__init__.py +0 -0
  38. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/desc.py +0 -0
  39. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/info.py +0 -0
  40. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/levels.py +0 -0
  41. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/palet.py +0 -0
  42. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/repl.py +0 -0
  43. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/subdump.py +0 -0
  44. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/subcommands/test.py +0 -0
  45. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/timeline.py +0 -0
  46. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/__init__.py +0 -0
  47. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/bar.py +0 -0
  48. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/chunks.py +0 -0
  49. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/cmdkw.py +0 -0
  50. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/encoder.py +0 -0
  51. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/func.py +0 -0
  52. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/log.py +0 -0
  53. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/utils/types.py +0 -0
  54. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/validate_input.py +0 -0
  55. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/vanparse.py +0 -0
  56. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor/wavfile.py +0 -0
  57. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor.egg-info/SOURCES.txt +0 -0
  58. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor.egg-info/dependency_links.txt +0 -0
  59. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor.egg-info/entry_points.txt +0 -0
  60. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor.egg-info/requires.txt +0 -0
  61. {auto-editor-24.13.1 → auto_editor-24.19.1}/auto_editor.egg-info/top_level.txt +0 -0
  62. {auto-editor-24.13.1 → auto_editor-24.19.1}/pyproject.toml +0 -0
  63. {auto-editor-24.13.1 → auto_editor-24.19.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-editor
3
- Version: 24.13.1
3
+ Version: 24.19.1
4
4
  Summary: Auto-Editor: Effort free video editing!
5
5
  Author-email: WyattBlue <wyattblue@auto-editor.com>
6
6
  License: Unlicense
@@ -60,10 +60,10 @@ The `--edit` option is how auto-editor makes automated cuts.
60
60
  For example, edit out motionlessness in a video by setting `--edit motion`.
61
61
 
62
62
  ```
63
- # cut out sections where percentage of motion is less than 2.
64
- auto-editor example.mp4 --edit motion:threshold=2%
63
+ # cut out sections where the total motion is less than 2%.
64
+ auto-editor example.mp4 --edit motion:threshold=0.02
65
65
 
66
- # --edit is set to "audio:threshold=4%" by default.
66
+ # `--edit audio:threshold=0.04,stream=all` is used by defaut.
67
67
  auto-editor example.mp4
68
68
 
69
69
  # Different tracks can be set with different attribute.
@@ -73,34 +73,14 @@ auto-editor multi-track.mov --edit "(or audio:stream=0 audio:threshold=10%,strea
73
73
  Different editing methods can be used together.
74
74
  ```
75
75
  # 'threshold' is always the first argument for edit-method objects
76
- auto-editor example.mp4 --edit "(or audio:3% motion:6%)"
76
+ auto-editor example.mp4 --edit "(or audio:0.03 motion:0.06)"
77
77
  ```
78
78
 
79
79
  You can also use `dB` unit, a volume unit familiar to video-editors (case sensitive):
80
80
  ```
81
- auto-editor example.mp4 --edit audio:threshold=-19dB
81
+ auto-editor example.mp4 --edit audio:-19dB
82
82
  auto-editor example.mp4 --edit audio:-7dB
83
83
  auto-editor example.mp4 --edit motion:-19dB
84
-
85
- # The `dB` unit is a just a macro that expands into an S-expression:
86
- # '-19dB
87
- # > '(pow 10 (/ -19 20))
88
- # (eval '(pow 10 (/ -19 20)))
89
- # > 0.11220184543019636
90
- ```
91
-
92
- ### Working With Multiple Audio Tracks
93
- By default, only the first audio track will used for editing (track 0). You can change this with these commands.
94
-
95
- Use all audio tracks for editing:
96
- ```
97
- auto-editor multi-track.mov --edit audio:stream=all
98
- ```
99
-
100
- Use only the second, fourth, and sixth audio track:
101
- ```
102
- # track numbers start at 0
103
- auto-editor so-many-tracks.mp4 --edit "(or audio:stream=1 audio:stream=3 audio:stream=5)"
104
84
  ```
105
85
 
106
86
  ### See What Auto-Editor Cuts Out
@@ -119,12 +99,10 @@ auto-editor example.mp4 --export premiere
119
99
  ```
120
100
 
121
101
  Auto-Editor can also export to:
122
-
123
102
  - DaVinci Resolve with `--export resolve`
124
103
  - Final Cut Pro with `--export final-cut-pro`
125
104
  - ShotCut with `--export shotcut`
126
-
127
- Other editors, like Sony Vegas, can understand the `premiere` format. If your favorite editor doesn't, you can use ` --export clip-sequence` which creates many video clips that can be imported and manipulated like normal.
105
+ - Individual media clips with `--export clip-sequence`
128
106
 
129
107
  ### Naming Timelines
130
108
  By default, auto-editor will name the timeline to "Auto-Editor Media Group" if the export supports naming.
@@ -188,14 +166,11 @@ List all available options:
188
166
  auto-editor --help
189
167
  ```
190
168
 
191
- Use `--help` with a specific option for more information:
169
+ Use `--help` with a specific option to learn more about it:
192
170
 
193
171
  ```
194
- auto-editor --scale --help
195
- --scale NUM
196
-
197
- default: 1.0
198
- Scale the output video's resolution by NUM factor
172
+ auto-editor -c:v --help
173
+ auto-editor --margin --help
199
174
  ```
200
175
 
201
176
  <h3 align="center">Auto-Editor is available on all major platforms</h3>
@@ -43,10 +43,10 @@ The `--edit` option is how auto-editor makes automated cuts.
43
43
  For example, edit out motionlessness in a video by setting `--edit motion`.
44
44
 
45
45
  ```
46
- # cut out sections where percentage of motion is less than 2.
47
- auto-editor example.mp4 --edit motion:threshold=2%
46
+ # cut out sections where the total motion is less than 2%.
47
+ auto-editor example.mp4 --edit motion:threshold=0.02
48
48
 
49
- # --edit is set to "audio:threshold=4%" by default.
49
+ # `--edit audio:threshold=0.04,stream=all` is used by defaut.
50
50
  auto-editor example.mp4
51
51
 
52
52
  # Different tracks can be set with different attribute.
@@ -56,34 +56,14 @@ auto-editor multi-track.mov --edit "(or audio:stream=0 audio:threshold=10%,strea
56
56
  Different editing methods can be used together.
57
57
  ```
58
58
  # 'threshold' is always the first argument for edit-method objects
59
- auto-editor example.mp4 --edit "(or audio:3% motion:6%)"
59
+ auto-editor example.mp4 --edit "(or audio:0.03 motion:0.06)"
60
60
  ```
61
61
 
62
62
  You can also use `dB` unit, a volume unit familiar to video-editors (case sensitive):
63
63
  ```
64
- auto-editor example.mp4 --edit audio:threshold=-19dB
64
+ auto-editor example.mp4 --edit audio:-19dB
65
65
  auto-editor example.mp4 --edit audio:-7dB
66
66
  auto-editor example.mp4 --edit motion:-19dB
67
-
68
- # The `dB` unit is a just a macro that expands into an S-expression:
69
- # '-19dB
70
- # > '(pow 10 (/ -19 20))
71
- # (eval '(pow 10 (/ -19 20)))
72
- # > 0.11220184543019636
73
- ```
74
-
75
- ### Working With Multiple Audio Tracks
76
- By default, only the first audio track will used for editing (track 0). You can change this with these commands.
77
-
78
- Use all audio tracks for editing:
79
- ```
80
- auto-editor multi-track.mov --edit audio:stream=all
81
- ```
82
-
83
- Use only the second, fourth, and sixth audio track:
84
- ```
85
- # track numbers start at 0
86
- auto-editor so-many-tracks.mp4 --edit "(or audio:stream=1 audio:stream=3 audio:stream=5)"
87
67
  ```
88
68
 
89
69
  ### See What Auto-Editor Cuts Out
@@ -102,12 +82,10 @@ auto-editor example.mp4 --export premiere
102
82
  ```
103
83
 
104
84
  Auto-Editor can also export to:
105
-
106
85
  - DaVinci Resolve with `--export resolve`
107
86
  - Final Cut Pro with `--export final-cut-pro`
108
87
  - ShotCut with `--export shotcut`
109
-
110
- Other editors, like Sony Vegas, can understand the `premiere` format. If your favorite editor doesn't, you can use ` --export clip-sequence` which creates many video clips that can be imported and manipulated like normal.
88
+ - Individual media clips with `--export clip-sequence`
111
89
 
112
90
  ### Naming Timelines
113
91
  By default, auto-editor will name the timeline to "Auto-Editor Media Group" if the export supports naming.
@@ -171,14 +149,11 @@ List all available options:
171
149
  auto-editor --help
172
150
  ```
173
151
 
174
- Use `--help` with a specific option for more information:
152
+ Use `--help` with a specific option to learn more about it:
175
153
 
176
154
  ```
177
- auto-editor --scale --help
178
- --scale NUM
179
-
180
- default: 1.0
181
- Scale the output video's resolution by NUM factor
155
+ auto-editor -c:v --help
156
+ auto-editor --margin --help
182
157
  ```
183
158
 
184
159
  <h3 align="center">Auto-Editor is available on all major platforms</h3>
@@ -0,0 +1,2 @@
1
+ __version__ = "24.19.1"
2
+ version = "24w19a"
@@ -140,7 +140,7 @@ def fcp11_write_xml(
140
140
  "ref": ref,
141
141
  "offset": fraction(clip.start),
142
142
  "duration": fraction(clip.dur),
143
- "start": fraction(int(clip.offset // clip.speed)),
143
+ "start": fraction(clip.offset),
144
144
  "tcFormat": "NDF",
145
145
  }
146
146
  asset = SubElement(spine, "asset-clip", clip_properties)
@@ -296,7 +296,7 @@ def fcp7_read_xml(path: str, ffmpeg: FFmpeg, log: Log) -> v3:
296
296
 
297
297
  start = clipitem["start"]
298
298
  dur = clipitem["end"] - start
299
- offset = int(clipitem["in"] * speed)
299
+ offset = clipitem["in"]
300
300
 
301
301
  vobjs[t].append(
302
302
  TlVideo(start, dur, sources[file_id], offset, speed, stream=0)
@@ -324,7 +324,7 @@ def fcp7_read_xml(path: str, ffmpeg: FFmpeg, log: Log) -> v3:
324
324
 
325
325
  start = clipitem["start"]
326
326
  dur = clipitem["end"] - start
327
- offset = int(clipitem["in"] * speed)
327
+ offset = clipitem["in"]
328
328
 
329
329
  aobjs[t].append(
330
330
  TlAudio(
@@ -414,8 +414,8 @@ def fcp7_write_xml(name: str, output: str, tl: v3, log: Log) -> None:
414
414
 
415
415
  _start = f"{clip.start}"
416
416
  _end = f"{clip.start + clip.dur}"
417
- _in = f"{int(clip.offset / clip.speed)}"
418
- _out = f"{int(clip.offset / clip.speed) + clip.dur}"
417
+ _in = f"{clip.offset}"
418
+ _out = f"{clip.offset + clip.dur}"
419
419
 
420
420
  clipitem = ET.SubElement(track, "clipitem", id=f"clipitem-{j+1}")
421
421
  ET.SubElement(clipitem, "name").text = src.path.stem
@@ -473,8 +473,8 @@ def fcp7_write_xml(name: str, output: str, tl: v3, log: Log) -> None:
473
473
 
474
474
  _start = f"{aclip.start}"
475
475
  _end = f"{aclip.start + aclip.dur}"
476
- _in = f"{int(aclip.offset / aclip.speed)}"
477
- _out = f"{int(aclip.offset / aclip.speed) + aclip.dur}"
476
+ _in = f"{aclip.offset}"
477
+ _out = f"{aclip.offset + aclip.dur}"
478
478
 
479
479
  if not src.videos:
480
480
  clip_item_num = j + 1
@@ -173,6 +173,27 @@ def read_v1(tl: Any, log: Log) -> v3:
173
173
  vtl: VSpace = []
174
174
  atl: ASpace = [[] for _ in range(len(src.audios))]
175
175
 
176
+ # Verify chunks
177
+ last_end: int | None = None
178
+ if type(chunks) is not list:
179
+ log.error("chunks key must be an array")
180
+
181
+ for i, chunk in enumerate(chunks):
182
+ if type(chunk) is not list or len(chunk) != 3:
183
+ log.error(f"Invalid chunk at chunk {i}")
184
+ if type(chunk[0]) is not int or chunk[0] < 0:
185
+ log.error(f"Invalid start at chunk {i}")
186
+ if type(chunk[1]) is not int or chunk[1] <= chunk[0]:
187
+ log.error(f"Invalid end at chunk {i}")
188
+ if type(chunk[2]) is not float or chunk[2] < 0.0 or chunk[2] > 99999.0:
189
+ log.error(f"Invalid speed at chunk {i}")
190
+
191
+ if i == 0 and chunk[0] != 0:
192
+ log.error("First chunk must start with 0")
193
+ if i != 0 and chunk[0] != last_end:
194
+ log.error(f"Invalid start at chunk {i}")
195
+ last_end = chunk[1]
196
+
176
197
  for c in clipify(chunks, src):
177
198
  if src.videos:
178
199
  if len(vtl) == 0:
@@ -92,7 +92,7 @@ def shotcut_write_mlt(output: str, tl: v3) -> None:
92
92
 
93
93
  for clip in clips:
94
94
  src = clip.src
95
- length = to_timecode((clip.offset / clip.speed + clip.dur) / tb, "standard")
95
+ length = to_timecode((clip.offset + clip.dur) / tb, "standard")
96
96
 
97
97
  if clip.speed == 1:
98
98
  resource = f"{src.path}"
@@ -127,8 +127,8 @@ def shotcut_write_mlt(output: str, tl: v3) -> None:
127
127
 
128
128
  producers = 0
129
129
  for i, clip in enumerate(clips):
130
- _in = to_timecode(clip.offset / clip.speed / tb, "standard")
131
- _out = to_timecode((clip.offset / clip.speed + clip.dur) / tb, "standard")
130
+ _in = to_timecode(clip.offset / tb, "standard")
131
+ _out = to_timecode((clip.offset + clip.dur) / tb, "standard")
132
132
 
133
133
  tag_name = f"chain{i}"
134
134
  if clip.speed != 1:
@@ -42,7 +42,7 @@ def clipify(chunks: Chunks, src: FileInfo, start: int = 0) -> list[Clip]:
42
42
  if dur == 0:
43
43
  continue
44
44
 
45
- offset = chunk[0]
45
+ offset = int(chunk[0] / chunk[2])
46
46
 
47
47
  if not (clips and clips[-1].start == round(start)):
48
48
  clips.append(Clip(start, dur, offset, chunk[2], src))
@@ -125,7 +125,14 @@ def make_timeline(
125
125
  if inp is None:
126
126
  tb, res = Fraction(30), (1920, 1080)
127
127
  else:
128
- tb = inp.get_fps() if args.frame_rate is None else args.frame_rate
128
+ tb = round(inp.get_fps() if args.frame_rate is None else args.frame_rate, 2)
129
+ ntsc = Fraction(30_000, 1001)
130
+ film_ntsc = Fraction(24_000, 1001)
131
+ if tb == round(ntsc, 2):
132
+ tb = ntsc
133
+ elif tb == round(film_ntsc, 2):
134
+ tb = film_ntsc
135
+
129
136
  res = inp.get_res() if args.resolution is None else args.resolution
130
137
 
131
138
  try:
@@ -228,7 +235,7 @@ def make_timeline(
228
235
  if dur == 0:
229
236
  continue
230
237
 
231
- offset = chunk[1]
238
+ offset = int(chunk[1] / chunk[3])
232
239
 
233
240
  if not (clips and clips[-1].start == round(start)):
234
241
  clips.append(Clip(start, dur, offset, chunk[3], chunk[0]))
@@ -32,7 +32,8 @@ def all_cuts(tl: v3, in_len: int) -> list[int]:
32
32
  oe: list[tuple[int, int]] = []
33
33
 
34
34
  for clip in tl.a[0]:
35
- oe.append((clip.offset, clip.offset + clip.dur))
35
+ old_offset = clip.offset * clip.speed
36
+ oe.append((round(old_offset * clip.speed), round(old_offset + clip.dur)))
36
37
 
37
38
  cut_lens = []
38
39
  i = 0
@@ -208,8 +208,8 @@ def make_new_audio(
208
208
  del leng
209
209
 
210
210
  samp_list = samples[(clip.src, clip.stream)]
211
- samp_start = clip.offset * sr // tb
212
- samp_end = round((clip.offset + clip.dur * clip.speed) * sr / tb)
211
+ samp_start = round(clip.offset * clip.speed * sr / tb)
212
+ samp_end = round((clip.offset + clip.dur) * clip.speed * sr / tb)
213
213
  if samp_end > len(samp_list):
214
214
  samp_end = len(samp_list)
215
215
 
@@ -244,7 +244,7 @@ def render_av(
244
244
  for lobj in layer:
245
245
  if isinstance(lobj, TlVideo):
246
246
  if index >= lobj.start and index < (lobj.start + lobj.dur):
247
- _i = lobj.offset + round((index - lobj.start) * lobj.speed)
247
+ _i = round((lobj.offset + index - lobj.start) * lobj.speed)
248
248
  obj_list.append(VideoFrame(_i, lobj.src))
249
249
  elif index >= lobj.start and index < lobj.start + lobj.dur:
250
250
  obj_list.append(lobj)
@@ -53,7 +53,7 @@ hevc_en = ["hevc", "libx265", "hevc_videotoolbox", "hevc_amf", "hevc_nvenc", "he
53
53
  av1_en = ["av1", "libaom-av1", "av1_nvenc", "av1_amf"]
54
54
  prores_en = ["prores", "prores_videotoolbox", "prores_aw", "prores_ks"]
55
55
  aac_en = ["aac", "aac_at", "libfdk_aac"]
56
-
56
+ opus_en = ["opus", "libopus"]
57
57
 
58
58
  h265: DictContainer = {
59
59
  "allow_video": True,
@@ -80,7 +80,7 @@ mp4: DictContainer = {
80
80
  "allow_subtitle": True,
81
81
  "allow_image": True,
82
82
  "vcodecs": h264_en + hevc_en + av1_en + ["vp9", "mpeg4", "mpeg2video", "mjpeg"],
83
- "acodecs": aac_en + ["mp3", "opus", "flac", "vorbis", "libvorbis", "ac3", "mp2"],
83
+ "acodecs": aac_en + opus_en + ["mp3", "flac", "vorbis", "libvorbis", "ac3", "mp2"],
84
84
  "vstrict": True,
85
85
  }
86
86
  ogg: DictContainer = {
@@ -88,16 +88,16 @@ ogg: DictContainer = {
88
88
  "allow_audio": True,
89
89
  "allow_subtitle": True,
90
90
  "vcodecs": ["libtheora", "theora"],
91
- "acodecs": ["libvorbis", "vorbis", "flac", "opus", "speex"],
91
+ "acodecs": opus_en + ["libvorbis", "vorbis", "flac", "speex"],
92
92
  "vstrict": True,
93
93
  }
94
94
 
95
95
  mka_audio = (
96
96
  ["libvorbis", "vorbis"]
97
97
  + aac_en
98
+ + opus_en
98
99
  + [
99
100
  "mp3",
100
- "opus",
101
101
  "flac",
102
102
  "ac3",
103
103
  "mp2",
@@ -172,11 +172,11 @@ containers: dict[str, DictContainer] = {
172
172
  },
173
173
  "opus": {
174
174
  "allow_audio": True,
175
- "acodecs": ["opus", "flac", "libvorbis", "vorbis", "speex"],
175
+ "acodecs": opus_en + ["flac", "libvorbis", "vorbis", "speex"],
176
176
  },
177
177
  "oga": {
178
178
  "allow_audio": True,
179
- "acodecs": ["flac", "libvorbis", "vorbis", "opus", "speex"],
179
+ "acodecs": opus_en + ["flac", "libvorbis", "vorbis", "speex"],
180
180
  },
181
181
  "flac": {
182
182
  "allow_audio": True,
@@ -188,7 +188,7 @@ containers: dict[str, DictContainer] = {
188
188
  "allow_audio": True,
189
189
  "allow_subtitle": True,
190
190
  "vcodecs": ["vp9", "vp8"] + av1_en,
191
- "acodecs": ["opus", "vorbis", "libvorbis"],
191
+ "acodecs": opus_en + ["vorbis", "libvorbis"],
192
192
  "scodecs": ["webvtt"],
193
193
  "vstrict": True,
194
194
  "sstrict": True,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-editor
3
- Version: 24.13.1
3
+ Version: 24.19.1
4
4
  Summary: Auto-Editor: Effort free video editing!
5
5
  Author-email: WyattBlue <wyattblue@auto-editor.com>
6
6
  License: Unlicense
@@ -60,10 +60,10 @@ The `--edit` option is how auto-editor makes automated cuts.
60
60
  For example, edit out motionlessness in a video by setting `--edit motion`.
61
61
 
62
62
  ```
63
- # cut out sections where percentage of motion is less than 2.
64
- auto-editor example.mp4 --edit motion:threshold=2%
63
+ # cut out sections where the total motion is less than 2%.
64
+ auto-editor example.mp4 --edit motion:threshold=0.02
65
65
 
66
- # --edit is set to "audio:threshold=4%" by default.
66
+ # `--edit audio:threshold=0.04,stream=all` is used by defaut.
67
67
  auto-editor example.mp4
68
68
 
69
69
  # Different tracks can be set with different attribute.
@@ -73,34 +73,14 @@ auto-editor multi-track.mov --edit "(or audio:stream=0 audio:threshold=10%,strea
73
73
  Different editing methods can be used together.
74
74
  ```
75
75
  # 'threshold' is always the first argument for edit-method objects
76
- auto-editor example.mp4 --edit "(or audio:3% motion:6%)"
76
+ auto-editor example.mp4 --edit "(or audio:0.03 motion:0.06)"
77
77
  ```
78
78
 
79
79
  You can also use `dB` unit, a volume unit familiar to video-editors (case sensitive):
80
80
  ```
81
- auto-editor example.mp4 --edit audio:threshold=-19dB
81
+ auto-editor example.mp4 --edit audio:-19dB
82
82
  auto-editor example.mp4 --edit audio:-7dB
83
83
  auto-editor example.mp4 --edit motion:-19dB
84
-
85
- # The `dB` unit is a just a macro that expands into an S-expression:
86
- # '-19dB
87
- # > '(pow 10 (/ -19 20))
88
- # (eval '(pow 10 (/ -19 20)))
89
- # > 0.11220184543019636
90
- ```
91
-
92
- ### Working With Multiple Audio Tracks
93
- By default, only the first audio track will used for editing (track 0). You can change this with these commands.
94
-
95
- Use all audio tracks for editing:
96
- ```
97
- auto-editor multi-track.mov --edit audio:stream=all
98
- ```
99
-
100
- Use only the second, fourth, and sixth audio track:
101
- ```
102
- # track numbers start at 0
103
- auto-editor so-many-tracks.mp4 --edit "(or audio:stream=1 audio:stream=3 audio:stream=5)"
104
84
  ```
105
85
 
106
86
  ### See What Auto-Editor Cuts Out
@@ -119,12 +99,10 @@ auto-editor example.mp4 --export premiere
119
99
  ```
120
100
 
121
101
  Auto-Editor can also export to:
122
-
123
102
  - DaVinci Resolve with `--export resolve`
124
103
  - Final Cut Pro with `--export final-cut-pro`
125
104
  - ShotCut with `--export shotcut`
126
-
127
- Other editors, like Sony Vegas, can understand the `premiere` format. If your favorite editor doesn't, you can use ` --export clip-sequence` which creates many video clips that can be imported and manipulated like normal.
105
+ - Individual media clips with `--export clip-sequence`
128
106
 
129
107
  ### Naming Timelines
130
108
  By default, auto-editor will name the timeline to "Auto-Editor Media Group" if the export supports naming.
@@ -188,14 +166,11 @@ List all available options:
188
166
  auto-editor --help
189
167
  ```
190
168
 
191
- Use `--help` with a specific option for more information:
169
+ Use `--help` with a specific option to learn more about it:
192
170
 
193
171
  ```
194
- auto-editor --scale --help
195
- --scale NUM
196
-
197
- default: 1.0
198
- Scale the output video's resolution by NUM factor
172
+ auto-editor -c:v --help
173
+ auto-editor --margin --help
199
174
  ```
200
175
 
201
176
  <h3 align="center">Auto-Editor is available on all major platforms</h3>
@@ -1,2 +0,0 @@
1
- __version__ = "24.13.1"
2
- version = "24w13a"
File without changes
File without changes