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. This release brings huge performance and stability improvements, along with some major bug fixes, lots of polish, and many new features.

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.

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!

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

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