Latest News

Follow the latest news on OpenShot Video Editor!


,

Greetings Everyone! I am proud to release the first beta of OpenShot 2.0 (details below), and start a much wider testing effort. For all you supporters with early access, I will be sending a separate update with links to installers. For everyone else, the source code has been published and is available online, but I would recommend waiting just a tad longer, until I post the installers for everyone.

Context Menus

The following context menus have been integrated into the Timeline of OpenShot. They add a ton of usability and fun to the application, and can be combined to create some really awesome effects.
  • Copy / Paste - Copy and entire clip, or just certain keyframes. In other words, custom animate a single clip, and then paste the keyframes onto as many other clips as you would like. Very powerful, and very quick. 
  • Volume - Fade in and out audio levels (or raise and lower the volume) 
  • Time - Speed up, slow down, play forwards, play backwards 
  • Fade - Fade in fast / slow, beginning of clip, end of clip, or both 
  • Animate - Move the clip around the screen, zoom in, zoom out, etc... 
  • Layout - Position the clip statically anywhere on the screen, or automatically position all overlapping clips side by side (Brady bunch style) 
  • Rotate - Rotate 90 Right, 180, 90 Left, Flip, etc... 
  • Slice - (When the playhead is overlapping a clip), keep the left side, keep the right side, or split the clip and keep both sides


Context Menus 
Context Menus

Split Clip Dialog

This dialog is brand new for OpenShot, and I’m excited to see how people utilize it. This screen lets you take a single video file, and quickly cut out all the exciting moments / clips that you want to use in your video. You can even name the clips as you go, to keep your video project well organized.


Split Clip Dialog 
Split Clip Dialog

Add to Timeline Dialog

Adding many media files to the timeline quickly can be important, especially when building a photo slide show, or quickly assembling lots of clips to construct a story. Easily fade between clips, zoom in/out of clips, or randomly transition between them. Reorder clips, shuffle clips, and/or remove clips if needed. Insert these clips on any track, and at any starting position.


Add to Timeline Dialog 
Add to Timeline Dialog

Installers

I have invested a lot of testing into the Mac and Windows installers, and feel pretty good about them now. This is the area I’m most concerned about, since these installers have been tested on a relatively small set of computers. So, please be patient if the installers fail, and I’ll do my best to quickly fix them.


Mac Disk Image 
Mac Disk Image

Windows


I have improved a number of issues on the Windows version of OpenShot, including an updated version of FFmpeg (now integrated into my build process, which solves many runtime issues I was experiencing). I also solved a variety of file path related craziness, which was breaking a few features in Windows. 3D animation support has also been fixed for Windows.

Fonts

On Mac and Windows, I’ve improved the default font used by OpenShot. This has been an issue for a while, and I finally decided to just embed an open-source font into the application, and use it instead. I’m happy with the results so far, and fonts look much better across the board.

Language Translations

OpenShot is translated in more than 80 languages, and many of the translations continue to work in version 2.0. However, there are many, many new words and phrases which have not yet been translated, so if you are testing a non-English language, please keep in mind you will see many English words mixed in. If you are a non-English native speaker, and would like to help with translations for your native language, please check out: https://translations.launchpad.net/openshot. Note: Please do not use Google Translate.

Timeline Fixes

Many bugs have been fixed on the timeline, including issues related to the max width, scrolling, resizing, snapping, thumbnails, styles, and much more.

File Tree

File names are now editable, including a new “Tags” property, which can be used to add custom filters to your media files. This is helpful when you have dozens (or hundreds) of media files, and want to organize them with tags, so they can be quickly filtered.

Transitions

There are hundreds of transitions included with OpenShot, and those files have introduced many challenges. They add filesize to our application, and cause issues with start-up speed, since OpenShot was generating thumbnails / cache during the initial launch. Both of those issues have been improved, filesize dramatically reduced, and a new approach to caching introduced. The end result is a much smaller installer, and a super fast initial launch. Support for custom, user-defined transitions has also been added… just drop any image into the /.openshot_qt/transitions/ folder.

Titles

There are dozens of SVG titles included with OpenShot. Those titles have each been updated for compatibility reasons, and lots of misc issues fixed on the Title Editor dialog. Support for custom, user-defined titles has also been added, just drop any SVG file into the /.openshot_qt/title/ folder, and they will magically show up in OpenShot’s title dialog.

libopenshot Improvements

libopenshot has been released a couple times since our last update, and lots of bug fixes and performance improvements added. Audio file’s that contain video streams now show up correctly. Videos with missing frames are better supported. Failsafes have been added when a frame cannot be found (or audio is missing from a frame).

Code Signing Certificates

Before I could release any installers on Windows and Mac, I had to acquire code signing certificates, which I could post an entire rant about...but I’ll skip that for now. Just know that this was not an easy or fun task. =)

Credits Dialog

Find your name in the credits, thanks to a new, searchable credits screen. This screen includes developers, translators (for your current language), and backers/supporters.


New Credits Dialog 
New Credits Dialog

Summary

I am very happy to deliver the first beta release of OpenShot 2.0! This has been a long and difficult project, but I’m so excited at how far it’s come. If you are a backer with early access, you will be receiving another update shortly with instructions on how to download and install this beta. If you are not a backer, or did not choose to receive early access, please be patient, as I plan on releasing these installers to the general public very soon. Thanks again for supporting OpenShot!

Stay tuned...

,

Greetings Everyone! Over the past many months, a ton of work has gone into OpenShot 2.0, so this update is going to be jam packed full of exciting news and updates! I’ll be discussing what features are now completed, what challenges have come up and been conquered, what challenges remain, and what’s next for OpenShot!

This remainder of this update contains many technical details about OpenShot 2.0, so for those of you who just want to hear the big picture, here it is: Lots of progress is being made, with many difficult technical challenges now overcome, and I am 100% committed to bringing OpenShot successfully to Windows, Mac, and Linux as quickly as possible!


Performance Improvements - Image Manipulation

As everything started to really come together, and I was able to start testing more complex functionality from the UI, a really big, show-stopping type of issue was discovered. ImageMagick++, which is a C++ library for manipulating images, and deeply integrated with libopenshot, hit me with the following:
  • OpenMP Deadlocks - libopenshot uses OpenMP to accelerate certain parts of the video editing pipeline, and this approach was colliding with certain internal ImageMagick functions, which also uses OpenMP. The result was a really ugly deadlock, freezing the execution of the program. There were a couple workarounds I came up with, but they were just as ugly. 
  • Performance Issues - Certain image manipulation routines, such as rotation (a type of distortion), took a crazy amount of processing time (0.5 to 1.5 seconds per frame). I consider both of these issues show-stopping!
Not having many options left (and not having any more time left to mess with it), I decided to move to Qt5’s QImage, and reprogram all image manipulation code in libopenshot. This took many, many weeks of work, but resulted in some fantastic things: Super fast processing of images, fast rotation, fast distortion, fast pixel manipulation, and great multi-thread support!

Video Export Dialog

An important feature of a video editor is being able to export your new creation. This dialog is now completed, and works much like the one in OpenShot 1.X. It is easy-to-use, very flexible, and supports over 100 video formats & codecs. There are many additional features I would like to add to this screen, but for now, it is complete and functional, and supports just about every combination of (resolution, frame rate, sample rate, bit rates, formats, video codecs, audio codecs, etc…)

Keyframes and Properties

Another critical UI element that is now complete and functional is the new property editor. Simply select an element on the screen (clip, transitions, effect), and the properties appear. Any property can be easily changed, and as you change properties (depending on where the playhead is), keyframes are automatically added, and indicated on the property window with colors. As you drag the playhead around, the values in the property window change, so you can see how your values are changing with time. Green background color indicates you are currently on that keyframe. Blue background color indicates the value is interpolated from a keyframe. Gray background color indicates the value is not keyframed and is not changing over time.


Effects Integrated into UI

Many effects have now been integrated into OpenShot 2.0’s UI, and can be dragged onto clips (or tracks) and edited in the property window. This is a work-in-progress, as I have many more effects that will be added soon, but a few key effects have already been integrated, such as contrast, saturation, and chroma key. The coolest part is these effects can be easily keyframed as well, changing color saturation, contrast, and chroma key values over time. It’s pretty awesome and works great!

Real-time Previews

Due to the numerous performance improvements with libopenshot, real-time previews are finally working well, and are able to keep up with many concurrent layers of HD video and many effects in real-time (on a decent computer). This has been one of the more difficult and rewarding parts of building OpenShot 2.0. =) I never set out to build a video player, but now that I have one, it’s going to be a lot of fun playing around with it. At some point in the distant future, I might even release the OpenShot Player as a stand-alone application, and compete with VLC. Maybe someday… =)

New Source Code Releases

Over the past few months, libopenshot, libopenshot-audio, and openshot-qt (the UI) have all seen new source code releases to the open-source community. While these are development releases (snapshots), and are not terribly easy for users to test, I have been trying to keep a rhythm to the releases, and release whenever things have reached a certain stability.

Windows 10 Cometh

Windows 10 has been released (as you probably know), and it’s a pretty big deal. I have moved my Windows development environment to Windows 10, and of course found many new issues, with regards to libopenshot and libopenshot-audio. One of the largest issues was related to audio processing, and new compile errors with JUCE (the audio sub-system used by libopenshot-audio) related to MinGW64 and WASAPI (fun, fun, I know…). Luckily, these have all been successfully fixed, and patches sent upstream to JUCE.

Mac OS X Yosemite

I also finally migrated my Mac development environment to Yosemite, and worked through a few more issues, related to the GNU compiler and some OS-include compatibility issues. These have also now been resolved!

Breakages in APIs (libAV, FFmpeg, JUCE)

As you probably know, time breaks all things, including APIs. So, it’s pretty regular for everything to break all of a sudden, due to a change upstream trickling down to libopenshot. Why such mature API’s are changed so often (and resulting in breakages) I have no idea. =) But it’s life, and I continue to fix them as I find them. This often derails things for an unspecified amount of time, as I search and debug to find a solution.

New Tools (JetBrains)

Over the past few months, I’ve migrated my development environment to some new tools, CLion and PyCharm. These tools have been quite awesome so far, and have provided me better debuggers, better code organization and formatting, and integrated source control features. They have certainly increased the speed at which I can debug certain types of issues, and I’m very happy with them so far!

Challenges Remaining

There are still a few remaining challenges for OpenShot 2.0, but they are pretty minor in comparison to what’s already been accomplished.
  • Audio issues when resampling across multiple threads. This is a tricky one to solve, but it’s very solvable. However, resampling an audio wave out-of-order is tricky. 
  • Windows 10 Crash with WebM (might also crash on other platforms). This is another tricky one, that I’ve already invested many days into debugging. There are a lot of moving parts, and I hate to blame this one on Windows… but WebM encoding crashes on Windows only, and needs a little more work to figure out.

 

What’s Next

So, let’s discuss what tasks are remaining for OpenShot 2.0 to be stable enough to start wide-scale testing among backers and supporters. There are many small loose ends to tie up related to the UI. For example:
  • The previously mentioned “Challenges Remaining” need to be resolved
  • Many context menus still need to be created
  • A few more effects still need to be added
  • Many small usability tweaks need to be made
  • Credits need to be added to the About screen
  • Windows Installer needs some additional work (Linux and Mac Installers / Packages are in pretty good shape)

Once those tasks are wrapped up, I will be ready to start some very limited alpha testing. Limited so that I can work closely with each person, and help resolve problems without being completely overrun with emails and bug reports. =) Once everything is working pretty smoothly, I’ll start expanding the tests to include more backers and supporters, and finally make an official release for all users to try out.

Commitment

I knew there would be challenges in bringing OpenShot to Windows and Mac, but I certainly didn’t expect some of the problems I’ve encountered so far. There aren’t that many cross platform video editors, and I know why now. =) But I am super proud of what’s been accomplished so far, and I want everyone to know that I’m still 100% committed to bringing OpenShot 2.0 to Windows, Mac, and Linux as quickly as possible. Once the Kickstarter objectives have all been checked off, this isn’t the end, but the beginning of something really special that I hope lives on for decades!

A powerful, flexible, and free video editor, for the world to use and extend, available on any platform, and capable of any video editing need (from students to professionals). That is the dream, and I’m working hard to make that come true! Thanks again for your support, and stay tuned!


,

Greetings and welcome to a special OpenShot Valentines Weekend Update! It has been way, way too long since my last update, and I have a tons of news and info to share with everyone. Over the past few months, many new features and improvements have been implemented in libopenshot (our new video editing library), and much work has been completed on our new Python3 / Qt5 application. So, let’s dive into the details!

Animated GIF Support

Animated GIF Example
The OpenShot Library now has very powerful animated GIF reading and writing built in. With just a few lines of code, you can now create an animation with any size, any framerate, and loop it as many times as you want. FFmpeg does provide some GIF encoder options, but it did not seem to implement an accurate color palette, leaving the GIF animations pretty sad looking. This led me towards implementing a new ImageWriter class, which can export single and multi-frame images with ease, powered by ImageMagick. Bottom line: this feature is really cool, and will be fully integrated into OpenShot 2.0.

Video Playback Improvements

Video playback has been one of the most challenging parts of creating OpenShot 2.0. When I first started designing libopenshot and OpenShot 2.0, I underestimated the difficulty in writing a flexible and stable video player. I had made the incorrect assumption that Qt5, GTK+, or SDL would give me a simple way to incorporate video playback. Over the past 2 months, I quickly found myself writing a large and complex video playback engine. I am happy to announce that video playback is now working great, and has the following features:
  • Any framerate 
  • Any size with scaling (maintaining aspect ratio)
  • Any colorspace 
  • Any number of audio channels and different audio layouts (mono, stereo, surround, etc…)
  • Frame by frame seeking and random, ad hoc seeking 
  • Any playback speed (reverse & forward) 
  • A standalone video player executable (now included with libopenshot)

OpenShot Video Player


Cross-Platform Improvements

One of my primary goals with OpenShot 2.0 is full cross-platform support, with feature parity across Linux, Mac, and Windows. This has now been successfully achieved, and all 3 platforms are working identically… or as identically as you might expect. The Mac version has a global menu, they each have their own platform-specific file browsers, and slightly different color and icon themes. One thing of note, is Qt5 has gone through 4 major releases since I’ve started working on OpenShot 2.0. With each new release, I've noticed a few minor bugs that affect OpenShot. The newest version is the most stable, as you might expect. This has been a mild headache keeping up with the rapid pace of change on that project… not to mention a few other projects, like FFmpeg / libAV.

Installers

I have successfully built and tested installers for OpenShot 2.0 for all 3 platforms. I still have a few minor issues with the Mac and Windows installers, such as a lack of support for SVG images due to a missing dependency, and a few small details like that. However, I don’t expect those will be too difficult to resolve.

New Icon / Branding

New OpenShot 2.0 Icon
Thanks to the generous and very talented graphic designer, Hannah Williams, from Devarim Design: http://www.devarimdesign.com, OpenShot 2.0 will feature a new icon, logo, and branding. We were aiming to create a more unique and recognizable icon than the old generic blue circle. We also wanted it to incorporate some familiar elements, colors, and themes, such as blue, white, a play-button, video editing, etc.... And finally, we incorporated the “O” and “S” shapes from the OpenShot name into the icon. I am very happy with the design, and am looking forward to hearing feedback from the OpenShot community. If you have suggestions to make it better, download the SVG image and give it a whirl!

libOpenShot Release: Version 0.0.4

I am proud to announce the 4th official release of libopenshot (OpenShot Library), which brings with it a ton of bug fixes, improved video playback, new FFmpeg / libAV API support, Animated GIF support, more comprehensive unit tests, better documentation, greater stability, and improved cross-platform build scripts. This Kickstarter project has now officially produced 4 public releases, which I am very proud of. I know there is still much to do, and most people don’t have much use for a C++ and Python video editing library. =) So… let’s talk about the application itself!

OpenShot-Qt Release

OpenShot 2.0 Screenshot
I would have really loved to publish the current version of our PyQt5 application before sending this update (that was my goal). However, the Qt interface still has 2 critical issues that need my attention before it’s ready to share out with developers. Our keyframe editor is partially hooked up, and about 50% completed. Our Export Video dialog is about 75% complete, but has a few big usability issues. Both of those are pretty low hanging fruit, but critical to basic usage and testing of the interface. These are the 2 tasks I am currently working on. If no other major distractions happen, I should have the Qt source code published in the next couple of weeks.

Challenges

There are many challenges that go along with building any software. Some are obvious and some are more subtle. However, some challenges, as I've recently realized, aren't related to computers at all. Sometime in late October, my wife and I decided that it would be fun to put our house on the market, and “test the waters”. We have been talking about moving out of Arlington, TX (a relatively big city) for years, and heading towards a bit more land, and less city. As fate would have it, we had an offer on our house within 1 week, and all of a sudden needed to find a new house, make repairs, pack, rent a moving truck, etc… etc… Needless to say, this required a lot of time and energy.

Fresh Air & Country Life!
In the haste to quickly move, I made my next critical mistake. I failed to backup my primary development computer… which was damaged in all the chaos… of course. I am usually pretty good about backing up all my computers, but my development computer only holds a “copy” of my work… and then the source code is stored on other servers. Thus… no need to back-up the computer, right? I am now backing up my development computer, and the next time this happens (which I’m sure it will), I will be ready.

Once I re-setup my development computer with the latest version of my operating system (and updated libraries and packages), I realized some of the audio API methods I had been using no longer existed in FFmpeg / libAV. So, I then spent a couple weeks fixing all these issues and bringing libopenshot compatible with the latest versions of FFmpeg / libAV, CMake, and ImageMagick.

What’s Next

My primary goal is to release the source of our PyQt5 application on Launchpad.net (the website we use to collaborate with other developers) as soon as possible. Like I mentioned above, I probably have a couple weeks of loose ends to tie up before it will be ready to publish. Once this is completed, I will post another update with a revised list of remaining tasks before the Installers are shared and we can start the next phase of this project: alpha and beta testing. I am really looking forward to getting to that point!

Fun Facts

February 13th is not just the release date of libopenshot 0.0.4, or the date of this update, but it’s also my birthday. Let’s just hope OpenShot 2.0 is officially released and delivered before my next birthday. =)

Thanks For Your Patience!

I want to sincerely thank everyone for having faith in OpenShot and supporting our humble project. Building OpenShot 2.0 is a unique and challenging experience. If it was easy, everyone would be doing it. I am still trying to catch up on my emails, which I have not been attending to very well in an effort to focus on OpenShot development. So, I apologize if I have missed any emails. If you don’t receive a response from me in the next few days, please feel free to email me again. Thanks for being awesome!

,

Welcome to Part 3 of my update on OpenShot 2.0. We still have lots to discuss, so let’s dive right in! If you missed the previous 2 updates, check them out here:



Windows Installers 

OpenShot 2.0 Running on Windows

I am very happy to report that I have solved all the Windows-related build issues with JUCE and MinGW64, and have successfully built and tested Windows installers for both libopenshot and OpenShot Video Editor 2.0. The only remaining issue on Windows is related to SVG (i.e. vector image) compatibility, and luckily, a contributor is working on that as we speak. This is a minor issue related to RSVG-CONVERT, and should be resolved soon.

Mac Bundles & Disk Images

OpenShot 2.0 Running on Mac

For the Mac users, I have been working hard on finalizing the installation techniques for both libopenshot and OpenShot 2.0. I have recently refactored how this process works, trying to automate it as much as possible. Basically, our library is being packaged in a Framework bundle, our app is being packaged as an App Bundle, and they will be available on a DMG disk image. However, I am still running into a few small issues trying to integrate this process into CMake (our build tool). Conceptually, I really like the idea of Mac bundles, but when building an application outside of Xcode, they can be tricky to create and maintain, which is why I'm really trying to automate them as much as possible.

The screenshot above is running with the Qt Fusion dark theme, but keep in mind OpenShot also supports multiple themes, and can also be switched to use the native OS theme.

Remaining Tasks for Alpha Release 


Here is a list of the remaining tasks for a cross-platform alpha release (installers available to Kickstarter backers first). I have many contributors helping at this point, so some of these tasks can be completed in parallel.
  • Export Dialog: needs a few days of work and bug fixes 
  • Transitions: needs a few days of bug fixes and testing (there are still a few minor issues that need fixing in libopenshot, for example: multiple overlapping transitions, etc...) 
  • Timeline: needs 7 to 10 days of work, specifically on fixing issues with thumbnails and audio waveforms. Both those features have been implemented already, but have many small issues. 
  • Video Preview: needs a few days of work to fix some minor synchronization issues, and some improvements to the libopenshot audio playback code. 
  • Installers: most of the work is now done related to installers, but there are still some remaining issues with Mac bundles (as I mentioned above), and I need to test the installers on more systems, to ensure they are not missing any dependencies. 
  • Testing: once the above tasks are completed, I still need a few days of intense testing and bug reporting, to help shake out some of the more "obvious" bugs. 

Those are the final tasks blocking the alpha release of OpenShot 2.0. There are still many other tasks that need to be wrapped up and/or completed, but they are not necessary for a successful alpha release. So, if all goes according to plan, by the end of August we will be releasing our alpha installers.

Contributing to OpenShot 2.0


Right before we release the alpha installers, we will be officially releasing the source code to openshot-qt on Launchpad.net, the PyQt5 interface for OpenShot. This is another important milestone, as it will allow contributors to more easily access our source code, and will result in faster development and more testing. Currently, anyone is welcome to join our team on Launchpad.net and gain access to this code, but it requires me to manually setup a user account on our source code server, and generally slows down everything. So, releasing the source code to openshot-qt will be a great thing, and should accelerate the development of OpenShot 2.0.

Next Update

If everything goes smoothly (i.e. no huge technical issues or legal issues), my next update will be towards the end of August (in about 30 days). I am very excited to release the installers and the source code for openshot-qt, so I need to get back to work now and ensure this happens on time! See you on the other side!

,

Welcome to Part 2 of my update, where I will dive much deeper into the technical accomplishments of the past 2 months. I also have some screenshots to share, as well as a new video to demonstrate the current state of the project. So, here we go!

Timeline Improvements


As you can see from the screenshot, I've made many improvements to the timeline look & feel. I have also done more work in the "theme-ability" of the timeline, and it is now very easy to give the entire timeline a different look using CSS. I am very excited to see what themes the community will create once everything is released. Conceivably, the timeline could be themed to look and behave like any video editing application out there.

The JavaScript that powers the timeline has also been through a major refactor, and is very well organized now. Each primary element (i.e. clip, track, timeline, playhead, etc...) has it's own JS file, and is very easy to debug. I have also added in a debug panel, for when working on the timeline source code in Google Chrome.

Debugging Timeline in Google Chrome


Snapping Improvements

New Snapping Feature (i.e. blue line)
One of the coolest features I've completed over the past many weeks is a brand new snapping engine for the timeline. Basically, every element on the timeline (including the playhead) can be snapped/aligned in real-time, as you drag a clip or transition around. As the clip approaches a "snapping coordinate", a line fades in as a visual cue, and fades out after you drop it or move past it. It certainly makes the timeline easier to use, as aligning clips, transitions, and audio is a very critical part of the average video editing work flow.


Memory Leaks & Bug Fixes


As everything becomes more functional, some things are much easier to trigger, such as memory leaks. And one fun anecdote about a video editing application, they use a ton of memory on the heap, and memory leaks can sky rocket to all your remaining memory in about 5 seconds. In other words, these types of memory leaks are fairly easy to spot. And thus, all of the memory leaks that have been found so far are now fixed. And many of my tests include code that runs for long periods of time, and that has given me a lot of confidence in the underlying library (i.e. libopenshot), and the general stability of the platform.


Video Preview (view on YouTube for HD quality)


Here is an updated video preview demonstrating some of our timeline improvements, such as snapping, animations, and more! It even contains a sneak peak of our properties and keyframe system, which I will explain in more detail soon!


More to Come in Part 3

I will be releasing Part 3 of this update tomorrow, so you won't have to wait long. =) In part 3, I discuss the remaining tasks blocking an alpha release, give an update on installers (Windows & Mac), and discuss the release date of our alpha release. See you then!

Subscribe to: Posts (Atom)