Share this project

Done

Share this project

Done
The time has come for a cross-platform version of OpenShot Video Editor, including its powerful new video editing & animation engine!
The time has come for a cross-platform version of OpenShot Video Editor, including its powerful new video editing & animation engine!
1,463 backers pledged $45,028 to help bring this project to life.

OpenShot 2.4.3 Released | Animated Masks, Nudge, Zoom Fixes, Improved Stability, and More!

15 likes

I am very proud to announce the release of OpenShot 2.4.3, our latest and greatest version! A huge thanks to the community for contributing bug reports, enhancements, translations, and fixes!

Download OpenShot 2.4.3 

Highlights: 

  • Masks and transitions can now be modified at any time, and can now use an image or video! This utilizes the grayscale of each frame and converts it into a mask, and can be used to create some really amazing effects. 
  • Threading improvements help prevent crashing around effects (including masks and transitions), and improve performance on many systems. 
  • Save frame button for quickly saving the current preview frame 
  • Huge improvement to language translations (Thanks to Frank Dana - ferdnyc)

Learn More

OpenShot 2.4.2 Released | More Effects, More Stable, More Fun!

15 likes

I am so excited about this release, and although it's been in development for a long time, it addresses so many important bugs and improvements! Let's start off with the highlights...

7 New Effects (Crop, Hue, Color Shift, Pixelate, Bars, Wave, Shift)

Each of these new effects could have their own blog posts and tutorials (and probably will soon). Each effect was created from scratch for OpenShot 2.4.2, and are all fully keyframable, and can be combined with each other. This creates millions of interesting possibilities (some combinations are shown in the video above). Animated pixelization boxes, animated cinematic aspect ratios, and so much more! As you can probably tell, I'm really excited about them!

Auto Audio Mixing

When enabled, clips can utilize 3 different audio mixing strategies, for cases when clips are overlapping and competiting for audio volume. For example, a background audio track can automatically lower it's volume when an overlapping voice clip needs to play. It is currently disabled by default (on new clips), but can easily be turned on in the clip properties.

Auto Rotate

Photos or videos with rotation metadata will be automatically rotated in OpenShot (requires a somewhat newer version of FFmpeg though). Take a vertical video, or a horizontal photo with your phone, and likely it contains this rotation metadata... and OpenShot will display it correctly.

Improved Audio Playback

Audio playback and mixing has been an area of weakness for OpenShot, and continues to be an area of focus for improvements. Many bug fixes and improvements have been made, and many users will notice less popping, smoother mixing, and less issues in this area. But there is still work which needs to be done, and will continue to be improved further.

Improved Stability

With each release of OpenShot, stability continues to be improved. Most crashes are reported on Windows builds, although we still have too many crashes on all OSes. Some crashes are caused by dependencies, and some are caused by multi-threaded race conditions or memory corruption. Version 2.4.2 for windows is wayyyyy more stable now, and for the first time, is being offered as both a 64 bit and 32 bit version. Many schools still use older 32bit CPUs and have often requested this. Also, our 32-bit builds are now large memory aware, and can support more memory, making crashes much less likely for lower powered computers.

Improved Export Dialog

OpenShot's export dialog now displays progress in the window title, including some performance metrics (encoding frames per second and estimated completion time).

New Codec Support (including experimental)

AAC is now the default audio codec for many presets, which allows OpenShot to create videos which are more widely compatible with all OSes, devices, and web browsers. Also, experimental codecs supported by FFmpeg and LibAV can be used in OpenShot for the first time.

Growing Team of Developers

I am so proud of the volunteers who have been contributing their time to OpenShot over the past many months. Team OpenShot has slowly been gaining more contributors on GitHub, and our users have been so helpful in reporting bugs, updating GitHub tickets, and providing steps to help us reproduce issues. We are still struggling to keep up with the number of GitHub issues, and are trying our best to keep them grouped, de-duped, and organized by priorities. We could still use some help in this area, if anyone is interested!

Dramatically Improved Build System

OpenShot has migrated its build system to GitLab, and moved our development flow to GitFlow. We now have a world-class build system, new installers for every branch and every commit, integration with GitHub, LaunchPad, Slack, and openshot.org. This has been empowering our contributors to create custom branches with experimental features, and out pops 4 installers (Linux, Mac, Windows x86, Windows x64). We have a total of 6 servers now contributing to our builds, git synchronization, status checks, unit tests, and installers.

Full list of features / commits: 

https://www.openshot.org/blog/2018/06/30/openshot-242-released-more-effects-more-stable-more-fun/

OpenShot 2.4.1 Released | Improved Playback & Image Quality!

7 likes

I am proud to announce the release of our latest (and improved) version: 2.4.1. I would like to thank all the people who help and contribute to OpenShot, and make it a joy to work on. This is such a fulfilling project to be a part of, and I’m very humbled so many people find our project useful. Download Now!

Improved Image Quality

We have improved the image processing pipeline in OpenShot to create sharper images, by switching our image scaling algorithm, and most importantly, only scaling a frame once, as opposed to multiple times (which used to happen in certain scenarios). This results in a noticeably sharper image, and slightly better performance.

Improved Playback Smoothness

The video preview capabilities in OpenShot have been improved to better handle higher framerate videos (50 fps, 60 fps, 120 fps). This results in a smoother playback experience, and less jittering and freezing with certain preview profiles.

Improved Stability (especially for Windows)

Right after our previous release (in September 2017) we made some very large changes to libopenshot to better support Windows (with respect to certain data types in C++). This fixes many, many Windows issues, including audio files stopping early, sync/desync issues, videos stopping at 30 minutes (or at an earlier time), opening project files with non-English characters, and more. If you have had any issues on Windows, please give this new version a try.

But is it really more stable?

Yes. Each release we fix actual stability issues, and continue to find race conditions, and add more protection around high risk code (such as image data). On certain systems, and with different combinations of video cards, CPUs, and OSes, some crashes happen often (which is less than ideal), and on other systems, it doesn’t crash at all. Each time we can reproduce a crash, we fix it, and the net result is statistically less crashes with each new version of OpenShot. We have reduced the # of crashes by a factor of 10 in the past 12 months, and will continue to work hard in this area.

New Video Tutorials

I am proud to announce a new series of video tutorials is in the works, and the first few are now available. I will be adding more videos very soon, and look forward to building a comprehensive collection of short (5 to 10 minutes) tutorials, covering all the features, secrets, and workflows built into OpenShot.

 
New Website Translations

As you might have heard me mention before, the OpenShot website is now available in different languages, and this has been really fun to work on. Bringing OpenShot to more languages and more people is exciting, so please check out the following translations, and help spread the word! 

Libopenshot (full list of changes)

  • More critical sections trying to prevent race conditions on high CPU core systems 
  • Additional critical sections around adding frame images 
  • Codec lookup by name in FFmpegWriter, which should solve a few issues (such as xvid support). Thanks Peter! 
  • Fixing regression with rotation origin. Things should always rotate around the center of an object (until I add in keyframable anchor points) 
  • Setting timebase on video stream in FFmpegWriter... a bit experimental 
  • Improving playback smoothness on high framerate videos, especially when the video frames need to jump forward to keep up with the audio. 
  • Removing throw statements from header files 
  • Reducing # of scale operations to 1 per layer on the timeline 
  • Fixing 16 thread limit on FFmpegReader 
  • Fixing a cast from long to int64_t 
  • Updating all "long int" frame number types to int64_t, so all 3 OSes will produce the same depth and precision on frame numbers. This is a big one! 
  • Removing variable bitrate support (for now), since it causes more problems than it solves.

Openshot-qt (full list of changes)

  • Fixing small regression with translation website URLs when using default/en_US 
  • Fixing small bug in Export dialog where profile and quality get blown away when changing format 
  • Ignoring history update messages, since libopenshot doesn't care about them 
  • Simplifying export progress, reducing # of signals being emitted 
  • Integrating current language into website URLs and simplifying a few translations (removing HTML tags) 
  • Removing unneeded UTF8 encode method, which caused certain project paths to fail when loading (solves crash on Windows trying to open non-English project file paths) 
  • Fixing a big race condition on initial launch of OpenShot, which causes certain JavaScript calls to fail (so default profiles, snapping mode, and few other things set on launch would fail sometimes) 
  • Adding keyboard shortcuts for toggling 'Transform' and 'Insert Keyframe'. This improves the animation work-flow, and no longer requires a bunch of mouse clicks / context menus for animations. 
  • Preventing overwriting an input file with the export dialog, and updating export progress on export window title 
  • Updating translations and contributor credits

Get Involved (it’s really fun)

You don’t have to be a developer to get involved with an open-source project like OpenShot. You just need some free time, a desire to make new friends, and a love for OpenShot (or video editing in general). Just email me (jonathan@openshot.org) and introduce yourself, and let me know how you would like to be involved. Here are a few ideas: testing, graphic design, GitHub issues management, translations, ideas for improvement, documentation, and of course, software engineering (Python, C++, HTML/CSS Angular).

OpenShot 2.4.0 Released | Improved Stability & More!

10 likes

The latest and greatest version of OpenShot Video Editor (version 2.4.0) has been officially released, and I'm proud to bring you all the details! This is a stability-focused release, and much of the effort was "behind-the-scenes" type work. 

Vastly improved stability, improved undo/redo history (now being saved inside each project file), new freeze and zoom menu, updated translations, and many bug fixes!

I have spent the past few months working along side a few other brave developers (huge thanks to Craig and Peter), determined to solve a very difficult stability issue, which is the leading cause of crashes in the OpenShot 2.x source code. The challenge was to isolate the crash, and find a way to reliably reproduce the crash in our development environments. This proved very difficult, and often we could run hours and hours of test code before a crash would happen. And of course, debuggers and analysis tools would slow the code down, and reduce the likelihood of a crash even more, often preventing the crash completely.

For those who want more technical details on the crash, please keep reading. The crash was a race condition and memory corruption bug, caused by a few different things. We process video and audio data in a thread pool, and sometimes things happen in a very unpredictable order. In a very rare condition, memory was being cleared while it was still being accessed. Also, we switched from an older tr1::shared_ptr to std::shared_ptr, and changed the way we initialize our shared_ptr instances, reducing the amount of memory being requested. Also, there were a few spots that needed to be protected between threads, and required locks. So, in summary, a handful of small changes, and a few months of debugging, and we can no longer crash libopenshot during video processing or video encoding! I'm very excited about solving this one if you can't tell!

Here is the full list of improvements:

openshot-qt (Video Editor) 

  • Improving undo/redo support. Now the last X number of undo/redo actions are stored in the project file. The number can be adjusted in the prefences, under the auto-save tab. This also vastly improves the usefulness of the auto-save system, since it saves your undo/redo history as well. 
  • Fixed Image Sequence exporting. Supports PNG, JPG, PPM, BMP and a few others. Also added 'Audio Only' and 'Video Only' export options. 
  • Adding new Freeze and Freeze & Zoom presets, to quickly insert freezes into clips. Removing 'show waveform' from separate audio menu, to increase speed of separating audio. 
  •  Protect file menu from invalid file_id. 
  • Protect timeline dropEvent from empty item_id. 
  • Cloaking timeline body until Angular loads fully (so we don't see the occasional pop-in debug layout). 
  • Updating translations and supporters. 
  • Bumping version to 2.4.0 (minimum libopenshot version 0.1.8).

libopenshot (Video Library) 

  • Prevent crashes related to too many threads (on 24+ thread systems). 
  • Migrating tr1 to std, adding C++11 support to build scripts, fixing crash in FFmpegReader (caused by shared_ptr, buffer, and last_video_frame corruption). Much improved stability with this change. Thanks to Craig and Peter for the help! 
  • Fixing crash on Ubuntu build server. 
  • Fixed a strange bug related to exporting image sequences. The filename property was not being set on the AVFormatContext. Also fixed a bug when exporting to JPEG image sequences related to max_b_frames and certain codecs. 
  • Fixing issue with incorrect image size caches, which results in blurry/smudgy scaling on certain things. 
  • Fix issue with loading time curves that are never processed (i.e. have no values) 
  • Adding additional locks when adding/changing audio data. Reducing FrameMapper to a single frame at a time. 
  • Fixing crash on Time keyframes where it would sometimes calculate an invalid frame number. 
  • Fixing audio pops when stacking multiple clips with different offsets (pretty big issue for some people, just depending on your source framerates and position/start of clips). 
  • Removing nested OMP processing from FrameMapper. Adding lock inside time mapping (to prevent crashes when speeding up/slowing down clips). Adding omp critial lock to Frame GetAudioChannelsCount() and GetAudioSamplesCount() methods. 
  • Bumping version to 0.1.8 (SO version 13).

If you have had stability issues in the past with OpenShot 2.x, please give this latest version a try. Also, a big thanks to all the users, contributors, translators, and supporters that give life to this project! I could not do it on my own, and I am humbled that so many people find OpenShot useful. If you want to get involved with our project, please shoot me an email: jonathan@openshot.org. I am always happy to on-board new contributors and help them find something to help out with. Or if you would rather show your appreciation with a small donation, that would also be great!

OpenShot 2.3 Released | New Transform & Razor Tools!

8 likes

I am proud to announce the newest release of OpenShot Video Editor, version 2.3! This is one of the biggest updates ever to OpenShot, and is filled with new features, performance improvements, and tons of bug fixes! Take a quick look at our release video below, which highlights some of our biggest new features. 

Download OpenShot 2.3

 
Also, check out this awesome 2D animation created by my daughter with OpenShot 2.3 (my kids are the best testers and are experts at breaking OpenShot)!  


Transform Tool 

We have added a new transform tool, which allows real-time transformations in the video preview window. Right click on any clip, and choose “Transform” to enable the tool. Using your mouse, move and scale the clip as needed, all while enjoying a real-time preview. Animating the location and scale of clips has never been easier! 

  
Zooming Improvements 

Zooming in and out of the timeline, in order to increase precision of your edits, has been greatly improved. When zooming the timeline, it now centers on your mouse position, similar to image editing applications. The zoom scale is also now saved in each project file, which saves some time when jumping back into a project. When your mouse is over the timeline, hold CTRL+mouse scroll wheel to zoom in and out.

  
Razor Tool 

Back by popular demand, the razor tool from OpenShot 1.4.3 has returned from the dead. Click on the Razor toolbar button to switch to razor mode. Now click on any clip or transition to quickly cut them (holding CTRL and SHIFT modify the razor to only keep the left or right side). Alternatively, you can cut a clip at the Playhead position by right clicking and choosing “Slice”, by using CTRL+K, or by grabbing the edge of the clip and dragging. 

 
Improved Title Editors 

Many improvements have been made to the Title Editor and Animated Title Editor. Both editors now display a grid of thumbnails, to make finding the right title easier. Save dialogs are no longer used, and instead title files are saved directly into your project folder. New “Edit Title” and “Duplicate Title” menus have been added, to assist in quickly making changes to titles.

  
New Preview Window 

Previewing files now has its own dedicated video player, which allows for multiple video preview windows at the same time. Also, audio files render a waveform by default. The speed of previewing files is also improved, using the improvements mentioned below. 

  
Huge Performance Improvements for Real-time Previews 

Performance improvements are always a high priority, and we’ve made some really great improvements to the speed of real-time previews. We’ve also fixed some bugs related to freezes and hangs, caching improvements, frame detection, and better logic to determine the max size of our preview window, so we can optimize by not rendering images and frames larger than the preview window. The end result is the best real-time preview performance yet for OpenShot.

New Documentation 

I have finally gotten around to publishing a User Guide for OpenShot 2.x. I am using the Sphinx documentation system (which is really great), and I think this will be very useful for new users, and any user who wants to get the most out of OpenShot. It is currently only available in English, but I will soon start the translation process for it.

  
Audio Improvements 

Fixes for audio sample distribution, caching, off by 1 errors, and various frame boundary improvements (Thank you Nelson H). Also, improvements to audio device management, which is how OpenShot communicates with the audio system on each OS.

Improved Export Dialog 

Export dialog has been improved to re-load the project, clear cache, and export without requiring any ties to the real-time preview system. This fixes many freezes and hangs when attempting to export, and is a much more stable approach. Also, on Linux, export progress is now displayed on the launcher icon (in Unity and other launchers).

New Windows Build Server 

As you might have heard, my Windows development system (and build server) died (again)... stopping all Windows builds for a few weeks. Hard-drive and motherboard issues (and possibly other problems too). A HUGE thanks to John Fields and his band of merry Open Source Saturday folks. They donated a wonderfully nice computer (i7, 16GB RAM), and their only request was that it be called StarLord! Done! StarLord is up and running, and is working beautifully!

GitHub Bug Management 

With the help of a few volunteers (Ankit, Justin, Jt, and others), we’ve been able to reduce our GitHub bug count from over 380+ bugs to less than 200. Many of those 200 should be resolved with version 2.3, so I still have some work to do in this area, but making great progress! I’ve also added some GitHub templates when filing new bugs, to help increase the quality of new bug reports, and guide users on generating and attaching log files.  

Translations 

OpenShot 2.3 is fully translated in 11 languages, and partially translated in more than 60 others. If you notice untranslated text in your native language, please feel free to submit your own translations on LaunchPad

100% translated in the following languages: 

  • Spanish 
  • French 
  • Italian 
  • Portuguese 
  • Brazilian Portuguese 
  • Greek 
  • Ukrainian 
  • Catalan 
  • Malay 
  • Icelandic 
  • English (United Kingdom) 

  
Patreon & PayPal Donations 

If you use OpenShot, support OpenShot, or just want to ensure its continued development, please consider a small donation, or help us spread the word. It is expensive and time consuming to build and distribute OpenShot, and any contribution would be hugely appreciated! 

We accept PayPal, Bitcoin, and Patreon donations, and we’ll list your name in the credits of OpenShot (which is pretty awesome)!

Additional Features 

  • Added new welcome tutorial message, which contains a checkbox for disabling anonymous error and metrics reporting. That can also be adjusted in the Preferences, but it has been often requested to allow new users to opt-out. 
  • All child windows now center on parent window 
  • Ability to easily display frame numbers on frames 
  • Improved accuracy when calculating frame numbers 
  • Improvements to frame accuracy, especially when zoomed in at max zoom 
  • Dramatically increased speed of selecting and unselecting large numbers of clips/transitions. 
  • Refactor loading properties for selected items, to improve speed. 
  • Refactoring and improving preview playback of files, and preview playback during resize/trim (which now maintains aspect ratio correctly). 
  • Improving long filename support in file tree/list views, and improving thumbnail/grid view on all listviews (effects, transitions, titles, animated titles, etc...) 
  • Updating translation files (with a few minor corrections to string formatting arguments). 
  • Improving test_translations.py script, which helps me detect problems with missing formatting args. 
  • Fixed an issue preventing the track names from being translated on launch. 
  • Adding "width x height" to list of profiles on Export and Profiles screens, to make the output resolution more clear 
  • Improved logic for "Next Marker" and "Previous Marker" buttons to include the selected items (start and end positions), to allow quickly jumping to the beginning or end of a selected clip. 
  • Prompting user to find missing files when opening a project, and updating translation template. 
  • Prompt user to save before creating or opening new project file (if needed) 
  • Make effects container on a clip visible on hover (regardless of how small the clip is). 
  • Tweak tooltips of clip title so they don't cover up the menu button and effects. 
  • Making settings save to disk as they are changed in preferences. 
  • Setting focus to Project Files on launch, so the properties filter doesn't auto get tab focus (preventing certain keyboard shortcuts). 
  • Switching snapping logic to compare pixels (not time), so it's still useful at close and far zoom levels. Reducing snapping to 10 pixels. Fixing bug when updating new properties for a clip. 

Bug Fixes

  • Fixed regression with selection dropdown 
  • Fixed crash when pasting keyframes onto a clip/transition 
  • Fixing incorrect placement of a selection handle 
  • Fixed a bug when caching a mask size (a regression from some of our speed improvements) 
  • Fixed small bug with Next Marker and Previous Marker buttons (not handling position 0 correctly). 
  • Fixed bug in transform callback, where transformation was not being disabled when selecting a different clip. 
  • Adding a lock when updating the JSON of a Timeline (or remapping it), so nobody can request frames while everything is changing. Seems much more stable during live preview. 
  • Fixing invalid cache after editing effect in a clip, and frame accuracy (converting timestamps into frame numbers). This makes frame by frame editing much better. 
  • Fixing broken gravity for GRAVITY_BOTTOM_LEFT 
  • Fixed bug with Build server version detection regex (when releasing new versions). 
  • Fixed a big bug when pasting deleted clips and transitions. 
  • Refactoring some tracking code on initial install, and saving settings after launch (since some settings are updated on launch) 
  • Always settings unique id when sending metrics, which is required or analytics ignores it 
  • Fixing a crash during initialization of the main window, and a crash during application exit, where threads were not being terminated correctly or safely. 
  • Fixed a crash when closing the Split Clip dialog. 
  • Fix align_x bug in newer Blender versions (Thanks mixedbredie) 
  • Updating Blender compatibility to 2.78, since the API has changed a bit. Also fixing the regex for detecting preview images from Blender, since the output from Blender is now a bit different. 
  • Refactoring load project flow to take advantage of the new locks in libopenshot (which allow for quicker updates to the live preview after a change is made). 
  • Fixed a regression detecting missing files that contain expressions (like blender animations). 
  • Improve speed on Transform method, since it gets called quite often during project load (due to clearing selected clips and transitions) 
  • Fixing regression with slicing clips (and razor tool). 
  • Fixing regression on reading large log files (causing slow launch) 
  • Fixing regression on passing keypresses to timeline. CTRL and SHIFT keys have special uses on the timeline. 
  • Improve cutting/splitting dialog to use Timeline() object, to support all possible media types (images, videos, etc...) and maintain correct aspect ratio. 
  • Removing unused files and unneeded translatable strings. Also, adding title names to translation template (forgot about those). 
  • Removing old effect meta data and old effect icons. New effects will have different translatable metadata. 
  • Removing uploads folder from mac build script 
  • Removing app.processEvents from transitions and effects models, due to crashes on OS X. Also, it doesn't make much of a difference anymore. 
  • Fixing weird bug preventing backup.osp from restoring correctly 
  • Fixing bug with duplicate title when running in an non-English language 
  • Improving logic to process files when importing (some were incorrectly marked as invalid) 
  • Fixing bug when opening legacy projects (1.4.3) that contain effects or markers