,

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!

,

I am proud to announce the release of OpenShot 2.3.3, which addresses many serious stability issues, and the launch of our amazing new website (www.openshot.org). It's been a busy month so far, and I'm super excited to roll out these improvements!

Improved Project Website (responsive, mobile-friendly, and fast)


Our new website has been in development for the past month (or so). It's built with Python/Django/PostgreSQL and runs on Amazon EC2. There are many custom features of our website that have accumulated over the years (PayPal integration, Bitcoin integration, Patreon integration, GitHub integration, donation back-end, Slack integration, openshot-qt exception reporting and version integration, contributor back-end, and more). Migrating all these features, and upgrading the UI took some time, but I'm very happy how it ended up.

Error Analytics

Over the past 2 weeks, I've done quite a bit of work aggregating up exception data for openshot-qt and libopenshot, and analyzing some key data points. I've targeted the top 25 crashes and errors, and version 2.3.3 should resolve them all! Below is an example of the analysis, which graphs the frequency of unhandled Python exceptions (including line number). 


Version 2.3.3 Improvements

  • New release of openshot-qt! Bumping version to 2.3.3, and libopenshot depenency to 0.1.6
  • Adding CFBundlePackageType key to Info.plist, and symlinking a few files which I don't think are considered executables in the app bundle. A bit experimental, but trying to overcome an issue with Gatekeeper on OS X Sierra.
  • Fixed SpaceMovie 3D animated title alpha key frames, and adjusted the position of the main title to be better centered when it appears.
  • Fixing bug when selecting effect on a clip (where selection dropdown would not populate)
  • Fixed bug on certain systems when loading list of all supported languages. 
  • Fixed backup recovery issue which would not refresh the timeline on load. 
  • Fixed bug destroying the lock file (if another process already deleted the lock file). 
  • Added C++ exception parsing from archived exception data.
  • Adding a script to parse and aggregate Python error logs for OpenShot
  • Another attempt to fix the race condition causing the "zipimport.ZipImportError: can't decompress data; zlib not available" when launching a frozen version of OpenShot. 
  • Fixed a common error on the title editor (caused by a missing font-style).
  • Protecting query classes more, to prevent invalid clip/tran/effect ids from crashing
  • Removing NVidia driver from AppImage (build server)
  • Updated supporters and donors file
  • Updated translations and improved translation test script (which validates all string replacements are found in translations)
  • New release of libopenshot (0.1.6)
    • Fixing Timeline::SetJSON to use a lock, and reopen the reader if already open. This fixes an issue when trying to open another project while the current project is being accessed (i.e. during playback).
    • Adding additional lock on ClearAllCache method, to prevent crash
    • Fixing a data type issues with max()
    • Big improvement with handling invalid video and audio timestamps, defaulting to more sane values (when huge crazy timestamps are detected). 
    • Fixing a bug when disabling video/audio tracks on FrameMappers.  
    • Adding additional bail-out code when stuck searching for a video/audio packet that probably doesn't exist. 
    • Added improved "checked frame" handling, and once 1 frame is detected as invalid, clean out any other invalid ones as well.


Join the Team

If you love OpenShot and want to help make it the best free video editor in the world, I am still looking for help to manage the ever growing list of GitHub issues, plan future releases, track down bugs, and think up great ideas. You don't have to be a programmer or hacker, just someone with a cheerful outlook, and willingness to help out. =) Please email me if you are interested in joining the team.

Subscribe to: Posts (Atom)