Skip to content

Latest commit

 

History

History
919 lines (794 loc) · 84.5 KB

CHANGELOG.md

File metadata and controls

919 lines (794 loc) · 84.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format from v2.0.0 onwards is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Full Changelog

Important Announcements

Added

  • Support for copy.copy(clip) and copy.deepcopy(clip) with same behaviour as clip.copy() #1442
  • audio.fx.multiply_stereo_volume to control volume by audio channels #1424
  • Support for retrieve clip frames number using clip.n_frames #1471
  • AudioClip.max_volume(stereo=True) now can return more than 2 channels #1464
  • video.io.ffmpeg_reader.ffmpeg_parse_infos returns data from all streams by FFmpeg inputs in attribute inputs #1466
  • video.io.ffmpeg_reader.ffmpeg_parse_infos returns metadata of the container in attribute metadata #1466
  • center, translate and bg_color arguments to video.fx.rotate #1474
  • audio.fx.audio_delay FX #1481
  • start_time and end_time optional arguments to multiply_volume FX which allow to specify a range applying the transformation #1572
  • loop argument support writing GIFs with ffmpeg for write_gif and write_gif_with_tempfiles #1605

Changed

  • Lots of method and parameter names have been changed. This will be explained better in the documentation soon. See #1170 for more information. #1170
  • Changed recommended import from import moviepy.editor to import moviepy. This change is fully backwards compatible #1340
  • Renamed audio.fx.volumex to audio.fx.multiply_volume #1424
  • Renamed cols_widths argument of clips_array function by cols_heights #1465
  • video_nframes attribute of dictionary returned from ffmpeg_parse_infos renamed to video_n_frames #1471
  • Renamed colorx FX by multiply_color #1475
  • Renamed speedx FX by multiply_speed #1478
  • make_loopable transition must be used as FX #1477
  • requests package is no longer a dependency #1566
  • accel_decel FX raises ValueError if sooness parameter value is lower than zero #1546
  • Clip.subclip raise ValueError if start_time >= clip.duration (previously printing a message to stdout only if start_time > clip.duration) #1589
  • Allow to pass times in HH:MM:SS format to t argument of clip.show method #1594
  • TextClip now raises ValueError if none of the text or filename arguments are specified #1842

Deprecated

  • moviepy.video.fx.all and moviepy.audio.fx.all. Use the fx method directly from the clip instance or import the fx function from moviepy.video.fx and moviepy.audio.fx. #1105

Removed

  • VideoFileClip.coreader and AudioFileClip.coreader methods removed. Use VideoFileClip.copy and AudioFileClip.copy instead #1442
  • audio.fx.audio_loop removed. Use video.fx.loop instead for all types of clip #1451
  • video.compositing.on_color removed. Use VideoClip.on_color instead #1456

Fixed

  • Fixed BitmapClip with fps != 1 not returning the correct frames or crashing #1333
  • Fixed rotate sometimes failing with ValueError: axes don't match array #1335
  • Fixed positioning error generating frames in CompositeVideoClip #1420
  • Changed deprecated tostring method by tobytes in video.io.gif_writers::write_gif #1429
  • Fixed calling audio_normalize on a clip with no sound causing ZeroDivisionError #1401
  • Fixed freeze FX was freezing at time minus 1 second as the end #1461
  • Fixed Clip.cutout transformation not being applied to audio #1468
  • Fixed arguments inconsistency in video.tools.drawing.color_gradient #1467
  • Fixed fps not defined in CompositeAudioClip at initialization #1462
  • Fixed clip.preview() crashing at exit when running inside Jupyter Notebook in Windows #1537
  • Fixed rotate FX not being applied to mask images #1399
  • Fixed opacity error blitting VideoClips #1552
  • Fixed rotation metadata of input not being taken into account rendering VideoClips #577
  • Fixed mono clips crashing when audio_fadein FX applied #1574
  • Fixed mono clips crashing when audio_fadeout FX applied #1578
  • Fixed scroll FX not being scrolling #1591
  • Fixed parsing FFMPEG streams with square brackets #1781
  • Fixed audio processing for streams with missing audio_bitrate #1783
  • Fixed parsing language from stream output with square brackets #1837

v2.0.0.dev2 (2020-10-05)

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 (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 (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 (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:

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 (2019-10-01)

Full Changelog

Implemented enhancements:

  • Thoughts on re-routing tqdm progress bar for external use? #412
  • Progress bar #128

Fixed bugs:

  • More resilient Windows CI regarding fetching ImageMagick binaries #941 (Overdrivr)
  • [docker] drop the not needed download and symlink of ffmpeg #916 (das7pad)

Closed issues:

  • 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

Merged pull requests:

v1.0.0 (2019-02-17)

Full Changelog

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

Merged pull requests:

v0.2.3.5 (2018-05-31)

Full Changelog

Fixed bugs:

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

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

Merged pull requests:

v0.2.3.4 (2018-04-22)

Full Changelog

Closed issues:

  • fail to install #771
  • install moviepy #758
  • How to prepend hexadecimal data to a binary file? #757
  • It’s time for a new release #742
  • wrong video duration value when concatenating videos with method = compose #574

Merged pull requests:

v0.2.3.3 (2018-04-17)

Full Changelog

Implemented enhancements:

  • Use feature detection instead of version detection #721 (cclauss)
  • Fixed Optional Progress Bar in cuts/detect_scenes #587 (scherroman)
  • Fix travis build and enable pip caching #561 (mbeacom)
  • Avoid mutable default arguments #553 (mbeacom)
  • add ImageSequenceClip image size exception #550 (earney)

Fixed bugs:

Closed issues:

  • Overly Restrictive Requirements #767
  • Using a gif as an ImageClip? #764
  • How can I include a moving 'arrow' in a clip? #762
  • How to call moviepy.video.fx.all.crop() ? #760
  • ImportError: Imageio Pillow requires Pillow, not PIL! #748
  • Fail to call VideoFileClip() because of WinError 6 #746
  • concatenate_videoclips with fadein fadeout #743
  • Ignore - sorry! #739
  • Image becomes blurr with high fps #735
  • Https protocol not found with ffmpeg #732
  • Storing Processed Video clip takes a long time #726
  • image corruption when concatenating images of different sizes #725
  • How to install MoviePy on OS High Sierra #706
  • Issue when running the first example of text overlay in ubuntu 16.04 with python3 #703
  • Extracting frames #702
  • Error - The handle is invalid - Windows Only #697
  • ImageMagick not detected by moviepy while using SubtitlesClip #693
  • Textclip is not working at all #691
  • Remove Python 3.3 testing ? #688
  • In idle, 25 % CPU #676
  • Audio error #675
  • Insert a ImageClip in a CompositeVideoClip. How to add nil audio #669
  • Issue with nesting context managers #655
  • Output video is garbled, single frames output are fine #651
  • 'missing handle' error #644
  • issue with proc being None #636
  • Looping parameter is missing from write_gif_with_image_io() #629
  • would it be optionally possible to use pgmagick package ? (instead of ImageMagick binary) #625
  • concatenate_videoclips() can't handle TextClips #622
  • Writing movie one frame at a time #619
  • Fatal Python error: PyImport_GetModuleDict: no module dictionary! #618
  • line 54, in requires_duration return #601
  • test_duration() fails in test_TextClip() #598
  • Geting framesize from moviepy #571
  • Write_videofile results in 1930x1080 even when I force clip.resize(width=1920,height=1080) before write_videofile #547
  • Is there one potential bug in FFMPEG_READER? #546
  • vfx.scroll giving TypeError: slice indices must be integers or None or have an __index__ method #527
  • AttributeError: AudioFileClip instance has no attribute 'afx' #513
  • ImageSequenceClip repeats frames depending on fps #464
  • manual_tracking format issue #373
  • resize video when time changed trigger a error #334
  • WindowsError: [Error 5] Access is denied #294
  • TypeError in Adding Soundtrack #279
  • IndexError when converting audio to_soundarray() #246
  • Defaults fail for ImageSequenceClip() #218
  • Unable to use unicode strings with Python 2 #76
  • audio normalization #32
  • Unclosed processes. #19

Merged pull requests:

v0.2.3.2 (2017-04-13)

Full Changelog

Implemented enhancements:

Closed issues:

  • Youtube videos fail to load in documentation #536
  • unicodeDecoderError by running the setup.py during moviepy pip install #532
  • Documentation build failures #525
  • Index is out of bounds - AudioFileClip #521
  • Should we push another version? #481
  • Add matplotlib example to the user guide? #421
  • Fails to list fx after freezing an app with moviepy #274
  • Documentation doesn't match ffmpeg presets #232

Merged pull requests:

v0.2.3.1 (2017-04-05)

Full Changelog

Implemented enhancements:

  • [Windows users: help !] Finding ImageMagick automatically on windows #80
  • Save to Amazon S3 #6
  • Fix for cleaning up os calls through Popen #501 (gyglim)
  • pick highest fps when concatenating #416 (BrianLee608)

Closed issues:

  • concatenate_videoclips([clip1,clip2]) results in a clip where the second clip is skewed and has severe lines #520
  • FFMPEG crashes if the script is a .pyw #517
  • VideoFileClip instance has no attribute 'reader' #512
  • Adding emoji with moviepy #507
  • How to remove original audio from the video file ? #504
  • Duration Format With Moviepy #502
  • AttributeError: 'numpy.ndarray' object has no attribute 'tobytes' #499
  • Possible to create out of bounds subclip #470
  • New install... VideoFileClip("x.mp4").subclip(0,13) gives "reader not defined error" #461
  • Bytes-like object is required, not 'str' in version 0.2.2.13 #455
  • Can't import gifs into moviepy #452
  • AudioFileClip #448
  • Error with Pillow #445
  • Moviepy AttributeError: 'NoneType' object has no attribute 'shape' #439
  • This is what exception.... #437
  • when I from moviepy.editor import *, There cause exception,That's why....... #436
  • No available fonts in moviepy #426
  • Project maintenance, mgmt, workflow etc. #422
  • Cannot run in a django project on apache #420
  • error 'unicode' object has no attribute 'shape' #417
  • VideoClip has no attribute fps error when trying to concatenate #407
  • The Travis tester seems to be failing #406
  • Slow motion video massively sped up #404
  • moviepy not able to find installed ffmpeg bug? #396
  • Cannot open audio: AttributeError: 'NoneType' object has no attribute 'start' #393
  • DirectoryClip??? Where is it? #385
  • TypeError: 'float' object cannot be interpreted as an integer #376
  • Minor Documentation typo in VideoFileClip #375
  • Documentation Update: VideoTools #372
  • TextClip.list('color') failed to return color list #371
  • ValueError: Invalid value for quantizer: 'wu' #368
  • Parameter color in ColorClip #366
  • Different size videos #365
  • Bug in write_gif #359
  • Add support for dithering GIF output #358
  • VideoFileClip instance has no attribute 'coreader' #357
  • crossfadeout "Attribute 'duration' not set" #354
  • ffmpeg_parse_infos fails while parsing tbr #352
  • No audio when adding Mp3 to VideoFileClip MoviePy #350
  • ImportError: No module named tracking (OS: 10.11.6 "El Capitan", Python 2.7.12) #348
  • AAC support for mp4 #344
  • Moviepy not compatible with Python 3.2 #333
  • Attribute Error (Raspberry Pi) #332
  • ImageSequenceClip: Error when fps not provided but durations provided #326
  • CI Testing #325
  • Pythonanywhere Moviepy #324
  • Documentation for resize parameter is wrong #319
  • ImageClip's with default settings can not be concatenated #314
  • librelist does not work #309
  • Broken Gallery in Documentation #304
  • File IOError when trying to extract subclips from mov file on Ubuntu #303
  • write_gif failing #296
  • Python2 unicode_literals errors #293
  • concatenate ImageClip #285
  • Resize not working #272
  • VideoFileClip instance has no attribute 'reader' #255
  • stretch image to size of frame #250
  • ffprobe metadata on video file clips #249
  • Credits1 is not working - gap missing, isTransparent flag not available #247
  • Generating Gif from images #240
  • permission denied #233
  • receive the video advancement mounting (Ex: in %) #224
  • Import of MoviePy and Mayavi causes a segfault #223
  • Video overlay (gauges...) #222
  • OSError: [WinError 193] %1 n’est pas une application Win32 valide #221
  • Warning: skimage.filter is deprecated #214
  • TextClip.list('color') fails #200
  • External FFmpeg issues #193
  • Video and Audio are out of sync after write #192
  • Broken image on PyPI #187
  • ImageSequenceClip from OpenEXR file sequence generate black Clip video #186
  • Loading video from url #185
  • Wrong number of frames in .gif file #181
  • Converting mp4 to ogv error in bitrate #174
  • embed clip in a jupyter notebook #160
  • How to create a video from a sequence of images without writing them on memory #159
  • LaTeX strings #156
  • UnboundLocalError in video/compositing/concatenate.py #145
  • Crop a Video with four different coodinate pairs #142
  • global name 'colorGradient' is not defined #141
  • rotating image animation producing error #130
  • bug introduced in 0.2.2.11? #129
  • Getting a TypeError in FramesMatch #126
  • moviepy is awesome #125
  • Concanate clips with different size #124
  • TextClip.list('font') raises TypeError in Python 3 #117
  • Attempt to Download freeimage failing #111
  • Invalid buffer size, packet size < expected frame_size #109
  • imageio has permission problems as WSGI user on Amazon Web Server #106
  • transparency bug in concatenate_videoclips() #103
  • Possibility to avoid code duplication #99
  • Memory Leak In VideoFileClip #96

Merged pull requests:

v0.2.2.13 (2017-02-15)

Full Changelog

Implemented enhancements:

Closed issues:

  • keep github releases in sync with PyPI #398
  • accidentally opened, sorry #397
  • BrokenPipeError #349
  • Bug in ffmpeg_audiowriter.py for python 3 #335
  • concatenate.py - Python3 incompatible #313

Merged pull requests:

  • fix issue #313, make concatenate_videoclips python 3 compatible. #410 (earney)
  • Update maintainer section in README #409 (mbeacom)
  • fix issue #401 #403 (earney)
  • ensures int arguments to np.reshape; closes #383 #384 (tyarkoni)
  • on_color function docstring has wrong parameter #244 (cblument)

v0.2.2.12 (2017-01-30)

Full Changelog

Implemented enhancements:

  • Update version and readme to include maintainers section #395 (mbeacom)

Closed issues:

  • Numpy 1.12.0 Breaks VideoFileClip #392
  • read_chunk() breaks in numpy 1.12.0 #383
  • Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so #379
  • Memory Error #370
  • module 'cv2' has no attribute 'resize' #369
  • Unable to load a gif created by moviepy. Fault of avconv? #337
  • write_videofile Error #330
  • Does Moviepy work with a Raspberry Pi? #322
  • moviepy.video.fx.all fadein and fadeout does not fade to any other color than black? #321
  • Imageio: 'ffmpeg.osx' was not found on your computer; downloading it now. #320
  • is there a way to composite a video with a alpha channel? #317
  • ffmpeg never dies #312
  • Mask Getting Called Multiple Times #299
  • write_videofile gets stuck #284
  • zero-size array to reduction operation minimum which has no identity #269
  • nvenc encoder nvidia #264
  • Avoid writing to disk with ImageSequenceClip #261
  • MemoryError #259
  • Create multiple subclips using times from CSV file #257
  • write_videofile results in "No such file or directory: OSError" on AWS Lambda instance #256
  • Pillow 3.0.0 drops support for tostring\(\) in favour of tobytes\(\) #241
  • Add Environment Variable to overwrite FFMPEG_BINARY #237
  • Clip::subclip vs ffmpeg_extract_subclip? #235
  • Moviepy - win2k8 64 install errors #234
  • How to install MoviePy on a remote SSH server without an A/V card? #230
  • Failed to read duration of file, Samsung S6 MP4s #226
  • MoviePy error: FFMPEG permission error #220
  • White artifacts around the image when rotating an ImageClip with a mask or just a png with transparency in angles that are not 0, 90, 180, 270 ( Added Examples to reproduce it ) #216
  • Error when using ffmpeg_movie_from_frames "global name 'bitrate' is not defined" #208
  • Is it possible to write infinite looping videos? #206
  • Problem creating VideoFileClip from URL on server #204
  • Animate TextClip text value #199
  • ffmpeg not available under Ubuntu 14.04 #189
  • Zoom effect trembling #183
  • How to match the speed of a gif after converting to a video #173
  • [Feature Request] Zoom and Rotate #166
  • Speed optimisation using multiple processes #163
  • Invalid Syntax Error #161
  • AudioFileClip bombs on file read #158
  • Hamac example gives subprocess error #152
  • unable to overwrite audio #151
  • Error in /video/fx/freeze_region.py #146
  • Convert gif to video has back background at the end of the video #143
  • How to conditionally chain effects? #138
  • [Feature Request] Write output using newlines #137
  • #135
  • How can add my logo to right top of entire mp4 video using moviepy ? #127
  • numpy error on trying to concatenate #123
  • NameError: global name 'clip' is not defined #114
  • typo in line 626, in on_color. elf is good for christmas, bad for function #107
  • API request: clip.rotate #105
  • Use graphicsmagick where available #90
  • Packaging ffmpeg binary with moviepy #85
  • Running VideoFileClip multiple times in django gives me error #73
  • FFMPEG binary not found. #60

Merged pull requests:

v0.2.2 (2014-12-11)

Full Changelog

Closed issues:

  • Incorrect size being sent to ffmpeg #102
  • Can't unlink file after audio extraction #97
  • Hangs if using ImageMagick to write_gif #93
  • Segfault for import moviepy.editor, but not for import moviepy #92
  • Is there a way to create the gif faster? #88
  • syntax error with moviepy #87
  • Issue in config.py #83
  • not working with some youtube videos #82
  • Can't add Chinese text 中文, it will become "??" in the movie file. #79
  • don't read *.mp4 file #75
  • FileNotFound VideoFileClip exception, followed all the installation instructions #72
  • write_videofile jumps #71
  • Problems with complex mask #70
  • supress console window of popen calls if used with cx_freeze win32gui #68
  • set all filehandles to make moviepy work in cx_freeze win32gui #67
  • Setting conf.py ffmpeg path on the fly from python #66
  • gif_writers.py uses an undefined constant #64
  • set_duration ignored on TextClip #63
  • Write_Gif returns errno 2 #62
  • "Bad File Descriptor" when creating VideoFileClip #61
  • Create a mailing list #59
  • Closing VideoFileClip #57
  • TextClips can cause an Exception if the text argument starts with a '@' #56
  • Cannot convert mov to gif #55
  • Problem with writing audio #51
  • ffmpeg_writer.py #50
  • VideoFileClip error #49
  • VideoFileClip opens file with wrong width #48
  • Change speed of clip based on a curve? #46
  • 'to_gif' raises IOError/OSError when no 'program' parameter is given #43
  • Enhancement: loading animated gifs, passing frame range to subclip() #40
  • ImageClip is broken #39
  • Error: wrong indices in video buffer. Maybe buffer too small. #38
  • It makes pygame crash #37
  • Can not load the fonts #36
  • Tabs in python code #35
  • Windows 8 Error #34
  • infinite audio loop #33
  • Specifying pix_fmt on FFMPEG call #27
  • on_color fails with TypeError when given a col_opacity parameter #25
  • 'ValueError: I/O operation on closed file' #23
  • Too stupid to rotate :D #22
  • FFMPEG Error on current Debian Wheezy x64 #21
  • Possible memory leak #18
  • Windows - Unable to export simple sequence to gif #16
  • Problems with preview + missing explanation of crop + resize not working #15
  • AssertionError in ffmpeg_reader.py #14
  • ffmpeg hangs #13
  • Python 3.3.3 - invalid syntax error #12
  • something went wrong with the audio writing, Exit code 1 #10
  • error: string: When trying to import from moviepy #9
  • Reading video on Ubuntu 13.10 does not work #8
  • List decorator and pygame as dependencies on PyPI #4
  • "list index out of range" error or Arch Linux x86-64 #3
  • IndexError? #2
  • Can't write a movie with default codec #1

Merged pull requests:

* This Changelog was automatically generated by github_changelog_generator