Skip to content

Releases: Zulko/moviepy

v2.1.1

25 Nov 04:32
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.1.0...v2.1.1

v2.1.0

24 Nov 23:44
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.0.0...v2.1.0

v2.0.0

20 Nov 04:56
70b146a
Compare
Choose a tag to compare

What's Changed - a lot

First release to PyPI in 4 years, so here is an unfiltered list of contributions

Read more

v2.0.0.dev2

05 Oct 00:26
Compare
Choose a tag to compare
v2.0.0.dev2 Pre-release
Pre-release

v2.0.0.dev2

Full Changelog

There are still no major breaking changes compared to v1.0.3. Expect them to come in the next dev update.
Any new changes made to the master branch will now be instantly reflected at https://moviepy.readthedocs.io, which is where documentation for all versions will be in the future. [#1328]
Install with pip install moviepy --pre --upgrade.

Added

  • New pix_fmt parameter in VideoFileClip, VideoClip.write_videofile(), VideoClip.write_gif() that allows passing a custom pix_fmt parameter such as "bgr24" to FFmpeg [#1237]
  • New change_duration parameter in Clip.set_fps() that allows changing the video speed to match the new fps [#1329]

Changed

  • ffmpeg_parse_infos() and VideoFileClip now have optional decode_file parameter that ensures that the detected duration is correct, but may take a long time to run [#1063, #1222]
  • ffmpeg_parse_infos() and VideoFileClip now use fps metadata instead of tbr to detect a video's fps value [#1222]
  • FFMPEG_AudioReader.close_proc() -> FFMPEG_AudioReader.close() for consistency with FFMPEG_VideoReader [#1220]

Fixed

  • Fixed ffmpeg_tools.ffmpeg_extract_subclip creating clips with incorrect duration metadata [#1317]
  • OSError: MoviePy error: failed to read the first frame of video file... would occasionally occur for no reason [#1220]
  • Fixed warnings being suppressed [#1191]
  • Fixed UnicodeDecodeError crash when file metadata contained non-UTF8 characters [#959]

v2.0.0.dev1

04 Jun 10:22
Compare
Choose a tag to compare
v2.0.0.dev1 Pre-release
Pre-release

v2.0.0.dev1 (2020-06-04)

Full Changelog

This development version introduces many bug-fixes and changes. Please note that there may be large backwards-incompatible changes between dev versions!
The online documentation has not been updated to reflect the changes in the v2.0.0 branch, so for help on how to use the new features please refer to the docstrings in the source code.
Install with pip install moviepy --pre --upgrade.

Important Announcements

  • Support removed for Python versions 2.7, 3.4 & 3.5 [#1103, #1106]
  • If you were previously setting custom locations for FFmpeg or ImageMagick in config_defaults.py and MoviePy still cannot autodetect the binaries, you will need to switch to the new method using enviroment variables. [#1109]
  • All previously deprecated methods and parameters have been removed [#1115]

Added

  • BitmapClip allows creating of custom frames using strings of letters
  • Clips can now be tested for equality with other clips using ==. This checks whether every frame of the two clips are identical
  • Support for path-like objects as an option wherever filenames are passed in as arguments [#1137]
  • Autodetect ImageMagick executable on Windows [#1109]
  • Optionally configure paths to FFmpeg and ImageMagick binaries with environment variables or a .env file [#1109]
  • Optional encoding parameter in SubtitlesClip [#1043]
  • Added new ffmpeg_stabilize_video() function in ffmpeg_tools
  • Optional temp_audiofile_path parameter in VideoClip.write_videofile() to specify where the temporary audiofile should be created [#1144]
  • VideoClip.set_layer() to specify the layer of the clip for use when creating a CompositeVideoClip [#1176]
  • ffmpeg_parse_infos additionally returns "video_bitrate" and "audio_bitrate" values [#930]
  • Access to the source video's bitrate in a VideoFileClip or AudioFileClip through videoclip.reader.bitrate and audioclip.reader.bitrate [#930]

Changed

  • vfx.scroll arguments w and h have had their order swapped. The correct order is now w, h but it is preferable to explicitly use keyword arguments
  • Removed extra . in the output file name of ffmpeg_extract_subclip() when targetname is not specified [#939]

Removed

  • Support removed for Python versions 2.7, 3.4 & 3.5
  • Setting paths to ImageMagick and FFMpeg binaries in config_defaults.py is no longer possible [#1109]
  • Removed config.get_setting() and config.change_settings() functions [#1109]
  • All previously deprecated methods and parameters [#1115]:
    • AudioClip.to_audiofile() -> use AudioClip.write_audiofile()
    • VideoClip.to_videofile() -> use VideoClip.write_videofile()
    • VideoClip.to_images_sequence() -> use VideoClip.write_images_sequence()
    • concatenate() -> use concatenate_videoclips()
    • verbose parameter in AudioClip.write_audiofile(), ffmpeg_audiowriter(), VideoFileClip(), VideoClip.write_videofile(), VideoClip.write_images_sequence(), ffmpeg_write_video(), write_gif(), write_gif_with_tempfiles(), write_gif_with_image_io() -> Instead of verbose=False, use logger=None
    • verbose_print() -> no replacement
    • col parameter in ColorClip() -> use color

Fixed

  • When using VideoClip.write_videofile() with write_logfile=True, errors would not be properly reported [#890]
  • TextClip.list("color") now returns a list of bytes, not strings [#1119]
  • TextClip.search("colorname", "color") does not crash with a TypeError [#1119]
  • vfx.even_size previously created clips with odd sizes [#1124]
  • IndexError in vfx.freeze, vfx.time_mirror and vfx.time_symmetrize [#1124]
  • Using rotate() with a ColorClip no longer crashes [#1139]
  • AudioFileClip would not generate audio identical to the original file [#1108]
  • Fixed TypeError when using filename instead of txt parameter in TextClip [#1201]
  • Several issues resulting from incorrect time values due to floating point errors [#1195], for example:
    • Blank frames at the end of clips [#210]
    • Sometimes getting IndexError: list index out of range when using concatenate_videoclips [#646]
  • Applying resize with a non-constant newsize to a clip with a mask would remove the mask [#1200]
  • Using color_gradient() would crash with ValueError: The truth value of an array with more than one element is ambiguous [#1212]

v1.0.3

07 May 16:29
db19920
Compare
Choose a tag to compare

v1.0.3 (2020-05-07)

Full Changelog

Bonus release to fix critical error when working with audio: AttributeError: 'NoneType' object has no attribute 'stdout' #1185

v1.0.2

26 Mar 10:47
Compare
Choose a tag to compare

v1.0.2 (2020-03-26)

Full Changelog

Note that this is likely to be the last release before v2.0, which will drop support for Python versions 2.7, 3.4 & 3.5 and will introduce other backwards-incompatible changes.

Notable bug fixes:

  • Fixed bug that meant that some VideoFileClips were created without audio [#968]
  • Fixed bug so now the slide_out effect works [#795]

Fixed bugs:

Merged pull requests

Merged pull requests:

Closed issues

Closed issues:

  • ImageSequenceClip write_videofile #1098
  • Formatting code with Black #1097
  • Make effects be callable classes #1096
  • URGENT - Documentation is inaccessible #1086
  • Drop support for python < 3.6 #1081
  • TextClip filenotfounderror winerror2 #1080
  • unable to create video from images #1074
  • Crash on loading the video, windows 10 #1071
  • Audio Issue while concatenate_videoclips'ing ImageClip and VideoFileClip (contains audio already) #1064
  • AttributeError: 'NoneType' object has no attribute 'stdout' #1054
  • Overlay a video on top of an image with Moviepy #1053
  • get_frame fails if not an early frame #1052
  • from google.colab import drive drive.mount('/content/drive') import cv2 import numpy as np from skimage import morphology from IPython import display import PIL image = cv2.imread('/content/drive/My Drive/CAR3/11.JPG',cv2.IMREAD_COLOR) from google.colab.patches import cv2_imshow #image = cv2.resize(image,(384,192)) cv2_imshow(image) #1051
  • Segmentation fault (core dumped) #1048
  • zip over two iter_frames functions doesn't render proper result #1047
  • CompositeVideoClip([xxx]).rotate(90) ValueError: axes don't match array #1042
  • to_soundarray Index error #1034
  • write_videofile does not add audio #1032
  • moviepy.video.io.VideoFileClip.VideoFileClip.set_audio does not set audio #1030
  • loop for concatenate_videoclips #1027
  • How to resize ImageClip? #1004
  • Pygame pollutes stdio with spammy message #985
  • Issue with ffmpeg version #934
  • No release notes for 1.0.0? #917
  • Imageio's new use of imageio-ffmpeg #908
  • ModuleNotFound: No module named 'imageio\_ffmpeg', or imageio v2.5.0 is breaking ffmpeg detection in config #906
  • CompositeVideoClip has no audio #876
  • Handling of the ffmpeg dependency #859
  • 'ffmpeg-linux64-v3.3.1' was not found on your computer; downloading it now. #839
  • Typo in variable name in transitions.py(t_s instead of ts) #692
  • version 0.2.3.2 TypeError: must be str, not bytes #650
  • AWS Lambda - Moviepy Error - #638
  • Adding conda-forge package #616
  • Several YouTube examples in Gallery page are unable to load. #600
  • ffmpeg not installed on Mac #595
  • FFMPEG not downloaded #493
  • Fix documentation #482
  • Moviepy is producing garbled videos #356
  • Help with contributing to the documentation? #327
  • audio custom filter documentation? #267
  • Mistake in doc, clips.html part. #136

v1.0.1

01 Oct 19:03
15ed51c
Compare
Choose a tag to compare

v1.0.1 (2019-10-01)

Full Changelog

New features

  • Added support for Windows CI
  • Lots of bug fixes

Full details

Merged pull requests

Merged pull requests:

Closed issues

Closed issues:

  • Thoughts on re-routing tqdm progress bar for external use? #412
  • Progress bar #128
  • website video examples broken videos #1019
  • Audio glitches when using concatenate_videoclips. #1005
  • txt_clip = TextClip(filename='learn.srt') --bug:TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType #984
  • txt_clip = TextClip(filename='learn.srt') --bug:TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType #983
  • txt_clip = TextClip(filename='learn.srt')path should be string, bytes, os.PathLike or integer, not NoneType #982
  • write_videofile writes blank black when writing grayscale #973
  • i dont understand this question #967
  • Thank you guys! #957
  • Saving an opencv stream #953
  • Issue with reader not being defined #950
  • On Windows, ImageMagick needs to be installed with Utility mode for the convert.exe file to exist #937
  • extract subtitles #932
  • ffmpeg_parse_infos silently hangs on Windows when MP4 file contains enough metadata #926
  • crop missing from moviepy.video.fx.all #914
  • Segmentation Error on VPS #912
  • Error when installing with imageio #911
  • Backwards compatibility #889
  • frozen seconds in beginning of subclip using ffmpeg_extract_subclip() #847
  • [Errno 3] No such process : on Windows Sub Linux (ubuntu 16.x) #765
  • Progress bar newline error in Jupyter #740
  • Refer to magick on https://zulko.github.io/moviepy/install.html #689
  • Configure Appveyor support #628
  • tqdm progress bar write_videofile send to iterator #568
  • ffmpeg_extract_subclip returns black frames #508
  • Windows: specifying path to ImageMagick in config_defaults.py #378
  • AttributeError: 'NoneType' object has no attribute 'start' #191
  • ImageMagick write gif success but no file found #113

v1.0.0

01 Oct 18:58
2ad7285
Compare
Choose a tag to compare

v1.0.0 (2019-02-17)

Full Changelog

New features

Moviepy now supports much better progress bars, using Proglog. Support for custom callbacks and more!

Full details

Merged pull requests

Closed issues

  • Can't overlay gizeh animation onto video with transparency/mask #898
  • [0.2.4.0] Garbled audio when exporting mp3 from mp4? #891
  • Error with VideoFileClip(filePath) #868
  • I am trying to run this code #867
  • Out of memory exception #862
  • simple problem on the first step: importing moviepy.editor #852
  • MoviePy insert multiple images in a video #840
  • Videogrep can't works with Moviepy in Windows #834
  • File "<stdin>", line 1 error #832
  • ImageMagick error - Ubuntu 16.04 #831
  • Combining thousands of small clips into one file #827
  • TypeError: 'ImageClip' object is not iterable #824
  • OSError: [WinError 6] The handle is invalid... concatenating clips #823
  • How to add audio tracks. not to replace it. #822
  • Missing 'ffmpeg-win32-v3.2.4.exe' #821
  • No sound with an audio clip add to an video in quicktime #820
  • Pip fails when trying to install #812
  • PermissionError after trying to delete a file after it's purpose is done #810
  • video clip from URI #780
  • Fails on FreeBSD #756
  • inconsistent behaviour of clip.get_frame() #751
  • Error with write_videofile #727
  • Trying to use moviepy on lambda, but has problem with ffmpeg #642
  • Unexpected Behavior With negative t_start in Subclip #341
  • Could not find a format to read the specified file in mode 'i' #219
  • WindowsError[5] and AttributeError Exception #170
  • Can't make VideoFileClip 'utf8' #169
  • Rendered output missing first frame #155
  • Incorrect output when concatenate_videoclips two quicktime videos #144
  • a bytes object is recognised as a string #120

v0.2.3.5

31 May 20:43
Compare
Choose a tag to compare

v0.2.3.5 (2018-05-31)

Full Changelog

New features

Full details

Merged pull requests

Fixed bugs:

  • Removed Hz from audio_fps match in ffmpeg_parse_infos #665 (qmac)

Merged pull requests:

Closed issues

Closed issues:

  • 100% of GIF does not convert to MP4, gets cut short. #802
  • How to add audio track to MP4? #794
  • ffmpeg 4.0 NVIDIA NVDEC-accelerated Support ? #790
  • Help!!!! errors during installation on Mac #788
  • Blink fx uses deprecated(?) method with\_mask\(\) #786
  • Built-in file downloader downloads files repeatedly? #779
  • Error in compositing video and SubtitlesClip by CompositeVideoClip #778
  • SubtitlesClip #777
  • Video Background #774