Skip to content

v2.0.0.dev1

Pre-release
Pre-release
Compare
Choose a tag to compare
@tburrows13 tburrows13 released this 04 Jun 10:22
· 205 commits to master since this 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]