What's Changed - a lot
First release to PyPI in 4 years, so here is an unfiltered list of contributions
- Start v2.0 branch. Remove support for Python 2.7 & 3.4. by @tburrows13 in #1103
- Remove support for Python 3.5 by @tburrows13 in #1106
- Apply and ensure Black formatting by @mgaitan in #1101
- Apply v1.0.2 changes to v2.0 by @tburrows13 in #1110
- Remove tqdm as a dependency by @tburrows13 in #1090
- Fixed name of optional dependency on README by @jonnekaunisto in #1113
- FFmpeg Writer: handle redirected logs when checking for errors by @declension in #890
- Fixed error message for build docs by @jonnekaunisto in #1118
- Add new 'Unreleased' section to CHANGELOG.md. by @tburrows13 in #1121
- Fix TextClip.list("color") returning an incorrect list of byte objects, not strings by @tburrows13 in #1119
- Fixed errors in docs by @jonnekaunisto in #1120
- Remove deprecated functions and parameters by @mgaitan in #1115
- Added encoding optional parameter to subtitle file loading feature by @aalkz in #1043
- Followup to TextClip.list() fix (#1119) by @tburrows13 in #1132
- Fix for
ColorClip.rotate()
by @tburrows13 in #1139 - fixed bug with undefined variable by @jonnekaunisto in #1146
- Add test for detect_scenes by @scherroman in #589
- Fix undefined name warning in ez_setup.py by @tburrows13 in #1149
- deleted outdate opencv install instructions and fixed english syntax by @jonnekaunisto in #1148
- Add support for path-like objects with a decorator by @tburrows13 in #1137
- Fixed a typo by @spollard in #1153
- Fixing a few typos by @spollard in #1154
- Flake8 formatting cleanup by @tburrows13 in #1151
- Fix doc errors (closes #1000, #1156) by @tburrows13 in #1159
- Fix outdated docstrings and error strings by @tburrows13 in #1160
- Simpler custom configuration and better related docs by @mgaitan in #1109
- Allow setting tempfile path by @tburrows13 in #1144
- Use integer division for the resolution of the star worms example video by @jay3ss in #1173
- Improve VideoClip testing by inspecting numpy frame arrays by @tburrows13 in #1124
- MacOS CI test by @jonnekaunisto in #1172
- add missing clip arguement to docstring by @jonnekaunisto in #1179
- Fixed small spelling mistake by @spollard in #1181
- Fix AudioClip I/O by @MaigoAkisame in #1108
- updated dockerfile dependencies to come from setup.py by @jonnekaunisto in #1165
- Docs fixes: added code back into logo example and fixed a couple of typos by @kencochrane in #614
- Stabilize Video - New functionality by @gpantelis in #580
- fixed default value bug on ColorClip by @jonnekaunisto in #1147
- Fix write_videofile error handling and update write_audiofile to be comparable by @tburrows13 in #1164
- added video and audio bit rate by @crazyxw in #930
- Add VideoClip.set_layer() by @tburrows13 in #1176
- Update deprecated function in documentation by @Julian-O in #1190
- autodetect ImageMagick on windows by @Nex4rius in #1041
- FIX: concatenate - duration of the result by @knezi in #796
- Fix fundamental floating point error in Clip.iter_frames by @tburrows13 in #1195
- Call resize on mask when newsize is a function of time by @tburrows13 in #1200
- Fix appveyor build: remove pipenv by @tburrows13 in #1207
- Prevent exception when filename is given. by @obiwankennedy in #1201
- Fix Clip.fx docstring by @tburrows13 in #1211
- Fix color_gradient crash by @tburrows13 in #1212
- Fix Clip.fl docstring by @tburrows13 in #1214
- Use popen.communicate() to prevent subprocess hang by @tehKost in #684
- [ffmpeg_tools] removed period from ffmpeg_extract_subclip by @mdawar in #939
- Video duration fix by @sarjann in #1063
- Rework usage of FFMPEG_VideoReader's
pos
andlastread
; FFMPEG_AudioReader.close_proc() -> close() by @tburrows13 in #1220 - Ability to set pixel format for video or image files by @Ricardo-HE in #1237
- Change file extension for audio file and resizing parameters during… by @jay3ss in #1241
- Fix spelling error in quick_presentation.rst by @jopdop30 in #1260
- Add Linux test to GitHub actions by @tburrows13 in #1287
- Correct CompositeVideoClip docstring (swap width, height ordering) by @btRooke in #1281
- Add ‘ignore’ for UTF8 decoding to avoid error on non-UTF8 characters by @chrisapplegate in #959
- Remove BitmapClip.set_fps and .set_duration by @tburrows13 in #1288
- Update dockerfile to modify policy.xml in-place by @TrippleCCC in #1304
- Fixed duration in meta data when generating subclips. by @hlzl in #1317
- Remove logger messages triggering CI failure by @tburrows13 in #1322
- Corrections to video duration detection by @tburrows13 in #1222
- Change docs and comments to reflect default fps_source changing from 'tbr' to 'fps' by @tburrows13 in #1327
- Add change_duration flag to Clip.set_fps() by @mxbi in #1329
- Add support for ReadTheDocs by @tburrows13 in #1328
- Fix incorrect behaviour from BitmapClip when fps != 1 by @tburrows13 in #1333
- Switch Black GitHub action to the official working version by @tburrows13 in #1337
- Add coreader function to VideoFileClip by @jkolbly in #1332
- Renaming methods, parameters and variables for increased usability, consistency and readability by @tburrows13 in #1170
- Fluent API for effects (monkeypatch as methods) by @mgaitan in #1105
- Fix 90 degrees rotation by @nicoeps in #1335
- Optimise clip compositing using PIL (replacement for #1157) by @tburrows13 in #1342
- Format files by @keikoro in #1349
- update, improve Contributing guidelines by @keikoro in #1352
- Fix typo in docs by @tomj in #1363
- Tests for loop using BitmapClip #1368 by @somstrom in #1370
- Update quick_recipes.rst by @whimxiqal in #1383
- docs: fix simple typo, tranformed -> transformed by @timgates42 in #1389
- Fix 'NameError' in 'docs/getting_started/videoclips.rst#Videoclip' example by @mondeja in #1405
- Move directory of test to temporal location and close clips by @mondeja in #1407
- Use temporal directory to write a video in test and close clips by @mondeja in #1408
- Update 'Imagemagick.exe' download URL in Windows tests by @mondeja in #1411
- Fix MacOSX tests with temporal workaround for python.app issue by @mondeja in #1412
- Remove autogenerated '.mp3' and '.log' files in tests by @mondeja in #1413
- Update README badges by @mondeja in #1415
- Update 'AudioClip' docstring example by @mondeja in #1423
- Remove Pipfile and Pipfile.lock by @tburrows13 in #1416
- Update 'dancing_knights.py' example by @mondeja in #1422
- Remove TravisCI related code from tests by @mondeja in #1417
- Fix 'Clip::time_transform' docstring examples by @mondeja in #1425
- Remove 'ez_setup.py' by @mondeja in #1433
- fix to terminate the process that has ended by @luyanger1799 in #1296
- Replace 'tostring' by 'tobytes' in 'video.io.gif_writers::write_gif' by @mondeja in #1429
- Correctly center image when resizing by @jcbrockschmidt in #1420
- Remove idle test and reduce media directory size by @mondeja in #1421
- Don't skip audioclip tests in Windows by @mondeja in #1426
- Preserve links to pull requests in CHANGELOG by @mondeja in #1434
- Updates loop.py for fix by @ParikhNand in #1373
- Test Python3.9 in Linux by @mondeja in #1436
- Update 'headblur' example by @mondeja in #1414
- Fix audio normalizing for mute clips by @jcbrockschmidt in #1401
- Add missing optional documentation dependencies 'Sphinx' and 'sphinx-rtd-theme' by @mondeja in #1406
- Remove 'rewrite_audio' argument from 'VideoClip.write_videofile' by @mondeja in #1440
- Fix test 'test_matplotlib' in 'test_examples.py' by @mondeja in #1427
- Pass tuple to 'np.vstack' and 'np.hstack' in 'AudioClip.to_soundarray' by @mondeja in #1443
- Test unicode subtitles by @mondeja in #1431
- Move most imports from editor.py to init.py by @tburrows13 in #1340
- Move 'sintel_with_15_chapters.mp4' to 'media/' directory by @mondeja in #1446
- test_suite.yml now uses a secret coveralls token by @Zulko in #1448
- Test properly 'blackwhite' FX using 'BitmapClip' by @mondeja in #1430
- Update 'coveralls'; remove 'coverage'; fix coverage report in CI for pull requests by @mondeja in #1450
- Remove 'preview' and 'show' functions from 'moviepy.editor' by @mondeja in #1419
- Add 'multiply_stereo_volume' FX; rename 'volumex' to 'multiply_volume' by @mondeja in #1424
- Remove obsolete appveyor script 'run_with_env.cmd' by @mondeja in #1452
- Remove audio_loop afx by @tburrows13 in #1451
- Fix not importing everything from editor.py by @tburrows13 in #1453
- Formalize flake8 linting by @mondeja in #1439
- Remove 'coreader' methods adding formal 'copy' API by @mondeja in #1442
- Update dependency version requirements by @tburrows13 in #1455
- Speed up 'AudioClip.to_soundarray' by @mondeja in #1460
- Optimise test suite speed by @tburrows13 in #1463
- Fix 'freeze' FX not freezing at the end and add proper tests by @mondeja in #1461
- Add AudioClip stereo example by @mondeja in #1459
- Improve 'resizer' function discovering in 'moviepy.video.fx.resize' by @mondeja in #1444
- Fix minor inconsistencies by @mondeja in #1469
- Documented 'clips_array' and renamed 'cols_widths' argument by 'cols_heights' by @mondeja in #1465
- Add 'AudioClip.max_volume(stereo=True)' support for more than 2 channels by @mondeja in #1464
- Fix 'Clip.cutout' transformation not being applied properly by @mondeja in #1468
- Fix 'video.tools.drawing.color_gradient' by @mondeja in #1467
- Fix 'fps' not defined for 'CompositeAudioClip' at initialization by @mondeja in #1462
- Wrap 'creationflags=0x08000000' Popen kwarg in function by @mondeja in #1470
- Add support for retrieve clip frames number using 'clip.n_frames' by @mondeja in #1471
- Rename 'colorx' FX by 'multiply_color' by @mondeja in #1475
- Add support for multiple streams and metadata parsing to 'ffmpeg_parse_infos' by @mondeja in #1466
- Setup 'isort' and 'pre-commit' by @mondeja in #1479
- Add 'multiply_volume' FX tests by @mondeja in #1480
- Rename 'speedx' FX by 'multiply_speed' by @mondeja in #1478
- Remove 'make_loopable' from transitions by @mondeja in #1477
- Add 'center', 'translate' and 'bg_color' arguments to 'rotate' FX by @mondeja in #1474
- Add docstrings linting with 'pydocstyle' using 'flake8' by @mondeja in #1483
- Add 'mask_and' FX tests by @mondeja in #1486
- Add 'mask_or' FX tests by @mondeja in #1485
- Improve exception handling in 'ffmpeg_parse_info' by @mondeja in #1488
- Test all 'rotate' FX arguments combinations by @mondeja in #1484
- Fix error parsing audio with attached picture in 'parse_ffmpeg_infos' by @mondeja in #1490
- Add 'audio_delay' FX by @mondeja in #1481
- Add multiline metadata parsing to 'ffmpeg_parse_infos' by @mondeja in #1492
- Test 'resize' FX against all implementations and arguments by @mondeja in #1495
- Fix audio bitrate discovering for files without default audio stream by @mondeja in #1506
- Correct variable name in progress bar by @Zulko in #1514
- Update black version in CI and pre-commit config by @mondeja in #1534
- Update preview.py, fix issue #575 by @Victrollia in #1537
- Don't execute 'version.py' file in installation script by @mondeja in #1541
- Bug fix: for rotating mask images. by @gokuld in #1399
- Update CodeQL analysis fetch-checkout logic in CI by @mondeja in #1542
- Test mask rotation by @mondeja in #1543
- Add tests for rotate FX behaviour when Pillow is not installed by @mondeja in #1544
- Test 'rotate' FX supported arguments by PIL version by @mondeja in #1545
- VideoClip blitting: fix truncation bug to enable fractional opacity by @creichen in #1552
- Bump decorator to <6.0 by @mondeja in #1565
- Remove requests as a dependency by @mondeja in #1567
- Take into account rotation metadata to define video size by @bobatsar in #577
- Update pre-commit configuration by @mondeja in #1573
- Add tests for 'audio_fadein' FX by @mondeja in #1574
- Add tests for 'audio_fadeout' FX by @mondeja in #1578
- Document 'accel_decel' FX properly; raise ValueError for invalid 'sooness' value by @mondeja in #1546
- Test left, right, top, bottom and color arguments of margin FX by @mondeja in #1579
- Add 'start_time' and 'end_time' parameters to multiply_volume FX by @mondeja in #1572
- Document 'find_video_period' by @mondeja in #1581
- Add tests for 'slide_in' transition by @mondeja in #1582
- Test editor preview methods by @mondeja in #1583
- Test tools, refactor increasing tests performance by @mondeja in #1584
- Add tests for 'find_audio_period' by @mondeja in #1585
- Add tests for 'slide_out' transition by @mondeja in #1586
- Test some ffmpeg video tools and document them by @mondeja in #1587
- Add tests for 'FramesMatches' by @mondeja in #1588
- Add tests for Clip class and improve its documentation by @mondeja in #1589
- Add tests for VideoClip and root init by @mondeja in #1590
- Add tests for HTML tools by @mondeja in #1592
- Refactor tests files removing 3 by @mondeja in #1593
- Delete redundant on_color.py by @tburrows13 in #1456
- Allow to pass 't' argument of 'clip.show' as 'HH:MM:SS' format by @mondeja in #1594
- Add tests for 'download_webfile' by @mondeja in #1595
- Migrate Windows workflow to Github Actions by @mondeja in #1597
- Add tests for configuration module by @mondeja in #1596
- Fix ImageMagick installer caching for Windows in CI by @mondeja in #1599
- Add more tests and documentation for FramesMatches by @mondeja in #1600
- Fix bug in scroll FX by @ZxYuan in #1591
- Add tests for drawing video tools by @mondeja in #1602
- Add tests for ffmpeg_writer module by @mondeja in #1604
- Add 'loop' argument support writing GIFs with ffmpeg by @mondeja in #1605
- Add tests and documentation for interpolators by @mondeja in #1606
- Add tests for 'find_objects' video tool by @mondeja in #1607
- Document tracking functions parameters by @mondeja in #1608
- Fix HH:MM:SS format support for 'Clip.with_duration' by @mondeja in #1609
- Add tests to prevent decorators arguments inconsistency by @mondeja in #1610
- Add missing modules docstrings (except for FXs) by @mondeja in #1611
- Rewrite helpers as fixtures in tests by @mondeja in #1612
- Fix various typos by @luzpaz in #1633
- Fix MacOS CI workflow by @mondeja in #1642
- Fix Windows CI workflow by @mondeja in #1643
- Ignore threading problems cleaning files in tests under Windows by @mondeja in #1644
- Fix Windows CI workflow by @mondeja in #1690
- Add MKV support allowing h264 w/ alt. sound codecs by @abramhindle in #1657
- ImageMagick change detection from convert.exe to magick.exe by @Nex4rius in #1689
- Add fake appveyor workflow file by @mondeja in #1691
- fix autodetection of imagemagick by @Nex4rius in #1693
- format(black): formatted files to latest version by @tharun634 in #1735
- Relax Numpy constraints by @erikgaas in #1732
- Upgrade tooling by @mondeja in #1770
- Fix libavformat compatiblity break by @B3QL in #1768
- Fix outdated reference in docstring (#1688) by @ezioruan in #1744
- Parse FFMPEG streams with square brackets by @B3QL in #1781
- Fix audio processing for streams with missing
audio_bitrate
by @B3QL in #1783 - change 'set_pos' to 'with_position' by @AhmedElwerdany in #1836
- Handle brackets and language in FFMPEG output by @LoipesMas in #1837
- Fix Windows CI by @mondeja in #1841
- Fix textclip filename parameter in wrong format by @MohamedAbdultawab in #1788
- Raise
ValueError
if invalid arguments passed toTextClip
by @mondeja in #1842 - Fixed MoviePy being displayed as Moviepy in some places. by @whitetxt in #1885
- Fix GitHub workflow badge by @EFord36 in #1914
- add GitHub URL for PyPi by @andriyor in #1728
- Fix black checks by @keikoro in #1923
- Fix CI. by @mgaitan in #1943
- Fixed typo in audioclips.rst by @46319943 in #1954
- Fixed typo in compositing.rst by @javad94 in #1979
- Implement basic data model by @mgaitan in #1076
- Added code to raise exception with string by @stef405 in #1952
- Fix the issue caused by deprecation of
ANTIALIAS
in Pillow version 10.0.0 by @yoichitgy in #2003 - Fix #1994 by @tobiasBora in #1995
- In Contributing, correct Gitter & mention subreddit by @sohang3112 in #2136
- style: fix code formatting (Black, flake8) by @keikoro in #2182
- ci(workflows): upgrade actions by @keikoro in #2179
- Refactor code formatting/linting workflow by @keikoro in #2186
- refactor: restructure .gitignore by @keikoro in #2185
- Osa-ajani v2 master with conflicts resolutions by @Zulko in #2244
- V2.0 update for code & documentation by @OsaAjani in #2024
New Contributors
- @jonnekaunisto made their first contribution in #1113
- @declension made their first contribution in #890
- @aalkz made their first contribution in #1043
- @spollard made their first contribution in #1153
- @jay3ss made their first contribution in #1173
- @MaigoAkisame made their first contribution in #1108
- @crazyxw made their first contribution in #930
- @Nex4rius made their first contribution in #1041
- @obiwankennedy made their first contribution in #1201
- @tehKost made their first contribution in #684
- @mdawar made their first contribution in #939
- @sarjann made their first contribution in #1063
- @Ricardo-HE made their first contribution in #1237
- @jopdop30 made their first contribution in #1260
- @btRooke made their first contribution in #1281
- @chrisapplegate made their first contribution in #959
- @TrippleCCC made their first contribution in #1304
- @hlzl made their first contribution in #1317
- @mxbi made their first contribution in #1329
- @jkolbly made their first contribution in #1332
- @nicoeps made their first contribution in #1335
- @tomj made their first contribution in #1363
- @somstrom made their first contribution in #1370
- @whimxiqal made their first contribution in #1383
- @timgates42 made their first contribution in #1389
- @mondeja made their first contribution in #1405
- @luyanger1799 made their first contribution in #1296
- @jcbrockschmidt made their first contribution in #1420
- @ParikhNand made their first contribution in #1373
- @Victrollia made their first contribution in #1537
- @gokuld made their first contribution in #1399
- @creichen made their first contribution in #1552
- @ZxYuan made their first contribution in #1591
- @luzpaz made their first contribution in #1633
- @abramhindle made their first contribution in #1657
- @tharun634 made their first contribution in #1735
- @erikgaas made their first contribution in #1732
- @B3QL made their first contribution in #1768
- @ezioruan made their first contribution in #1744
- @AhmedElwerdany made their first contribution in #1836
- @LoipesMas made their first contribution in #1837
- @MohamedAbdultawab made their first contribution in #1788
- @whitetxt made their first contribution in #1885
- @EFord36 made their first contribution in #1914
- @andriyor made their first contribution in #1728
- @46319943 made their first contribution in #1954
- @javad94 made their first contribution in #1979
- @stef405 made their first contribution in #1952
- @yoichitgy made their first contribution in #2003
- @tobiasBora made their first contribution in #1995
- @sohang3112 made their first contribution in #2136
- @OsaAjani made their first contribution in #2024
Full Changelog: v1.0.2...v2.0.0