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!
1,463 backers pledged $45,028 to help bring this project to life.

OpenShot 2.4.4 Released | Keyframe Scaling, Docking, and More!

Posted by Jonathan Thomas (Creator)
7 likes

I am proud to announce the immediate release of OpenShot 2.4.4, the absolute best version yet! This is going to be a long post, but here is a quick summary for those who are short on time. 

Version 2.4.4 brings huge performance and stability improvements, along with some major bug fixes, lots of polish, and many new features. Check out the release video below. 

Keyframe Scaling

This is perhaps one of the best bug fixes included in this release. Keyframes contain actual frame numbers and their values, and thus, switching to different frame rates and/or exporting to different frame rates, has many unexpected consequences, such as every single keyframe coming too early or too late. This is now fixed, so keyframes and animations are correctly scaled when changing frame rates! 

Timeline & Preview Performance

Stability and performance are extremely important for OpenShot, and historically have been our greatest technical challenge. As usual, lots of improvements have been made in this area. Some of the stand-out improvements include: special handling for certain audio files to better handle the 1-frame video track, updated Angular and timeline speed improvements, improvements to image caching, and improved “missing frame” logic which helps prevent freezes while searching for a frame which will never come.

Improved SVG Rendering

OpenShot is now compatible with resvg, an amazing SVG rendering library. A big thanks to RazrFalcon for helping us with the integration! This improves our SVG overlay and title rendering, supporting much more of the SVG standard. The resvg library is included with our official downloads and installers, but might take much longer to reach official Linux repositories (since resvg is not available in many repos). Hopefully the integration with OpenShot will help resvg move in that direction.

Improved Docking & Tracks

One of the most significant updates to docking is the new full size properties widget, which can be on the left or right side of OpenShot. This displays more information without scrolling as much, and is very useful when editing or animating. A big thanks to Frank Dana (ferdnyc) on making this a reality. Also, many improvements have been made when inserting a new track, which makes it extremely fast even on huge projects, and easy to “undo” if needed. Also, many bug fixes relating to “Track Name” are included, and custom named tracks are supported on all dialogs.

Properties Docking
Properties Docking

Improved Windows Installer

If you have previously experienced issues launching OpenShot on Windows, we have created a new wiki article with troubleshooting steps. In addition, our Windows installer now looks for conflicting DLLs, and renames them during install, and should resolve a great number of issues. These conflicting DLLs are being added to System32 by some unknown 3rd party software (which should never be done), and are superseding the ones included with OpenShot. This can also easily be reversed (since we just rename the files). However, in general, our new Windows installer should help a bunch of people who previously could not launch OpenShot.

Relative File Paths

Once a project file (*.osp) is saved in version 2.4.4, some magic happens. All file paths are converted into relative paths, even paths contained in the undo/redo history, thumbnail paths, file paths, and any other paths found in the project data. Upon re-opening your project, all paths are once again converted into absolute file paths. This allows a project folder to be completely portable, and can be moved on the same machine, can be moved to another machine, and even another operating system… and will still open just fine! This “kind of” worked before, but should now work excellent and with great stability.

User-Defined Export Presets

Have a favorite export preset that is not included in OpenShot by default? No problem. Just create a text file in the /users/USER/.openshot_qt/presets/ folder. You can copy one of our existing presets to get you started. Next time you launch OpenShot and open the Export dialog, you will see your custom preset listed.

New Languages: Hindi, Arabic, Chinese

For many years I have dreamed of including full Hindi, Arabic, and Chinese (Simplified and Traditional) support in both OpenShot and openshot.org. I was finally able to help fund this effort, to help out the OpenShot translator community, and help get us to 100% complete translations in all 3 of these languages. I am very proud of this, and hopefully this effort will help engage people from these languages, and introduce OpenShot to a whole new world of people!

Constant Rate Factor Support (CRF)

We have added support for constant rate factor, which required some refactoring of  libopenshot::FFmpegWriter. A big thanks to Peter (you are the best)! This can be utilized in any export preset, and is currently used by our VP9 preset.

Integrated Changelog

Do you ever wonder what changes are included in your currently installed version of OpenShot? Now you can find out! Use the Help->About OpenShot->Changelog dialog, and you can quickly see what commits, the date of each commit, and you can even right click and view the GitHub commit information. I know I might be the only person excited by this, but yay!

Changelog Dialog
Changelog Dialog

Waveform Improvements

When splitting clips which displayed waveforms, the newly split clip would no longer display any waveform data. This has been a long time bug report, and is finally fixed in this release! Thanks to everyone for patience on this one, and I’m glad that it’s finally resolved.

Improved Release Testing

One of my goals for 2019 is to make the development process for OpenShot as transparent as possible, and document absolutely every detail of OpenShot’s release cycle, release testing, and release flow. Included in this documentation is a completely new process for testing OpenShot before a release. Instead of this task being done primarily by myself, I’m hoping that this more transparent and documented approach will allow other contributors to fully test OpenShot and help me out in this area. And for the record, I successfully completed the new release testing process for all 3 OSes (Linux, Mac, and Windows). I actually found many issues while working through the testing plan and resolved them all prior to release. It felt great to actually see the validation of why a more rigorous testing plan is necessary.

New User Community

Over the past few months, our long-time user community / forum (http://www.openshotusers.com) died. Where can a new user ask questions? Where can users have rich discussions on problems, requested features, work-arounds, ideas, etc…? Introducing the official OpenShot subreddit: https://www.reddit.com/r/OpenShot/. So, please join the community, help answer questions, and hang out with us OpenShot people!

Full-Time Development

After giving more than 10 years of my life to this project and this community, I am finally working full-time on OpenShot. I had only dreamed of OpenShot becoming a full-time career, but I am so incredibly humbled and honored that OpenShot continues to grow, improve, and that I have scratched together enough money to work on this full-time! Hold on tight, because 2019 is going to be the most significant one yet for OpenShot! 

Get Involved

Have you been casually following OpenShot for a long time? Do you have amazing ideas for improving OpenShot? Do you want to help spark “video editing joy” in the world? Send an email to hello@openshot.org and introduce yourself. It’s really that easy to get involved with OpenShot on any level, and you certainly don’t need to be a programmer either. All skills, all skill levels, and all people are welcome to join our developer community, share ideas, laugh, and make OpenShot more awesome! Still not convinced or just don’t have any time to contribute? You can always send a donation (and get your name featured in our credits... again)!

Changelog

Here is a more exhaustive list of changes included in version 2.4.4. Also, I want to thank everyone who contributed to these changes! Thank you for helping make OpenShot better!

openshot-qt

  • Bump version to 2.4.4 (minimum libopenshot to 0.2.3)
  • Scale keyframe coordinates when changing Profile or Exporting using a different FPS (#2620)
  • Large performance improvements on AngularJS Timeline (and solved some Async issues) (#2533)
  • Integration of resvg SVG library (gitlab and freeze updates) (#2540)
  • Improved Tracks (simpler numbering, faster inserting, prevent deletion of locked tracks) (#2491)
  • Improved Docking (Timeline widget is now dockable and Properties works in pillar mode) (#2490)
  • Windows Installer: Remove invalid files (system32/zlib1.dll) (#2678)
  • Use libopenshot to generate preview images for our Title editor, and no longer use Qt's SVG parsing by default. (#2544)
  • Improving UTF-8 path detection and conversion (#2525)
  • Rewrite conversion of relative and absolute path support in OpenShot (#2477)
  • Fixing many Python issues reported in our automatic exception tracking (#2482)
  • Fixing Various Breakages in our Release Testing Plan (#2669)
  • Fixing regressions to Split Audio (#2660)
  • Integrate Constant Rate Factor (CRF) into Export Dialog (#2543)
  • Separating PrepareStreams() from Open(), to allow SetOption() to correctly function (#2568)
  • Adding h265 export preset (thanks Peter) (#2680)
  • Adding ~/.openshot_qt/presets/ User-defined Presets, so users can easily install custom export presets (devices and formats) (#2555)
  • Dragging an OSP file into the Project Files widget will open the entire project file (and prompt to save unsaved changes) (#2616)
  • Persist undo/redo history correctly across OpenShot sessions (#2474)
  • Fix audio waveform display when slicing clips or resizing/trimming clips
  • Color picker: Never use native dialog (#2425)
  • Adding Git Changelog screen (#2566)
  • Converting to new Settings class, instead of the old ENV VAR method (#2520)
  • Reverting Angular from 1.7.2 to 1.6.0 (for stability reasons) (#2479)
  • Updating GitHub Templates (for bug report, question, and feature request) (#2608)
  • Updating GitHub README: features list, translation urls, and badges (#2597)
  • Completed Arabic, Hindi, Chinese (Simplified and Traditional) translations (#2594)
  • Update messaging integration on build server (#2426)
  • Add __init__.py file for installed module (#2419)
  • launch.py: Path-detect via openshot_qt init (#2419)
  • Exit using sys.exit() (#2409)
  • preferences: Tweak item layout (#2401)
  • Widen export window (#2373)
  • Pass remaining command line args to Qt (#2355)
  • Copy (cleaned up) xdg icon to src/images (#2316)
  • Add strings to be translated and fix tuple error (#2275)
  • added browse button in file properties dialog, to allow relinking of individual media files (#2275)
  • fix for automatic relinking of missing media files during project open (#2275)
  • Add the same browse type for inkscape and blender field (#2255)
  • Remove CRLF line endings from chromebook preset (#2204)
  • Convert `language.py` line endings (#2204)
  • Missing files are now automatically deleted from the recent menu (#2202)
  • Append correct extension to snapshot frames (#2196)
  • Simplify version number and file name logic in build server (especially for releases) (#2136)
  • Update Contributors & Translations (#2679)

libopenshot

  • Bumping version to 0.2.3 (SO 17)
  • Integration of resvg SVG library (optional during build) (#185)
  • Improved Keyframe Performance (#197)
  • MP3 Special Handling & Missing Frame Refactor (#196)
  • Fix default sizes on readers without MAX_WIDTH and MAX_HEIGHT settings (#188)
  • Adding new settings class to be used for changing realtime settings used by libopenshot, such as scaling mode for preview vs final render, or hardware decode, etc... (#183)
  • Integrate Constant Rate Factor (CRF) for FFmpegWriter (#186)
  • Improving cache performance by preventing the cache from getting behind the currently displaying frame # (#179)
  • Set video bit rate to 0 if an invalid bit rate detected (which happens when using crf) (#191)
  • Invalid SetMaxSize Logic and Invalid CRF q settings in FFmpegWriter (#198)
  • Refactor FFmpegWriter Open() and PrepareStreams() methods, so that SetOption() can be called between them. (#193)
  • Some polishing for the cmake ReSVG discovery (#187)
  • Adding condition before calling av_frame_free (in AV_FREE_FRAME macro) (#184)
  • tests/CMakeLists: Use same dependencies as src/ (#163)
  • Remove Eclipse files and add to gitignore (#178)
  • Fixing Scale Mode (None) in previews (#182)
  • Exclude git tags from kicking off GitLab builds (for libopenshot)
  • Update readme to use markdown and update copyright to 2019 (#94)
  • Update README and INSTALL files (including build instructions) (#194)
  • Add git log file with commits up to the previous release (#192)

libopenshot-audio

  • Bumping version to 0.1.8 (SO remains 6)
  • Create README.md, INSTALL.md, INSTALL-WINDOWS.md, INSTALL-MAC.md, INSTALL-LINUX.md (#32)
  • Adding git log to build artifacts (since last release tag) (#31)
  • Exclude git tags from kicking off GitLab builds (for libopenshot-audio) (#26)

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

Posted by Jonathan Thomas (Creator)
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!

Posted by Jonathan Thomas (Creator)
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!

Posted by Jonathan Thomas (Creator)
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!

Posted by Jonathan Thomas (Creator)
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!