Automated release: version and notes generated from pull requests merged since 3.9.2.
Fixed
.aif,.aiffand.cafoutputs are written; a.wmaoutput the run would encode into is refused (#517). The audio
extensions the skill reads were wider than the ones it had a codec for, and the rest were taken
for a video container:cut.py(except a stream copy of PCM),audio.py,silence.pyand
loudness.pygiven-o x.aiff
(or.aif,.caf) failed inside ffmpeg (kind: ffmpeg) after a dry run had planned it, an
audiojoin.pyrefused it as a video container andrender.py's podcast delivery as a copied
.mp4. They are written as 16-bit PCM (pcm_s16be, the AIFF and CAF muxers' own codec; a
stream copy keeps a PCM source's), lossless like.wav, so a bitrate is refused for them. (cut.py --accuratereportsprecision: samplefor them, as for.wav.)-o x.wmacompleted, verified, with H.264 and AAC in an ASF file; a run that would encode into.wma
is now refused askind: input(reasonoutput_extension_unsupported, a hint naming the
extensions the tools write), dry runs included, whether the name came from-oor a.wma
input's default, and beforeloudness.py's andsilence.py's measuring pass. A stream copy of
WMA sound into.wma(cut.pywithout--accurate,--segmentstoo, andmetadata.py) is
kept, as it was; a copy thatcut.py's length check would re-encode is refused instead, the
copy removed (--tolerance -1keeps it). A copy that fails leaves the file--overwritenamed untouched. Arender.pyproject is
refused where it would write a.wma: a single uncut WMA clip no stage touches is delivered as it
was, and a--stop-afterpreview is not refused for a delivery it does not write. Checked on FFmpeg 6.1.1 by probing the written files
(wmav1 and wmav2 sources).- A still picture given to
export.pyorjoin.pyis refused as an input, naminginsert.py
(#531).export.py STILLwrote one frame (0.04 s) withverified: truein each preset tried
(youtube,reels,h265,prores,copy, andprores4444from an RGBA still;giffailed
in its muxer), and every preset is now refused;join.pyjoined one frame
under--transition none, refused a transition as "too short" (and planned it in a dry run), and
refused--copyas a stream mismatch. Each is now the refusalcut.pyand the others give a still
since 3.9.0, a dry run included;insert.py STILL --duration Tmakes the clip. Arender.py
project with a still clip meets it through its join or export stage. - fix: aif, aiff and caf outputs are written, a .wma encode is refused; a still given to export or join is refused (#550)
What's Changed
- fix: aif, aiff and caf outputs are written, a .wma encode is refused; a still given to export or join is refused by @kajisho5 in #550
Full Changelog: v3.9.2...v3.9.3