Happy New Year! Last year was an amazing year for OpenShot, with huge stability and performance improvements, a new interactive transform tool, improvements to animation & key-frames, a new website (translated in 10 languages), a new cloud API (for video automation), improved playback speed, and more than 1 million installs of OpenShot 2.x. Now that 2018 has arrived, I thought it would be fun to discuss the future of OpenShot, and where it's heading for the next year.

Plans for 2018

Here are a few of my favorite ideas for 2018, but I would love to hear other ideas too (please drop great ideas in the comments below).

  • Improved Stability (an important focus every year until I see no crashes reported).
  • Improved Transform and Preview - Allow for zooming in/out of the video preview, to allow easier off-screen animations.
  • Integrate Origin Points into transform and rotation (and make them keyframeable), which is super useful in animation work-flows.
  • New Image Sequence Reader - Dramatically improve speed and seek performance of image sequences (for frame by frame animations).
  • Improved Documentation (including translations)
  • UI Improvements (and possibly timeline themes)
  • Interactive Keyframe Curves (on the timeline, to make selecting, moving, and visualizing them easier).
  • More Effects - I have a large backlog of video and audio effects that need to be ported into OpenShot 2.x, and I would also like to introduce an easy plug-in framework to allow others to quickly create video and audio effects.
  • 32-bit Windows Builds - This has been requested a billion times (okay maybe that's exaggerated, but many schools have old computers, and are not able to use the current 64-bit builds).
  • More High-Quality Video Tutorials - I have created 6 official tutorial videos in 2017, and I hope to create a bunch more in 2018, as this is a highly effective way teach how OpenShot works... and they are fun to make.
In summary, I want 2018 to be OpenShot's best year ever, solving any remaining stability issues, introducing huge improvements to the UI, animation and editing workflows, add many new video and audio effects, and further develop our training, documentation, and video tutorials to bring OpenShot to as many people as possible.

If you would like to be a part of the 2018 plan mentioned above, or want to help out in any capacity, please send me an email and introduce yourself. =) I look forward to meeting you, and together maybe we can transform OpenShot into the world's best video editor (...one day).


Do you like OpenShot, but wish it was better? Today is your lucky day! 

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 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).


I am happy to announce that the OpenShot website (www.openshot.org) now fully supports translations (6 languages so far), and I am looking for some brave translators who are interested in helping me translate our content into even more languages.

Check out our website translations (so far):

Dutch: nl.openshot.org
Finnish: fi.openshot.org
French: fr.openshot.org
Icelandic: is.openshot.org
Norwegian Bokmal: nb.openshot.org
Ukrainian: uk.openshot.org

If you speak one of these 6 languages, please help me spread the word about them. It will take time for search engines to index them, and the more links to these URLs the better (and sooner) the search engines will figure them out.

Help bring OpenShot to more people!

We still need a bunch of help completing translations for the OpenShot website, so if you are a non-English native speaker, and would like to help contribute translations, all it takes is some free time, and a web browser: translations.launchpad.net/openshot/website. [Please no automated translation tools such as Google Translate].

Get Involved!

It's a bunch of fun to work on OpenShot, and I would love to work with more people, more developers, more translators, more testers, and anyone with an interest in seeing OpenShot improve. As always, feel free to contact me: jonathan@openshot.org and introduce yourself. Talk to you soon!


Over the course of this year (from Jan to Sept), we have consistently been reducing the error rates of OpenShot Video Editor. Of course, our goal is 0% crashes, but we still have a ways to go. Version 2.4.0 is more than 2 times as stable as the previous version, and has been one of the most dramatic improvements in stability yet, but with your help, we can repeat this again, and keep doubling the stability with each release.

To get involved, please email me, and I will help you get everything building, and hopefully guide you in the right direction to tackle one of these bugs. I'll have your back, so nothing to fear, haha.

Below are the top C++ crashes (collected automatically for those who opt-in). These crashes happen in libopenshot, and are very likely related to race conditions caused by multiple threads. The format is [namespace::class::method frequency_score].

  • openshot::Timeline::ClearAllCache    938
  • openshot::CrashHandler::printStackTrace    534
  • openshot::Timeline::GetFrame    424
  • openshot::VideoCacheThread::run    200
  • openshot::PlayerPrivate::run    164
  • openshot::Timeline::add_layer    144
  • openshot::PlayerPrivate::getFrame    141
  • openshot::Clip::GetFrame    132
  • openshot::FFmpegReader::ReadStream    113
  • openshot::FFmpegReader::GetFrame    87
  • openshot::Timeline::find_intersecting_clips    86
  • openshot::Clip::Open    84
  • openshot::FrameMapper::Open    84
  • openshot::Timeline::update_open_clips    84
  • openshot::Clip::GetOrCreateFrame    83
  • openshot::FrameMapper::GetFrame    81
  • openshot::FFmpegReader::GetAVFrame    73
  • openshot::Timeline::add_layer::shared_ptr::Frame::Clip    71
  • openshot::FFmpegReader::Open    70
  • openshot::Timeline::ApplyMapperToClips    57

Below are the top Python crashes & errors (collected automatically for those who opt-in). These crashes happen in openshot-qt, and are caused by a variety of different factors. The format is [filename.py::line frequency_score].

  • json_data.py:148    818
  • main_window.py:565    783
  • project_data.py:704    783
  • json_data.py:143    773
  • main_window.py:2243    228
  • main_window.py:260    186
  • main_window.py:240    180
  • blender_listview.py:242    106
  • blender_listview.py:88    106
  • title_editor.py:581    101
  • timeline_webview.py:2797    93
  • video_widget.py:516    58


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!

Subscribe to: Posts (Atom)