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.
- Support for
copy.copy(clip)
andcopy.deepcopy(clip)
with same behaviour asclip.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 #1464video.io.ffmpeg_reader.ffmpeg_parse_infos
returns data from all streams by FFmpeg inputs in attributeinputs
#1466video.io.ffmpeg_reader.ffmpeg_parse_infos
returns metadata of the container in attributemetadata
#1466center
,translate
andbg_color
arguments tovideo.fx.rotate
#1474audio.fx.audio_delay
FX #1481start_time
andend_time
optional arguments tomultiply_volume
FX which allow to specify a range applying the transformation #1572loop
argument support writing GIFs with ffmpeg forwrite_gif
andwrite_gif_with_tempfiles
#1605
- 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
toimport moviepy
. This change is fully backwards compatible #1340 - Renamed
audio.fx.volumex
toaudio.fx.multiply_volume
#1424 - Renamed
cols_widths
argument ofclips_array
function bycols_heights
#1465 video_nframes
attribute of dictionary returned fromffmpeg_parse_infos
renamed tovideo_n_frames
#1471- Renamed
colorx
FX bymultiply_color
#1475 - Renamed
speedx
FX bymultiply_speed
#1478 make_loopable
transition must be used as FX #1477requests
package is no longer a dependency #1566accel_decel
FX raisesValueError
ifsooness
parameter value is lower than zero #1546Clip.subclip
raiseValueError
ifstart_time >= clip.duration
(previously printing a message to stdout only ifstart_time > clip.duration
) #1589- Allow to pass times in
HH:MM:SS
format tot
argument ofclip.show
method #1594 TextClip
now raisesValueError
if none of thetext
orfilename
arguments are specified #1842
moviepy.video.fx.all
andmoviepy.audio.fx.all
. Use the fx method directly from the clip instance or import the fx function frommoviepy.video.fx
andmoviepy.audio.fx
. #1105
VideoFileClip.coreader
andAudioFileClip.coreader
methods removed. UseVideoFileClip.copy
andAudioFileClip.copy
instead #1442audio.fx.audio_loop
removed. Usevideo.fx.loop
instead for all types of clip #1451video.compositing.on_color
removed. UseVideoClip.on_color
instead #1456
- Fixed BitmapClip with fps != 1 not returning the correct frames or crashing #1333
- Fixed
rotate
sometimes failing withValueError: axes don't match array
#1335 - Fixed positioning error generating frames in
CompositeVideoClip
#1420 - Changed deprecated
tostring
method bytobytes
invideo.io.gif_writers::write_gif
#1429 - Fixed calling
audio_normalize
on a clip with no sound causingZeroDivisionError
#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 inCompositeAudioClip
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)
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
.
- New
pix_fmt
parameter inVideoFileClip
,VideoClip.write_videofile()
,VideoClip.write_gif()
that allows passing a custompix_fmt
parameter such as"bgr24"
to FFmpeg #1237 - New
change_duration
parameter inClip.set_fps()
that allows changing the video speed to match the new fps #1329
ffmpeg_parse_infos()
andVideoFileClip
now have optionaldecode_file
parameter that ensures that the detected duration is correct, but may take a long time to run #1063, #1222ffmpeg_parse_infos()
andVideoFileClip
now usefps
metadata instead oftbr
to detect a video's fps value #1222FFMPEG_AudioReader.close_proc()
->FFMPEG_AudioReader.close()
for consistency withFFMPEG_VideoReader
#1220
- 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)
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
.
- 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
- 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 inSubtitlesClip
#1043 - Added new
ffmpeg_stabilize_video()
function inffmpeg_tools
- Optional
temp_audiofile_path
parameter inVideoClip.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 aCompositeVideoClip
#1176ffmpeg_parse_infos
additionally returns"video_bitrate"
and"audio_bitrate"
values #930- Access to the source video's bitrate in a
VideoFileClip
orAudioFileClip
throughvideoclip.reader.bitrate
andaudioclip.reader.bitrate
#930
vfx.scroll
argumentsw
andh
have had their order swapped. The correct order is noww, h
but it is preferable to explicitly use keyword arguments- Removed extra
.
in the output file name offfmpeg_extract_subclip()
whentargetname
is not specified #939
- 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()
andconfig.change_settings()
functions #1109 - All previously deprecated methods and parameters #1115:
AudioClip.to_audiofile()
-> useAudioClip.write_audiofile()
VideoClip.to_videofile()
-> useVideoClip.write_videofile()
VideoClip.to_images_sequence()
-> useVideoClip.write_images_sequence()
concatenate()
-> useconcatenate_videoclips()
verbose
parameter inAudioClip.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 ofverbose=False
, uselogger=None
verbose_print()
-> no replacementcol
parameter inColorClip()
-> usecolor
- When using
VideoClip.write_videofile()
withwrite_logfile=True
, errors would not be properly reported #890 TextClip.list("color")
now returns a list of bytes, not strings #1119TextClip.search("colorname", "color")
does not crash with a TypeError #1119vfx.even_size
previously created clips with odd sizes #1124IndexError
invfx.freeze
,vfx.time_mirror
andvfx.time_symmetrize
#1124- Using
rotate()
with aColorClip
no longer crashes #1139 AudioFileClip
would not generate audio identical to the original file #1108- Fixed
TypeError
when usingfilename
instead oftxt
parameter inTextClip
#1201 - Several issues resulting from incorrect time values due to floating point errors #1195, for example:
- Applying
resize
with a non-constantnewsize
to a clip with a mask would remove the mask #1200 - Using
color_gradient()
would crash withValueError: The truth value of an array with more than one element is ambiguous
#1212
v1.0.3 (2020-05-07)
Bonus release to fix critical error when working with audio: AttributeError: 'NoneType' object has no attribute 'stdout'
#1185
v1.0.2 (2020-03-26)
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:
- Fixed potential crash trying to call the logger string as a function #1082 (tburrows13)
- Get ffmpeg to use all audio streams #1008 (vmaliaev)
- Reorder FFMPEG_VideoWriter command arguments #968 (ThePhonon)
- Test that the temporary audio file exists #958 (ybenitezf)
- Fix slide out #795 (knezi)
- Correct the error message to new filename. #1057 (jwg4)
Merged pull requests:
- Remove timer in stdout flushing test #1091 (tburrows13)
- Update github issue and PR templates #1087 (tburrows13)
- Clean up imports #1084 (tburrows13)
- refactor Pythonic sake #1077 (mgaitan)
- Upgrade pip by calling via python (in appveyor). #1067 (jwg4)
- Improve afx.audio_normalize documentation #1046 (dspinellis)
- Add Travis support for Python 3.7 and 3.8 #1018 (tburrows13)
- Hide pygame support prompt #1017 (tburrows13)
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)
Implemented enhancements:
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:
- Create v1.0.1 #1023 (tburrows13)
- Update maintainer list in the README #1022 (tburrows13)
- fixed small error in 'Clip' documentation #1002 (thomasmatt88)
- Specify Coverage version explicitly. #987 (Julian-O)
- Updating Docs for ImageMagick Installing Guide #980 (ABODFTW)
- Several ImageMagick related bug fixes #972 (KiLLAAA)
- Auto-detect image magick latest 6.9.X-Y version #936 (Overdrivr)
- Windows-based testing #931 (Overdrivr)
- Fix formatting in logger #929 (tnoff)
- Fix for #926 #927 (Overdrivr)
- Invalid video URL in docs/getting_started/compositing #921 (gepcel)
- Do not install tests in site-packages #880 (cgohlke)
- FIX changed order of specifications -ss befor -i for ffmpeg_extract_subclip() #848 (grszkthfr)
v1.0.0 (2019-02-17)
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:
- New version of imageio with imageio_ffmpeg for python 3.4+ #907 (Zulko)
- fix typo that introduces audio regression #894 (chrox)
- modified max duration error for better understanding #875 (kapilkd13)
- Fixed typo in docstring for VideoClip class #871 (Armcollector)
- Fix a small typing error #845 (yuvallanger)
v0.2.3.5 (2018-05-31)
Fixed bugs:
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:
- fixing the git remote syntax in documentions #887 (ishandutta2007)
- Progress bar optional for GIF creation #799 (mdfirman)
- Added contributing guide and issue template #792 (tburrows13)
v0.2.3.4 (2018-04-22)
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:
- Added
fullscreen
parameter topreview\(\)
#773 (tburrows13) - add pcm_s24le codec #769 (lsde)
v0.2.3.3 (2018-04-17)
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:
- Added ffmpeg download when importing moviepy.editor #731 (tburrows13)
- Fixed bugs, neater code, changed docstrings in audiofiles #722 (tburrows13)
- Resolve undefined name execfile in Python 3 #718 (cclauss)
- Fix credits, added tests #716 (tburrows13)
- res —> size to align with line 62 #710 (cclauss)
- Add gap=0 to align with lines 40, 97, and 98 #709 (cclauss)
- import numpy as np for lines 151 and 178 #708 (cclauss)
- Convert advanced_tools.py to valid Python #707 (cclauss)
- Added missing '%' operator for string formatting. #686 (taylorjdawson)
- Addressing #655 #656 (gyglim)
- initialize proc to None #637 (gyglim)
- sometimes tempfile.tempdir is None, so use tempfile.gettempdir() function instead #633 (earney)
- Issue629 #630 (Julian-O)
- Fixed bug in Clip.set_duration() #613 (kencochrane)
- Fixed typo in the slide_out transition #612 (kencochrane)
- Exceptions do not have a .message attribute. #603 (Julian-O)
- Issue #574, fix duration of masks when using concatenate(.., method="compose") #585 (earney)
- Fix out of bounds error #570 (shawwn)
- fixed ffmpeg error reporting on Python 3 #565 (narfdotpl)
- Add int() wrapper to scroll to prevent floats #528 (tburrows13)
- Fix issue #464, repeated/skipped frames in ImageSequenceClip #494 (neitzal)
- fixes #248 issue with VideoFileClip() not reading all frames #251 (aldilaff)
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:
- transitions.py: pep8 and a change to docstring #754 (tburrows13)
- Make TextClip work on Travis CI #747 (tburrows13)
- Added tests, new duration arg in to_ImageClip() #724 (tburrows13)
- let there be (more) colour #723 (bashu)
- Resolve undefined name unicode in Python 3 #717 (cclauss)
- Credits.py PEP 8 #715 (tburrows13)
- Added info about tag wiki #714 (tburrows13)
- Remove testing support for Python 3.3, closes #688 #713 (tburrows13)
- More PEP8 compliance #712 (tburrows13)
- More PEP8 compliance #711 (tburrows13)
- flake8 test to find syntax errors, undefined names #705 (cclauss)
- fix typo #687 (msrks)
- Update Readme.rst #671 (rlphillips)
- Update Dockerfile to add requests module #664 (edouard-mangel)
- fixed typo in library include #652 (Goddard)
- Use max fps for CompositeVideoClip #610 (scherroman)
- Add audio normalization function #609 (dspinellis)
- #600: Several YouTube examples in Gallery page won't load. #606 (Julian-O)
- Two small corrections to documentation. #605 (Julian-O)
- PEP 8 compatible #582 (gpantelis)
- add additional ImageSequenceClip test #551 (earney)
- General tests cleanup #549 (mbeacom)
- Update docs #548 (tburrows13)
- add tests for most fx functions #545 (earney)
v0.2.3.2 (2017-04-13)
Implemented enhancements:
- Requirements adjustments #530
- Modify setup.py handling #531 (mbeacom)
- Resolve documentation build errors #526 (mbeacom)
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:
- add opencv dependency since headblur effect depends on it. #540 (earney)
- create tests for blackwhite, colorx, fadein, fadeout #539 (earney)
- add crop tests #538 (earney)
- Fix youtube video rendering in documentation #537 (mbeacom)
- Update docs #535 (tburrows13)
- add test for Issue 334, PR 336 #534 (earney)
- issue-212: add rotation info from metadata #529 (taddyhuo)
- Added another project using MoviePy #509 (justswim)
- added doc for working with matplotlib #465 (flothesof)
- fix issue #334 #336 (bluedazzle)
- Add progress_bar option to write_images_sequence #300 (achalddave)
- write_videofile preset choices doc #282 (gcandal)
v0.2.3.1 (2017-04-05)
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:
- create test for Trajectory.save_list/load_list #523 (earney)
- add Dockerfile #522 (earney)
- Add fps_source option for #404 #516 (tburrows13)
- Minor Modifications #515 (gpantelis)
- #485 followup #514 (tburrows13)
- Correcting text #510 (gpantelis)
- Add aspect_ratio @property to VideoClip #503 (scherroman)
- add test for ffmpeg_parse_info #498 (earney)
- add scipy for py2.7 on travis-ci #497 (earney)
- add file_to_subtitles test #496 (earney)
- add a subtitle test #495 (earney)
- add afterimage example #491 (earney)
- add doc example to tests #490 (earney)
- Allow resizing frames in ffmpeg when reading #489 (gyglim)
- Fix class name in AudioClip doc strings #488 (withpower)
- convert POpen stderr.read to communicate #487 (earney)
- add tests for find_video_period #486 (earney)
- refer to MoviePy as library (was: module) #484 (keikoro)
- include requirements file for docs #483 (keikoro)
- add test for issue 354; duration not set #478 (earney)
- Issue 470, reading past audio file EOF #476 (earney)
- Issue 285, error adding durations (int and None). #472 (earney)
- Issue 359, fix default opt argument to work with imageio and ImageMagick #471 (earney)
- Add tests for TextClip #469 (earney)
- Issue 467; fix Nameerror with copy function. Added issue to tests.. #468 (earney)
- Small improvements to docs pages, docs usage #463 (keikoro)
- Fix mixed content #462 (keikoro)
- fix Issue 368.. ValueError: Invalid value for quantizer: 'wu' #460 (earney)
- add testing to verify the width,height (size) are correct. #459 (earney)
- Adds
progress\_bar
option towrite\_audiofile\(\)
to complement #380 #458 (tburrows13) - modify tests to use ColorClip's new color argument (instead of col) #457 (earney)
- add ImageSequenceClip tests #456 (earney)
- Add some tests for VideoFileClip #453 (earney)
- add test_compositing.py #451 (earney)
- add test for tools #450 (earney)
- fix issue 448; AudioFileClip 90k tbr error #449 (earney)
- add testing with travis-ci #447 (earney)
- fix YouTube embeds in docs #446 (keikoro)
- Move PR test to test_PR.py file #444 (earney)
- Test issue 407 (video has a valid fps after concatenate function) #443 (earney)
- add test for PR306. #440 (earney)
- fix issue 417.. unicode has no attribute shape (error in python 2) #438 (earney)
- fix Issue #385 , no DirectoryClip class #434 (earney)
- add test file for pull requests. #433 (earney)
- put DEVNULL into compat.py #432 (earney)
- test for issue #145 #431 (earney)
- fix PR #413 . (issue #357) #429 (earney)
- fix issue 145. raise Exception when concatenate method != chain or c… #428 (earney)
- Readme improvements #425 (keikoro)
Colorclip
changedcol
>color
#424 (tburrows13)- Revert "small recipe (mirroring a video)" #414 (Zulko)
- fixes #357. confusing error about coreader, when media file does not exist #413 (earney)
- move PY3 to new compat.py file #411 (earney)
- Fix Issue #373 Trajectory.save_list #394 (dermusikman)
- bug presented #390 (TonyChen0724)
- Incorporated optional progress_bar flag for writing video to file #380 (wingillis)
- Audio error handling made failsafe #377 (gyglim)
- Fix issue #354 #355 (groundflyer)
- Fixed resize documentation issue #319 #346 (jmisacube)
- Added AAC codec to mp4 #345 (jeromegrosse)
- Add a test case. #339 (drewm1980)
- ImageSequenceClip: Check for fps and durations rather than fps and du… #331 (jeromegrosse)
- Handle bytes when listing fonts in VideoClip.py #306 (Zowie)
- fix deprecation message #302 (mgaitan)
- Fix for #274 #275 (nad2000)
- Update README.rst #254 (tcyrus)
- small recipe (mirroring a video) #243 (zodman)
- Document inherited members in reference documentation #236 (achalddave)
- fixed module hierarchy for Trajectory #215 (bwagner)
- Fixed missing list #211 (LunarLanding)
- Fixed copy-paste typo #197 (temerick)
v0.2.2.13 (2017-02-15)
Implemented enhancements:
- Add
self.filename
as aVideoFileClip
attribute #405 (tburrows13)
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)
Implemented enhancements:
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 oftobytes\(\)
#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:
- Fix #164 - Resolve ffmpeg zombie processes #374 (mbeacom)
- Updated resize function to use cv2.INTER_LINEAR when upsizing images … #268 (kuchi)
- Read FFMPEG_BINARY and/or IMAGEMAGICK_BINARY environment variables #238 (dkarchmer)
- Fixing a minor typo. #205 (TheNathanBlack)
- Fixed minor typos in the docs #196 (bertyhell)
- added check for resolution before processing video stream #188 (ryanfox)
- Support for SRT files with any kind of newline #171 (factorial)
- Delete duplicated import os #168 (jsseb)
- set correct lastindex variable in mask_make_frame #165 (Dennovin)
- fix to work with python3 #162 (laurentperrinet)
- poor error message from ffmpeg_reader.py #157 (ryanfox)
- fixing region parameter on freeze_region #147 (savannahniles)
- Typo #133 (rishabhjain)
- setup.py: Link to website and state license #132 (techtonik)
- Issue #126 Fix FramesMatch repr and str. #131 (filipochnik)
- auto detection of ImageMagick binary on Windows #118 (carlodri)
- Minor grammatical and spelling changes #115 (grimley517)
- typo fix #108 (stonebig)
- additional safe check in close_proc #100 (Eloar)
- Allows user to pass additional parameters to ffmpeg when writing audio clips #94 (jdelman)
v0.2.2 (2014-12-11)
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:
- Fix a typo in a ValueError message #91 (naglis)
- Changed all "== None" and "!= None" #89 (diegocortassa)
- 'Crop' fix #81 (ccarlo)
- fix lost threads parameter from merge #78 (bobatsar)
- VideoClip.write_videofile() accepts new param: ffmpeg_params that is put directly into ffmpeg command line #77 (aherok)
- make compatible with cx_freeze in gui32 mode #69 (bobatsar)
- Fix typo in error message #53 (mekza)
- Fixed write_logfile/verbose arguments #47 (KyotoFox)
- typo #42 (tasinttttttt)
- Tempfile #31 (dimatura)
- Fixed small typo in docs #30 (dimatura)
- Fixed syntax error in io/imageMagick_tools.py #29 (dimatura)
- added -pix_fmt yuv420p to ffmpeg args if codec is libx264 #28 (chunder)
- added support for aac audio codec #26 (chunder)
- Hopefully fixes issue #13 for everyone. #24 (oxivanisher)
- Reduced ffmpeg logging to prevent hanging #20 (JoshdanG)
- fix typo in close_proc #17 (kenchung)
- PEP8 : ffmpeg_reader #11 (tacaswell)
- Update resize.py #7 (minosniu)
- Update crash_course.rst #5 (mgaitan)
* This Changelog was automatically generated by github_changelog_generator